歡迎光臨
每天分享高質量文章

Mesos 1.5發佈,在儲存、性能資源管理以及容器化方面有重大改進

今天,我很高興向大家宣佈,Apache Mesos 1.5.0版本已經正式與您見面!
新的功能與改進

Mesos 1.5當中包含資源管理、儲存與容器化方面的多項重大改進。容器儲存接口(簡稱CSI)支持正是Mesos 1.5當中全新的實驗性能力之一,此外亦有大量與之配合的新功能伴隨1.5版本一道推出。對代理進行重新配置的新能力將使得操作人員擁有更出色的使用體驗。性能提升使得主節點故障轉移速度提升80%到85%,而v1 API性能也得到了顯著改善。新版本中的資源管理機制更為靈活。此外,同樣重要的是,鏡像垃圾收集與更強大的Windows支持能力使得您能夠更輕鬆地在不同基礎設施型別之上運行Mesos,同時亦可在Mesos之上簡單運行多種不同工作負載。
在接下來的文章中,我們將共同瞭解Mesos 1.5當中的各項卓越改進。

容器儲存接口支持

Mesos 1.5以實驗性方式增加了對容器儲存接口(簡稱CSI)[1]的支持能力,這項新規範為儲存供應商與容器編排平臺之間的全部交互活動定義了一個通用型API。這項功能的出現無疑是Mesos、Kubernetes、Cloud Foundry以及Docker技術社區之間密切合作的結果。CSI的主要作用在於允許儲存供應商編寫出適用於全部容器編排平臺的插件。
對CSI的支持將幫助Mesos始終與規模更大的儲存生態系統保持步調一致,從而確保Mesos一直具備更強大的儲存支持能力。用戶將能夠在包含Mesos的任何儲存系統當中使用一致的API選項。CSI的out-of-tree插件樣式將Mesos的發佈周期與儲存系統的發佈周期區分開來,使得集成系統本身更具可持續性與可維護性。

上圖所示為Mesos所支持的CSI高層架構。若需瞭解更多細節信息,請參閱 說明文件[2]。

提升操作人員使用體驗

代理重新配置策略
在Mesos 1.5之前,用戶無法對代理的配置作出任何變更——惟一的方法就是關閉該代理上運行的所有任務,並使用新的代理ID重新啟動。任何變化,例如添加額外屬性或者新接入磁盤驅動器,都將導致代理啟動中止並引發令人頭痛的錯誤:
EXIT with status 1: Failed to perform recovery: Incompatible agent info detected.
------------------------------------------------------------
[...]
------------------------------------------------------------
To remedy this do as follows:
Step 1: rm -f /path/to/work_dir/meta/slaves/latest
   This ensures agent doesn't recover old live executors.
Step 2: Restart the agent.
從1.5版本開始,操作人員能夠使用新的代理命令列標記–reconfiguration_policy 對代理上應當允許的操作型別進行配置。在將該標記的值設置為additive時,代理將能夠接受一切對代理資源量的變更以及對其它屬性或故障域的調整。
未來,我們還希望能夠進一步添加–reconfiguration_policy=any 設置選項以允許對代理配置作出任意變更。

性能改進

此版本還包括對主節點故障轉移與v1操作狀態查詢API性能的改進。主節點故障轉移完成時間的縮短,源自資料吞吐量高達450%到600%的顯著提升,這意味著整體完成時間將縮短80%到85%。

除此之外,v1操作狀態查詢API的性能也得到了極大改進,這要歸功於我們消除了過程中不必要的複製操作。具體來講,目前v1 protobuf GetState呼叫速度較v0提高了36%。此外,v1 JSON Get Sstate性能亦提升了四倍以上。

更多詳盡基準測試結果,請參閱此電子錶格[3]。

資源管理

配額保障改進
此次發佈的新版本當中引入了多項與配額機制相關的改進。如今,Mesos將能夠更好地保證角色獲取配額以及角色不致超額等等,例如:
  • 此前,一個角色可收集未使用的預留配額以“愚弄”配額系統,但如今新版本會在分配資源時對預留配額進行核算,從而防止這種情況的發生。

  • 資源如今會以細粒度方式進行分配,以防止角色出現超額狀況。

  • 無配額角色可能收到保留資源的bug已經得到修複。

    角色的保留資源高於配額資源時,可能出現配額空間缺失的問題已經得到修複。

  • 當把資源分配給某個具有資源配額的角色時,此前的版本亦會將部分超出該角色配額之外的資源移交給它。這意味著不同角色的資源配額可能無法得到正確執行。目前這個問題已經通過在分配資源時計算餘量的方式[4]得到解決。

資源提供方抽象
為了將資源與代理生命周期加以拆毀,我們引入了資源提供方這一抽象機制。其作用在於支持代理資源的動態變化、外部資源供應方整合乃至集群範圍內資源管理。作為資源責任分離思路的組成部分,我們引入了一項新的資源分配協議,旨在更明確地就成功或失敗結果進行通信,同時實現各集群組件間的協調。我們使用新的資源供應方抽象將代理本地儲存資源同CSI通過接口加以整合。

容器化與多平臺支持

