kubernetes在容器編排大戰中由於應用的可移植性以及支援混合雲/多雲部署方式上的靈活性。加上開放可擴充套件的理念,使得周邊社群非常活躍。從既有調研結果看,kubernetes已成為容器編排領域的標準。但是它並不成熟,很多方面都大有可為,下面就是列舉了一些方面:
1.叢集聯邦
kubernetes是一個集中式容器管理工具。橫向上來說,叢集管理工具還有分散式和共享式等。代表性的分散式容器管理工具如yarn與kubernetes的區別是yarn的一臺宿主機作為一個master來進行容器管理。分配速度很快。kubernetes以叢集為單位,資源分配更好一些。共享式管理谷歌內部的borg在用,據說是一種更先進的分配方式。
kubernetes作為目前最受歡迎的容器管理工具,因為儲存等方面的瓶頸,在叢集規模大時需要拆分成多個叢集分開管理。為了更達到在多個叢集時能和一個叢集一樣統一管理,業界又出來了一個叢集聯邦的概念。就是讓底層的多個叢集對外像一個叢集一樣工作。目前這個技術還不是很成熟,在這方面是大有可為的。
2.scheduler
kubernetes的scheduler模組做的並不是很好,所以有意願給kubernetes提patch的同學從這部分入手,提的patch很容易被採納,成為貢獻者之一。
在實際大公司使用的使用。往往自己造輪子會重寫這一部分。
3.etcd
kubernetes採用etcd做儲存,直接造成了kubernets的容量瓶頸。所以很多公司都在這上面做了優化。阿里在etcd上加了一層tair快取來使用。京東將etcd替換成了mysql。
4.dns
kubernetes的DNS大公司使用的也很少。因為一般大公司都有自己服務註冊發現機制和命名規範。
5.VPA
kubernetes的pod級別自動擴容分成兩個層次:橫向擴容HPA和縱向擴容VPA,來擴容容器可使用的資源量。橫向擴容HPA很好辦,就是將容器縮掉,用更大配置再擴出來。縱向擴容VPA又稱作原地升級,這個會麻煩。因為k8s容器本身就是一個docker程式。VPA就是程式不重啟實現升級。
6.外掛
kubernetes核心功能並不多,很多功能都是以外掛的形式提供,並且使用者可以實現介面來做成自己的外掛。
7.容器編排
等上面這些都成熟了以後,kubernetes還有最大的問題。它為解決資源利用率而生。所以需要通過演算法和AI層面進一步提高資源利用率。所以對go語言的學習、演算法的學習是作為kubernetes相關的開發人員的必需技能。
相關閱讀
關於作者
一線開發十二年,有日本東京和美國矽谷研發經驗。有百餘項技術發明專利,目前任美團點評技術專家。有自己的技術公眾號「程式設計一生」。如果您在閱讀文章時有什麼疑問或者發現文章的錯誤,歡迎在公眾號裡給我留言。