kubernetes在容器編排大戰(zhàn)中由于應用的可移植性以及支持混合云/多云部署方式上的靈活性。加上開放可擴展的理念,使得周邊社區(qū)非常活躍。從既有調(diào)研結(jié)果看,kubernetes已成為容器編排領域的標準。但是它并不成熟,很多方面都大有可為,下面就是列舉了一些方面:
1.集群聯(lián)邦
kubernetes是一個集中式容器管理工具。橫向上來說,集群管理工具還有分布式和共享式等。代表性的分布式容器管理工具如yarn與kubernetes的區(qū)別是yarn的一臺宿主機作為一個master來進行容器管理。分配速度很快。kubernetes以集群為單位,資源分配更好一些。共享式管理谷歌內(nèi)部的borg在用,據(jù)說是一種更先進的分配方式。
kubernetes作為目前最受歡迎的容器管理工具,因為存儲等方面的瓶頸,在集群規(guī)模大時需要拆分成多個集群分開管理。為了更達到在多個集群時能和一個集群一樣統(tǒng)一管理,業(yè)界又出來了一個集群聯(lián)邦的概念。就是讓底層的多個集群對外像一個集群一樣工作。目前這個技術還不是很成熟,在這方面是大有可為的。
2.scheduler
kubernetes的scheduler模塊做的并不是很好,所以有意愿給kubernetes提patch的同學從這部分入手,提的patch很容易被采納,成為貢獻者之一。
在實際大公司使用的使用。往往自己造輪子會重寫這一部分。
3.etcd
kubernetes采用etcd做存儲,直接造成了kubernets的容量瓶頸。所以很多公司都在這上面做了優(yōu)化。阿里在etcd上加了一層tair緩存來使用。京東將etcd替換成了mysql。
4.dns
kubernetes的DNS大公司使用的也很少。因為一般大公司都有自己服務注冊發(fā)現(xiàn)機制和命名規(guī)范。
5.VPA
kubernetes的pod級別自動擴容分成兩個層次:橫向擴容HPA和縱向擴容VPA,來擴容容器可使用的資源量。橫向擴容HPA很好辦,就是將容器縮掉,用更大配置再擴出來。縱向擴容VPA又稱作原地升級,這個會麻煩。因為k8s容器本身就是一個docker進程。VPA就是進程不重啟實現(xiàn)升級。
6.插件
kubernetes核心功能并不多,很多功能都是以插件的形式提供,并且用戶可以實現(xiàn)接口來做成自己的插件。
7.容器編排
等上面這些都成熟了以后,kubernetes還有最大的問題。它為解決資源利用率而生。所以需要通過算法和AI層面進一步提高資源利用率。所以對go語言的學習、算法的學習是作為kubernetes相關的開發(fā)人員的必需技能。