Windows 支持能力得到改善
隨著Mesos 1.5版本的發佈,Windows支持能力得到了極大改善。現在,您在利用Mesos容器運行任務時,可以通過作業物件(MEOS-6690[5])立足操作系統層級實現資源限制。在使用windows/cpu與windows/mem隔離器時,您可以對CPU周期與虛擬記憶體強制加以限制。此外,新版本現在也能夠正確支持CPU與記憶體統計信息收集。Mesos fetcher已經被移植到Windows平臺,支持通過TLS自動下載檔案並釋放ZIP壓縮檔案。在進行配置時,libprocess現在可配合Windows上的OpenSSL支持能力進行構建,這意味著TLS連接將可立足集群之內實現(請註意,由於Windows本身不提供OpenSSL,因此您需要在外部構建或安裝OpenSSL)。第一種驗證方法CRAM-MD5此次也正式登陸Windows,因此代理將可藉此與主節點進行驗證。HTTP與TCP狀態檢查機制也已經能夠作用於Windows代理(可用於shell任務; Docker容器運行狀態檢查也即將推出)。Meos代理不再需要以管理員身份運行,因為其現在能夠像普通用戶一樣創建符號鏈接,且此項功能已經被集成於代理當中。最後,雖然在上一版本中已經實現,但這裡不妨再提一句——Windows本地長路徑支持已經實現,意味著您將能夠更輕鬆地立足Windows運行代理(無需進行註冊表配置)。
容器鏡像垃圾收集
Mesos 1.5版本支持容器鏡像垃圾收集。目前您可以通過兩種方式對未使用的鏡像層進行垃圾收集:自動與手動。這項功能允許用戶輕鬆解決磁盤空間被docker鏡像大量占用的難題。具體請參閱容器鏡像垃圾收集說明文件[6]以瞭解更多細節信息。
獨立容器
本次新版本包含一組新的操作程式API,用於啟動並管理所謂“獨立容器”這一新型原語。獨立容器類似於由Mesos代理之上的框架所啟動的容器,只是獨立容器由操作程式在Mesos代理上直接啟動。如此一來,這些容器將無需使用Mesos執行器,且具有其它一些限制特性(例如無法使用預留資源等)。與此同時,獨立容器幾乎與其它容器完全隔離,並與容器鏡像類似——能夠使用同樣的容器化功能集。
此項功能的發佈旨在支持CSI工作流,但各API並不限於此用例。未來,此項功能可能將被用於為各代理節點實現守護行程。具體請參閱MESOS-7302以瞭解更多細節信息。

Mesos內部

支持gRPC客戶端
此次新版本包含一套gRPC客戶端打包器。是一種PC機制,並作為RESST API的替代性方案在雲原生領域愈發受到歡迎。作為將gRPC整合至Mesos的第一步,我們在libprocess當中添加了此客戶端打包器以支持CSI。該功能在預設情況下處於禁用狀態,您可以在安裝有OpenSSL庫的集群當中使用–enable-grpc (autotools)加以啟用。該包裝類負責在內部維護gRPC運行時資料結構,同時提供一個簡單接口,以便實現與libprocess的基於actor樣式相兼容的異步gRPC呼叫。我們還利用這項新功能連接CSI插件。除此之外,大家也可以使用這項新功能創建Mesos模塊,用以同其基於gRPC的服務進行通信。
複製日誌改進
Mesos複製日誌可幫助各類框架(例如Apache Aurora)將自身狀態儲存為多套副本,從而在故障轉移及重新啟動時實現狀態保留。從1.5版本開始,大家將能夠讀取來自一套非主導VOTING複製日誌副本處以最終一致化方式進行讀取。如此一來,您將能夠在非主導框架副本之上進行其它處理工作,例如將部分讀取任務移交至待命副本,或者將高頻複製日誌副本 保留在記憶體內以縮短故障轉移時間。

升級

從Mesos 1.4.0升級至Mesos 1.5.0非常簡單。請參閱升級指南[7]以瞭解更多與升級至Mesos 1.5.0相關的細節信息。
希望Apache Mesos 1.5能夠讓您滿意!
相關鏈接:
  1. https://github.com/container-storage-interface/spec

  2. http://mesos.apache.org/documentation/latest/csi/

  3. http://mesos.apache.org/blog/performance-working-group-progress-report/

  4. https://issues.apache.org/jira/browse/MESOS-8352

  5. https://issues-test.apache.org/jira/browse/MESOS-6690

  6. http://mesos.apache.org/documentation/latest/container-image/#garbage-collect-unused-container-images

  7. http://mesos.apache.org/documentation/latest/upgrades/

原文鏈接:http://mesos.apache.org/blog/mesos-1-5-0-released/
Kubernetes 實戰培訓

本次培訓內容包括:Docker容器的原理與基本操作;容器網絡與儲存解析;Kubernetes的架構與設計理念詳解;Kubernetes的資源物件使用說明;Kubernetes 中的開放接口CRI、CNI、CSI解析;Kubernetes監控、網絡、日誌管理;容器應用的開發流程詳解等,點擊識別下方二維碼加微信好友瞭解具體培訓內容

3月23日開始上課,點擊閱讀原文鏈接即可報名。
赞(0)

分享創造快樂