2021年需要關(guān)注的5個開源Kubernetes項(xiàng)目

Java是最流行的編程語言之一,誕生于上世紀(jì)90年代中期。在近20年的時間里,它主要針對運(yùn)行的動態(tài)應(yīng)用程序進(jìn)行了優(yōu)化,這些應(yīng)用程序假定(虛擬化)主機(jī)CPU和內(nèi)存擁有唯一的所有權(quán)(盡管采用了早期的面向服務(wù)架結(jié)構(gòu)(SOA)的方法)。企業(yè)的應(yīng)用程序就是按照這種方式編寫的。

開源項(xiàng)目使Kubernetes更加強(qiáng)大。人們需要了解這些具有發(fā)展前途的開源項(xiàng)目,這些項(xiàng)目可以解決與Java、可觀測性、持續(xù)集成(CI)/持續(xù)交付(CD)管道等相關(guān)問題。

就其本身而言,Kubernetes為IT組織帶來了很多價值,從開發(fā)人員感興趣的內(nèi)容提升到可以在生產(chǎn)環(huán)境中大規(guī)模部署的內(nèi)容。云原生計算基金會(CNCF)在2019年的一項(xiàng)調(diào)查發(fā)現(xiàn),Kubernetes在云計算社區(qū)中的使用率從2018年的58%上升到2019年的78%。這種價值的很大一部分來自參與Kubernetes社區(qū)的個人和組織的努力。

然而,這也反映了個人和組織創(chuàng)建功能互補(bǔ)的開源工具的工作,這些工具與Kubernetes一起工作,使其更加強(qiáng)大。以下將重點(diǎn)介紹一些開發(fā)人員和運(yùn)營商更感興趣的內(nèi)容。

1.Quarkus

Java是最流行的編程語言之一,誕生于上世紀(jì)90年代中期。在近20年的時間里,它主要針對運(yùn)行的動態(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)用程序(“宏偉整體”有時仍然是最好的方法),但出于生產(chǎn)力、靈活性和效率的考慮,組織正在向支持微服務(wù)、反應(yīng)性、功能即服務(wù)(FaaS)、12要素原則,以及向云原生應(yīng)用的世界邁進(jìn)。這需要重新思考如何在這樣的環(huán)境中更好地使用Java。

2.OpenTelemetry

EMA公司分析師Torsten Volk指出,最近Kubecon的熱門話題之一是可觀測性。可觀測性這一術(shù)語可以涵蓋很多領(lǐng)域,但是典型的定義涵蓋指標(biāo)、跟蹤和日志記錄。該領(lǐng)域中的兩個大型項(xiàng)目是Prometheus(一種基于時間序列數(shù)據(jù)模型構(gòu)建的系統(tǒng)監(jiān)視和警報工具包)和Jaeger(一種分布式跟蹤工具)。監(jiān)測也很重要,但通常被認(rèn)為與可觀測性不同。

OpenTelemetry是該領(lǐng)域的最新產(chǎn)品,它是谷歌公司的OpenCensus與Lightstep公司的OpenTracing在2019年合并而成的。

除了項(xiàng)目本身之外,使OpenTelemetry變得有趣的一件事是,它在分布式系統(tǒng)可觀察性空間中至少表現(xiàn)出一些統(tǒng)一性。實(shí)際上,在龐大的CNCF格局中,有許多開源項(xiàng)目在一定程度上相互重疊,在一定程度上可以相互補(bǔ)充,有時可以彼此集成,并有可能會出現(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同樣針對云原生開發(fā)世界。

雖然Tekton可以處理完整的持續(xù)集成(CI)/持續(xù)交付(CD)管道,但一些較新的項(xiàng)目旨在增加部署管道的靈活性和能力。

就其本身而言,Tekton有效地將部署推向一個或多個Kubernetes集群。如果出現(xiàn)故障,Tekton必須在任何地方重新推送部署,或者操作人員需要人工推送任何失敗的部署。相比之下,Argo CD是一個聲明性GitOps工具。它確保正確的部署狀態(tài)反映在活動集群中,持續(xù)地監(jiān)視它們,并采取任何必要的操作來使所需的狀態(tài)和實(shí)際狀態(tài)保持一致。

Keptn是另一個項(xiàng)目,可以單獨(dú)使用Argo CD的部署功能。但是它最關(guān)注的是對投入生產(chǎn)的代碼進(jìn)行額外的測試、評估和升級。

4.Envoy和Contour

以上談到了與基于微服務(wù)的分布式應(yīng)用程序相關(guān)的可觀察性挑戰(zhàn)。還需要處理集群內(nèi)部以及集群與外界之間的微服務(wù)之間的流量。

數(shù)據(jù)傳輸,即Kubernetes中的“數(shù)據(jù)平臺”,已經(jīng)在Envoy周圍實(shí)施標(biāo)準(zhǔn)化。Envoy與每個應(yīng)用程序同時運(yùn)行,并通過與平臺無關(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作為一種簡單、可靠的負(fù)載平衡解決方案可供Kubernetes用戶使用。

5.OKD 4、Fedora CoreOS和CodeReady容器

如果組織正在尋求開發(fā)人員和運(yùn)營工具的Kubernetes社區(qū)發(fā)行版,需要查看OKD??梢詫⑵湟暈镽ed Hat OpenShift產(chǎn)品的“上游”項(xiàng)目。但是,與Universal Base Image的引入實(shí)際上更多的是同級關(guān)系,它允許更新的代碼并行地流入項(xiàng)目和產(chǎn)品中。

OKD 4使用Fedora CoreOS作為節(jié)點(diǎn)的基本操作系統(tǒng)。Fedora CoreOS是一個自動更新的小型操作系統(tǒng),用于安全地運(yùn)行容器化工作負(fù)載。OKD 4提供了一個Kubernetes集群,該集群具有最新的安全修復(fù)程序和新功能,例如對cgroups v2的支持,它還為Kubernetes運(yùn)營商提供支持。

OKD還支持安裝程序提供的基礎(chǔ)設(shè)施。在許多平臺上,安裝程序控制安裝過程的所有區(qū)域。雖然不像用戶提供的基礎(chǔ)設(shè)施那么靈活,但它的使用要簡單得多,并且通常應(yīng)被視為大多數(shù)用戶的默認(rèn)設(shè)置。

最后,為了在開發(fā)人員準(zhǔn)備將代碼推送到持續(xù)集成(CI)/持續(xù)交付(CD管道之前為他們提供幫助,OKD 4允許組織使用CodeReady容器在筆記本電腦或臺式電腦上設(shè)置更少的預(yù)配置本地Kubernetes集群,以便進(jìn)行開發(fā)和測試。它們是開始構(gòu)建OKD(或OpenShift)集群的最快方法。

更多來自Kubernetes社區(qū)的信息

如果了解一下CNCF格局,就會發(fā)現(xiàn)幾乎沒有涉及關(guān)于Kubernetes的社區(qū)創(chuàng)新。但是這些內(nèi)容應(yīng)該使人們對在新的一年中應(yīng)該保持關(guān)注的項(xiàng)目和領(lǐng)域有所了解。

THEEND

最新評論(評論僅代表用戶觀點(diǎn))

更多
暫無評論