Kubernetes之上到底該構(gòu)建什么?這些或許能給你啟發(fā)
Kubernetes已經(jīng)成為各種規(guī)模企業(yè)在生產(chǎn)環(huán)境事實(shí)上的容器編排平臺(tái),在各種應(yīng)用中設(shè)置Kubernetes都是基礎(chǔ)。
那么在Kubernetes集群之上到底要構(gòu)建什么?比如,Web和API層中的無(wú)狀態(tài)應(yīng)用程序是很好的初始用例,Kubernetes幫助其補(bǔ)足了安全性,可伸縮性和開(kāi)發(fā)者生產(chǎn)力方面的差距。但不限于此!
服務(wù)網(wǎng)格
建立在Kubernetes之上的微服務(wù)網(wǎng)絡(luò)帶來(lái)了分布式計(jì)算問(wèn)題。盡管Kubernetes解決了服務(wù)發(fā)現(xiàn),可擴(kuò)展性問(wèn)題,但Kubernetes生態(tài)系統(tǒng)需要適用于第7層流量網(wǎng)絡(luò)的解決方案。Istio和Linkerd等服務(wù)網(wǎng)格為微服務(wù)帶來(lái)了高級(jí)功能,例如流量控制,安全性和可觀(guān)察性等。服務(wù)網(wǎng)格與Envoy等代理相結(jié)合,可以為微服務(wù)提供強(qiáng)大的安全性和網(wǎng)絡(luò)抽象。而且,開(kāi)發(fā)者和企業(yè)可以受益于通用框架的改編,從而提高了效率和生產(chǎn)率。
有狀態(tài)的工作負(fù)載
在Kubernetes中運(yùn)行有狀態(tài)工作負(fù)載是一個(gè)快速發(fā)展的方向。因?yàn)镵ubernetes有名為StatefulSets的內(nèi)置對(duì)象,可為Pod提供網(wǎng)絡(luò)尋址和順序保證。將StatefulSet和應(yīng)用程序運(yùn)算符組合在一起可以為運(yùn)行有狀態(tài)的工作負(fù)載(例如需要持久保存狀態(tài)的數(shù)據(jù)庫(kù)和舊版應(yīng)用程序)提供強(qiáng)大的解決方案。
開(kāi)發(fā)者經(jīng)驗(yàn)(DevEx)
Kubernetes的學(xué)習(xí)曲線(xiàn)很陡峭,所以對(duì)于企業(yè)開(kāi)發(fā)者來(lái)說(shuō)挑戰(zhàn)不小。Kubernetes的挑戰(zhàn)是有原因的,比如Kubernetes的設(shè)計(jì)僅具有極少的功能,僅提供了足夠的構(gòu)建基塊即可在其之上構(gòu)建自定義的平臺(tái)即服務(wù)(PaaS)。根據(jù)企業(yè)的成熟度,平臺(tái),DevOps或SRE團(tuán)隊(duì)等專(zhuān)業(yè)團(tuán)隊(duì)可以自定義Kubernetes,并簡(jiǎn)化應(yīng)用程序開(kāi)發(fā)者的工作。由于部署容器的成本和時(shí)間很少,因此對(duì)于產(chǎn)品開(kāi)發(fā)團(tuán)隊(duì)而言,自定義設(shè)置可能是一種非常強(qiáng)大的機(jī)制,可以提高競(jìng)爭(zhēng)優(yōu)勢(shì)。增強(qiáng)的開(kāi)發(fā)者體驗(yàn)很大程度上歸功于產(chǎn)品功能的更快上市,以及嵌入式安全的最佳實(shí)踐。如Skaffold之類(lèi)的工具可以被用來(lái)簡(jiǎn)化開(kāi)發(fā)者的Kubernetes,再比如微軟Azure Dev Spaces提供的快速迭代模型,可以使每個(gè)開(kāi)發(fā)者在大型團(tuán)隊(duì)設(shè)置中使用他們的pod實(shí)例。
無(wú)服務(wù)器
在公有云環(huán)境,不一定需要在Kubernetes上構(gòu)建FaaS(功能即服務(wù))。企業(yè)可以簡(jiǎn)單地利用專(zhuān)用的無(wú)服務(wù)器解決方案,比如AWS Lambda。無(wú)服務(wù)器主要有兩個(gè)方面;開(kāi)發(fā)者的經(jīng)驗(yàn)是只需簡(jiǎn)單地上傳一段代碼,而不必?fù)?dān)心基礎(chǔ)架構(gòu)和成本效益問(wèn)題。如果在本地運(yùn)行Kubernetes,則仍然可以通過(guò)PaaS工具帶來(lái)無(wú)服務(wù)器的的體驗(yàn)功能。開(kāi)發(fā)者只需提供他們的git repo即可啟動(dòng)該服務(wù),但這無(wú)法帶來(lái)無(wú)服務(wù)器的成本效益。在真正的無(wú)服務(wù)器模型中,僅當(dāng)調(diào)用服務(wù)時(shí),容器或進(jìn)程才會(huì)進(jìn)行冷啟動(dòng),如Knative之類(lèi)的框架可能會(huì)將無(wú)服務(wù)器的開(kāi)發(fā)者經(jīng)驗(yàn)和成本效率特性帶入到本地Kubernetes的部署中。
機(jī)器學(xué)習(xí)管道
基礎(chǔ)架構(gòu)資源的有效共享是Kubernetes平臺(tái)的關(guān)鍵功能之一。CPU等硬件資源被過(guò)度分配用于工作負(fù)載,并且在需要時(shí)也會(huì)受到限制。GPU可以在多個(gè)機(jī)器學(xué)習(xí)容器工作負(fù)載之間共享,從而為本地設(shè)置帶來(lái)了成本效益。此外,還有出色的開(kāi)源機(jī)器學(xué)習(xí)管道,如基于Kubernetes構(gòu)建的Kubeflow。Kubeflow使數(shù)據(jù)科學(xué)家可以在Kubernetes中有效地運(yùn)行其模型。Kubeflow補(bǔ)足了共享昂貴的GPU,以及提供強(qiáng)大的數(shù)據(jù)管道編排機(jī)制的差距。
云原生CI/CD管道
CI/CD管道通常包括運(yùn)行一系列測(cè)試,例如單元測(cè)試,集成測(cè)試,靜態(tài)代碼分析,安全掃描,這些在很大程度上是通過(guò)Jenkins管道進(jìn)行編排的。一些團(tuán)隊(duì)正在練習(xí)將這些Jenkins作業(yè)作為容器運(yùn)行。容器的爆炸性增長(zhǎng),今天的Jenkins正努力擴(kuò)大部署流程。利用Kubernetes調(diào)度程序的功能,有一個(gè)全新的出色模型可以運(yùn)行整個(gè)業(yè)務(wù)流程。這是運(yùn)行CI/CD編排的云原生方法。如JenkinsX和Tekton之類(lèi)的項(xiàng)目,將充分利用Kubernetes的編排和調(diào)度能力,將你的Jenkins管道提升到新的水平。
零信任網(wǎng)絡(luò)
如今許多企業(yè)都在努力發(fā)展基于邊界的網(wǎng)絡(luò)安全模型,使得Kubernetes容器網(wǎng)絡(luò)接口(CNI)的插件有了用武之地。如Calico之類(lèi)的項(xiàng)目可以實(shí)施Kubernetes網(wǎng)絡(luò)策略來(lái)隔離每個(gè)工作負(fù)載,從而提供不信任任何工作負(fù)載的細(xì)粒度分區(qū)。
【責(zé)任編輯:趙寧寧 TEL:(010)68476606】
點(diǎn)贊 0