2021年要關(guān)注這5個開源Kubernetes項目

就其本身而言,Kubernetes為IT組織提供了很多價值。它將容器從開發(fā)人員感興趣的東西變?yōu)榭梢栽谏a(chǎn)環(huán)境中大規(guī)模部署的東西。2019年CNCF的一項調(diào)查發(fā)現(xiàn),Kubernetes在云計算社區(qū)中的使用率從2018年的58%上升到2019年的78%。
在這里,筆者將重點介紹5個值得關(guān)注的開源項目。
Quarkus
Java是最流行的編程語言之一,誕生于20世紀90年代中期。在近20年的時間里,它主要針對運行動態(tài)單體應(yīng)用程序進行了優(yōu)化——這些應(yīng)用程序假設(shè)只有主機CPU和內(nèi)存(虛擬化)的所有權(quán),而不是早期的面向服務(wù)架構(gòu)(SOA)方法。整個應(yīng)用服務(wù)器市場都源于支持以這種方式編寫的企業(yè)應(yīng)用程序。
然而,雖然大型的單體應(yīng)用仍然存在,但出于生產(chǎn)力、靈活性和效率的考慮,我們正在走向一個傾向于支持微服務(wù)、反應(yīng)式、功能即服務(wù)(FaaS)、12因素和云原生應(yīng)用的世界。需要重新思考如何在這樣的環(huán)境中最好地使用Java。
看看Quarkus。Quarkus是為GraalVM和HotSpot定制的Kubernetes原生Java框架。Quarkus的目標是使Java成為Kubernetes和無服務(wù)器環(huán)境中的領(lǐng)先平臺,同時為開發(fā)人員提供統(tǒng)一的反應(yīng)式和命令式編程模型,以最佳方式解決更廣泛的分布式應(yīng)用程序架構(gòu)。它可以在幾十毫秒內(nèi)啟動以實現(xiàn)快速的上下伸縮,內(nèi)存利用率低,并且減少了應(yīng)用程序和容器鏡像的占用。
OpenTelemetry
EMA分析師Torsten Volk指出,最近Kubecon的熱點話題之一是可觀測性。這個術(shù)語可以涵蓋很多領(lǐng)域,但是典型的定義跨越了指標、跟蹤和日志記錄。這個領(lǐng)域的兩個大項目是Prometheus(一個基于時間序列數(shù)據(jù)模型的系統(tǒng)監(jiān)控和警報工具包)和Jaeger(一個分布式跟蹤工具)。監(jiān)控也很重要,但通常被認為不同于可觀測性。
最近進入這個領(lǐng)域的是OpenTelemetry,它由谷歌的OpenCensus和Lightstep的OpenTracing于2019年合并而成。
除了項目本身,OpenTelemetry有趣的一點是,它至少代表了分布式系統(tǒng)可觀測性空間中的一個小程度的統(tǒng)一。事實上,在龐大的CNCF版圖中,有很多開源項目在某種程度上是重疊的或互補的,它們有時可以相互集成,有時卻不能。有意思的是,可能會出現(xiàn)一種更廣泛的相關(guān)項目組合模式。
Argo CD和Keptn
CI/CD領(lǐng)域的項目正在重新考慮Kubernetes原生開發(fā)模式和過程中的構(gòu)建和部署管道。例如,Tekton Pipelines運行在Kubernetes上,將Kubernetes集群作為一級類型,并使用容器(和pod)作為構(gòu)建塊。流行的Jenkins構(gòu)建工具Jenkins X的一個分支也同樣針對云原生開發(fā)環(huán)境。
雖然Tekton可以處理完整的CI/CD管道,但一些較新的項目旨在增加部署管道的靈活性和能力。
就其本身而言,Tekton有效地將部署推向一個或多個Kubernetes集群。如果出現(xiàn)故障,Tekton必須在任何地方重新推送部署,或者運維人員需要手動推送任何失敗的部署。相比之下,Argo CD是一個聲明性GitOps工具。它確保正確的部署狀態(tài)反映在活動集群中,持續(xù)地監(jiān)控它們,并采取任何必要的操作來使所需的狀態(tài)和實際狀態(tài)保持一致。
Keptn是另一個既可以使用Argo CD的部署功能也可以使用它自己的部署功能的項目,但是它最關(guān)注的是對投入生產(chǎn)的代碼進行額外的測試、評估和升級。
Envoy與Contour
剛才已經(jīng)談到了與基于微服務(wù)的分布式應(yīng)用程序相關(guān)的可觀測性挑戰(zhàn)。還有一個問題是處理集群內(nèi)微服務(wù)之間以及集群與外部世界之間的流量。
數(shù)據(jù)傳輸,即Kubernetes的“數(shù)據(jù)平面”,在很大程度上圍繞著Envo進行了標準化。Envoy與每個應(yīng)用程序一起運行,并通過提供與平臺無關(guān)的通用特性來抽象網(wǎng)絡(luò)。
像Istio這樣的服務(wù)網(wǎng)格可以建立在Envoy之上,在集群內(nèi)部(東西向)以及集群與外部世界(南北向)之間提供安全、流量方向和洞察。服務(wù)網(wǎng)格可以作為一個有價值的工具來操作基于大規(guī)模微服務(wù)的應(yīng)用程序。它們也很復雜,可能會造成過度傷害。像Contour這樣的項目只關(guān)注南北流量;它讓Kubernetes的用戶可以使用Envoy作為一個簡單、可靠的負載均衡解決方案。
OKD 4、Fedora CoreOS和CodeReady Containers
如果你正在尋找添加開發(fā)者工具和運維工具的Kubernetes社區(qū)發(fā)行版,請看一下OKD。你可以把它看作是紅帽O(jiān)penShift產(chǎn)品的“上游”項目。但它們實際上更多的是一種兄弟關(guān)系,引入了Universal Base Image(它允許更新的代碼并行地并入項目和產(chǎn)品中)。
OKD4使用FedoraCoreos作為節(jié)點的基本運維系統(tǒng)。Fedora CoreOS是一個自動更新、最小的操作系統(tǒng),用于安全地運行容器化工作負載。okd4提供了一個Kubernetes集群,該集群具有最新的安全修復和cgroups v2支持等新功能。它還大力支持Kubernetes Operators。
OKD還支持許多平臺上的安裝程序提供的基礎(chǔ)設(shè)施(安裝程序控制安裝過程的所有區(qū)域)。雖然不像用戶提供的基礎(chǔ)設(shè)施那么靈活,但它的使用要簡單得多,并且通常應(yīng)被視為大多數(shù)用戶的默認設(shè)置。
最后,為了在開發(fā)人員將代碼推送到CI/CD管道之前提供幫助,okd4允許你在筆記本電腦或桌面上設(shè)置一個最小的預(yù)配置的本地Kubernetes集群,并使用CodeReady容器進行開發(fā)和測試。它們是構(gòu)建OKD(或OpenShift)集群的最快方法。
原文:5 open source Kubernetes projects to watch in 2021 | The Enterprisers Project
推薦關(guān)注這個勵志推薦10000個開源項目的公眾號
每天了解個開源工具,裝入你的兵器庫
2021-01-02
2021-01-02
2021-01-02
2021-01-02
2021-01-01
2021-01-01
2020-12-31
