容器編排器下一步還要做什么
Docker 1.12橫空出世,想必你應該會停下手上的活,馬上體驗下它的新的編排特性,并且與其他編排器作對比。然而這僅僅是容器部署與管理這種復雜的系統的時代的開始。
在分布式系統的易用性和可靠性這方面,對于我們每一個人而言,還有很多需要改進的地方,期待在接下來的幾年里能看到更多的改進。隨著分布式系統的演進,編排器將會在系統引導、維護性、可靠性以及安全性方面提供更好的體驗。接下來是幾個我覺得從中等或大型規模集群這些基礎設施的角度來看都非常樂于看到的特性點:
超級穩定/更好的容錯性。當整個區域的機器都癱掉,或者網絡拓撲被意外的改變了,或者因為你還為上個星期的《權利的游戲》劇集而分心,導致你在集群節點上執行了一個錯誤的操作,在這些狀態下隨便拿出一個節點,節點上面的系統和服務、任務都能夠正常運作。在這種情況下,期待的狀態是有用的,但仍然存在一些當前系統都還沒有處理的關于災難恢復的細節。比如,失去了大多數管理集群狀態的節點(在基于冗余機制來保持一致性的系統中也就無法達到期望的節點數量)會使得集群在沒有人工干預的情況下無法實現恢復,因為沒有遷移或重新調度容器的動作可執行。
去中心化的鏡像管理。鏡像可以在無單點故障的點對點環境中共享。
人工智能輔助以及資源感知的編排與布局。系統可以利用細粒度的啟發式算法來調度任務,同時可以“記住”集群內被經常調度的資源類型(網絡、內存以及CPU密集的),以此達到資源利用與調度的優化。
免協調,無主控的協議。一個節點在系統為它分配角色之前僅僅是一個節點,之后它仍然可以選擇一個領導者或者為節點安排指定的角色以完成特定的任務,但是這個協議以及其狀態是完全分布式的。調度服務以通過多個不同的路徑,該任務應該由領導者完成,或者所有服務都經過一個經過優化的并且根據概率方法來分布式預先分配的路徑(點對點預定和路徑管理)。這樣就可以在 領導者 當機且不能恢復的時候,保證機器故障不會影響集群中的大多數任務。此時集群可能處于 腐爛 狀態,但最終會慢慢恢復并且會修正錯誤和出錯的地方。
基于預測的重新調度以及服務遷移。系統可以預測到某些機器比其他機器更容易出問題,這得歸功于集群的運行日志以及運行數據。系統同時可以根據網絡流量模型來對工作載荷進行遷移,以實現在服務高峰時間之外縮減集群的規模。
能源效率。集群管理器能感知集群的能源消耗以及在它之上運行的任務,它盡量通過優化部署位置以及任務遷移來降低整體能耗,而這個過程對業務是無中斷的。
我想這里反復提及的內容是 容錯性以及可靠性 ,我們在創建一個可以處理一種全新的故障類型和人為錯誤的彈性系統時可以做的更好。其他那些看起來毫無相關的技術像人工智能在這方面可以提供很多幫助。另一個方面是 易用性 ,即使現在的編排器變得越來越容易部署和管理,但我們仍然可以做的更好以達到這樣的效果:你僅需要下載一個二進制文件,然后指向一個已存在的機器,那么系統自己就知道該做什么了。編排器正在成為一個在操作系統之上的透明層,可以利用它來構建分布式OS。
原文鏈接:What could be next for container orchestration?(翻譯:唐華新)
譯者介紹:
唐華新,華為技術有限公司系統工程師,一直從事網絡與協議相關技術研究,目前從事虛擬網絡、系統監控、APM領域技術研究與開發,關注Docker、Kubernetes以及Devops等技術。