Mesos剛剛發佈了最新的1.2.0版本, 新版本解決了社區以前呼聲比較多的幾個問題,看得出Mesos開發組的推動進度仍是很是快速而平穩的。這也是Mesos社區一向的做風, 核心Feature穩定優先,周邊功能積極支持。git
根據1.2.0 Release note列出的幾個新Feature, 能夠看到幾個主要的改進都是圍繞着容器相關的, 其中既包含對Mesos Containerizer改進, 同時也有對Docker Containerizer功能補充, 這些工做都是圍繞以前Mesos社區提出的Unified Containerier目標來進行的。apache
容器化和Docker技術在開發者中間已經普遍流行,未來的服務標準化,容器化應該會作的愈來愈好,Mesos做爲調度系統的首選, 順應潮流也是大勢所趨。如何更好地支持容器化應用的調度應該是Mesos近期的工做重點。app
數人云逐一分析Release Note中的各個部分:性能
Mesos Containerizer實驗性支持auto backend, overlayfs優先於aufs,因爲bind backend須要事先存在,須要經過agent啓動時的image_provisioner_backend參數明確指出。fetch
解讀——spa
相比Docker Containerizer,Volume一直是Mesos Containerier的弱點,因爲Layered存儲一開始就是Docker的招牌優點,目的是減小運行時容器對存儲的過分使用。Docker當前支持Aufs, Overlayfs,DeviceMapper集中CoW形式的Volume, Bind Mounted Volume本質上不是一種CoW存儲,目的更可能是幫助在Host和主機之間作存儲共享。調試
Docker社區下一步主要推的是OverlayFS和OverlayFS2,而以前生產環境應用比較普遍的DeviceMapper卻沒有在Mesos支持範圍, 看得出Mesos是緊跟Docker腳步的。日誌
Agent啓動增長了image_provisioner_backend參數, 目的是指定預先設定的bind backend地址。blog
(實驗)支持Mesos containerizer的rlimit。對於使用Mesos containerizer來啓動容器, Isolator添加了對設置POSIX資源限制((rlimits)的支持。POSIX rlimits能夠被用來控制一個進程中耗費的資源。細節見http://mesos.apache.org/docum...。進程
解讀——
Mesos以前支持isolator如posix/cpu, posix/mem, 以及cgroup/cpu等, 此次又增長了rlimit isolator, 能夠更靈活的配置Executor好比文件句柄數量,connection數量等。
(實驗)Teardown未註冊的Framework。Master如今對待恢復的Framework將和對待已經註冊可是當前斷開鏈接的Framework很是相似。舉例來講,當經過HTTP請求Framework時,恢復的Framework將經過正常的「Frameworks」部分進行報告。它意味着再也不有「孤兒任務」的概念:若是Master知道這個任務,任務就會運行在Framework之下。相似的,在恢復的Framework上的「teardown」操做如今已經正常工做了。
解讀——
Teardown unregistered frameworks, 經過這個改進,目測能夠TearDown一些超時的Frameworks,能夠很好的清理Frameworks下的tasks, 以前困擾Swan【數人云開源Mesos調度器】開發的一個問題就是如何清理Crashed以後的Swan的task問題,經過這個功能能夠很好的幫助Swan解決這個問題。
(實驗)容器的Attach和Exec。這個特性爲正在運行的Mesos任務附加一個遠程客戶端到其stdin, stdout和stderr上提供了新的Agent API,也提供了一個在同一容器內啓動新進程做爲運行的Mesos任務、並附加到它的stdin, stdout和stderr上的API。在更高的層面,這些API在功能上模仿了Docker attach和Docker exec。這個特性主要是爲了讓用戶可以調試運行中的Mesos任務。
解讀——
針對Docker Containerizer的一個改進, 以前因爲沒有此功能Debug時候都是經過Mesos task找到對應的Docker容器, 接着經過Docker命令進入到容器當中看Docker運行時狀態, 還好數人云的產品以前經過Proxy到Docker daemon已經解決了這個問題, 現現在若是Mesos能解決這個問題, 能夠考慮經過Mesos attach到容器當中, 不過性能有待考慮, 畢竟運行時日誌是個挺可怕的量。
(實驗性)在Mesos Containerizer支持「Basic」 Docker私有鏡像倉庫驗證。直到目前,Mesos Containerizer一直假定Bearer auth,可是如今咱們也爲私有鏡像倉庫支持」Basic auth」。請注意AWS ECS採用了Basic authorization可是尚不可用,由於MESOS-5172的重定向問題。
解讀——
私有鏡像倉庫驗證的問題一直是困擾個人問題,此次Mesos終於考慮到這個問題了。 以前廣泛的作法,包括Marathon都是將私用倉庫的用戶名密碼達成tar經過fetch功能下載到sandbox當中,Docker executor啓動以後發現帳號後模擬登錄,其實Docker API早有支持,有了Basic HTTP auth就不用繞一大圈解決登陸問題。
此外,還有200多個bug修復和改進。對於所有的版本更新說明,請移步https://git-wip-us.apache.org...。
關於更新:
從Mesos1.1.0滾動更新到Mesos1.2.0很是簡單。只有一些小的調整,向後兼容的下降。更新過程當中的細節請參考http://mesos.apache.org/docum...。