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