就其本身而言,Kubernetes為IT組織帶來了很多價(jià)值,從開發(fā)人員感興趣的內(nèi)容提升到可以在生產(chǎn)環(huán)境中大規(guī)模部署的內(nèi)容。云原生計(jì)算基金會(huì)(CNCF)在2019年的一項(xiàng)調(diào)查發(fā)現(xiàn),Kubernetes在云計(jì)算社區(qū)中的使用率從2018年的58%上升到2019年的78%。這種價(jià)值的很大一部分來自參與Kubernetes社區(qū)的個(gè)人和組織的努力。
然而,這也反映了個(gè)人和組織創(chuàng)建功能互補(bǔ)的開源工具的工作,這些工具與Kubernetes一起工作,使其更加強(qiáng)大。以下將重點(diǎn)介紹一些開發(fā)人員和運(yùn)營(yíng)商更感興趣的內(nèi)容。
1. Quarkus
Java是最流行的編程語(yǔ)言之一,誕生于上世紀(jì)90年代中期。在近20年的時(shí)間里,它主要針對(duì)運(yùn)行的動(dòng)態(tài)應(yīng)用程序進(jìn)行了優(yōu)化,這些應(yīng)用程序假定(虛擬化)主機(jī)CPU和內(nèi)存擁有唯一的所有權(quán)(盡管采用了早期的面向服務(wù)架結(jié)構(gòu)(SOA)的方法)。企業(yè)的應(yīng)用程序就是按照這種方式編寫的。
盡管仍然存在大型應(yīng)用程序(“宏偉整體”有時(shí)仍然是最好的方法),但出于生產(chǎn)力、靈活性和效率的考慮,組織正在向支持微服務(wù)、反應(yīng)性、功能即服務(wù)(FaaS)、12要素原則,以及向云原生應(yīng)用的世界邁進(jìn)。這需要重新思考如何在這樣的環(huán)境中更好地使用Java。
2. OpenTelemetry
EMA公司分析師Torsten Volk指出,最近Kubecon的熱門話題之一是可觀測(cè)性??捎^測(cè)性這一術(shù)語(yǔ)可以涵蓋很多領(lǐng)域,但是典型的定義涵蓋指標(biāo)、跟蹤和日志記錄。該領(lǐng)域中的兩個(gè)大型項(xiàng)目是Prometheus(一種基于時(shí)間序列數(shù)據(jù)模型構(gòu)建的系統(tǒng)監(jiān)視和警報(bào)工具包)和Jaeger(一種分布式跟蹤工具)。監(jiān)測(cè)也很重要,但通常被認(rèn)為與可觀測(cè)性不同。
OpenTelemetry是該領(lǐng)域的最新產(chǎn)品,它是谷歌公司的OpenCensus與Lightstep公司的OpenTracing在2019年合并而成的。
除了項(xiàng)目本身之外,使OpenTelemetry變得有趣的一件事是,它在分布式系統(tǒng)可觀察性空間中至少表現(xiàn)出一些統(tǒng)一性。實(shí)際上,在龐大的CNCF格局中,有許多開源項(xiàng)目在一定程度上相互重疊,在一定程度上可以相互補(bǔ)充,有時(shí)可以彼此集成,并有可能會(huì)出現(xiàn)一種更廣泛的相關(guān)項(xiàng)目組合模式。
3. Argo CD和Keptn
持續(xù)集成(CI)/持續(xù)交付(CD)領(lǐng)域的項(xiàng)目正在考慮使用Kubernetes原生開發(fā)模式和流程來構(gòu)建和部署管道。例如,Tekton Pipelines在Kubernetes上運(yùn)行,將Kubernetes集群作為第一類,并使用容器(和容器)作為其構(gòu)建基塊。流行的Jenkins構(gòu)建工具的分支Jenkins X同樣針對(duì)云原生開發(fā)世界。
雖然Tekton可以處理完整的持續(xù)集成(CI)/持續(xù)交付(CD)管道,但一些較新的項(xiàng)目旨在增加部署管道的靈活性和能力。
就其本身而言,Tekton有效地將部署推向一個(gè)或多個(gè)Kubernetes集群。如果出現(xiàn)故障,Tekton必須在任何地方重新推送部署,或者操作人員需要人工推送任何失敗的部署。相比之下,Argo CD是一個(gè)聲明性GitOps工具。它確保正確的部署狀態(tài)反映在活動(dòng)集群中,持續(xù)地監(jiān)視它們,并采取任何必要的操作來使所需的狀態(tài)和實(shí)際狀態(tài)保持一致。
Keptn是另一個(gè)項(xiàng)目,可以單獨(dú)使用Argo CD的部署功能。但是它最關(guān)注的是對(duì)投入生產(chǎn)的代碼進(jìn)行額外的測(cè)試、評(píng)估和升級(jí)。
4. Envoy和Contour
以上談到了與基于微服務(wù)的分布式應(yīng)用程序相關(guān)的可觀察性挑戰(zhàn)。還需要處理集群內(nèi)部以及集群與外界之間的微服務(wù)之間的流量。
數(shù)據(jù)傳輸,即Kubernetes中的“數(shù)據(jù)平臺(tái)”,已經(jīng)在Envoy周圍實(shí)施標(biāo)準(zhǔn)化。Envoy與每個(gè)應(yīng)用程序同時(shí)運(yùn)行,并通過與平臺(tái)無(wú)關(guān)的方式提供通用功能來抽象化網(wǎng)絡(luò)。
像Istio這樣的服務(wù)網(wǎng)格可以建立在Envoy的基礎(chǔ)上,以提供安全性、流量方向和集群內(nèi)部(東西向流量)以及集群與外界之間(南北向流量)的洞察力。其服務(wù)網(wǎng)格可以是操作大型基于微服務(wù)的應(yīng)用程序的寶貴工具。它們也很復(fù)雜,也可能規(guī)模過大。像Contour這樣的項(xiàng)目只關(guān)注南北向流量;它使Envoy作為一種簡(jiǎn)單、可靠的負(fù)載平衡解決方案可供Kubernetes用戶使用。
5. OKD 4、Fedora CoreOS和CodeReady容器
如果組織正在尋求開發(fā)人員和運(yùn)營(yíng)工具的Kubernetes社區(qū)發(fā)行版,需要查看OKD??梢詫⑵湟暈镽ed Hat OpenShift產(chǎn)品的“上游”項(xiàng)目。但是,與Universal Base Image的引入實(shí)際上更多的是同級(jí)關(guān)系,它允許更新的代碼并行地流入項(xiàng)目和產(chǎn)品中。
OKD 4使用Fedora CoreOS作為節(jié)點(diǎn)的基本操作系統(tǒng)。 Fedora CoreOS是一個(gè)自動(dòng)更新的小型操作系統(tǒng),用于安全地運(yùn)行容器化工作負(fù)載。OKD 4提供了一個(gè)Kubernetes集群,該集群具有最新的安全修復(fù)程序和新功能,例如對(duì)cgroups v2的支持,它還為Kubernetes運(yùn)營(yíng)商提供支持。
OKD還支持安裝程序提供的基礎(chǔ)設(shè)施。在許多平臺(tái)上,安裝程序控制安裝過程的所有區(qū)域。雖然不像用戶提供的基礎(chǔ)設(shè)施那么靈活,但它的使用要簡(jiǎn)單得多,并且通常應(yīng)被視為大多數(shù)用戶的默認(rèn)設(shè)置。
最后,為了在開發(fā)人員準(zhǔn)備將代碼推送到持續(xù)集成(CI)/持續(xù)交付(CD管道之前為他們提供幫助,OKD 4允許組織使用CodeReady容器在筆記本電腦或臺(tái)式電腦上設(shè)置更少的預(yù)配置本地Kubernetes集群,以便進(jìn)行開發(fā)和測(cè)試。它們是開始構(gòu)建OKD(或OpenShift)集群的最快方法。
更多來自Kubernetes社區(qū)的信息
如果了解一下CNCF格局,就會(huì)發(fā)現(xiàn)幾乎沒有涉及關(guān)于Kubernetes的社區(qū)創(chuàng)新。但是這些內(nèi)容應(yīng)該使人們對(duì)在新的一年中應(yīng)該保持關(guān)注的項(xiàng)目和領(lǐng)域有所了解。
版權(quán)聲明:本文為企業(yè)網(wǎng)D1Net編譯,轉(zhuǎn)載需注明出處為:企業(yè)網(wǎng)D1Net,如果不注明出處,企業(yè)網(wǎng)D1Net將保留追究其法律責(zé)任的權(quán)利。