值得考慮的9個開源云原生項目
譯文【51CTO.com快譯】本文介紹CNCF九個值得關(guān)注的畢業(yè)和孵化開源項目。
畢業(yè)的項目
畢業(yè)的項目被認為很成熟——且被許多組織采用,須遵守CNCF的指導方針。下面是三個受歡迎的開源CNCF畢業(yè)項目。
Kubernetes
談?wù)撛圃鷳?yīng)用程序不得不提Kubernetes。Kubernetes由谷歌發(fā)明,無疑是著名的容器編排平臺,面向基于容器的應(yīng)用程序,它也是一個開源工具。
什么是容器編排平臺?基本上,容器引擎本身可用于管理幾個容器。然而,面對數(shù)千個容器和數(shù)百個服務(wù)時,管理這些容器變得異常復雜。這時候容器引擎有了用武之地。容器編排引擎通過使容器的部署、管理、網(wǎng)絡(luò)和可用性實現(xiàn)自動化來幫助擴展容器。
Docker Swarm和Mesosphere Marathon是另外的容器編排引擎,但可以肯定地說Kubernetes成為了贏家(至少目前如此)。 Kubernetes還催生了OKD之類的容器即服務(wù)(CaaS)平臺,OKD是Kubernetes的Origin社區(qū)發(fā)行版,為Red Hat OpenShift提供支持。
想開始入手,請訪問Kubernetes GitHub代碼庫,并從Kubernetes文檔頁面訪問其文檔和學習資源。
Prometheus
Prometheus是2012年在SoundCloud構(gòu)建的開源系統(tǒng)監(jiān)控和警報工具包。從那時起,許多公司和組織采用了Prometheus,該項目有一個很活躍的開發(fā)者和用戶社區(qū)。它現(xiàn)在是一個獨立于該公司來維護的獨立開源項目。
想認識Prometheus,不妨想象需要每天24小時、每年365天正常運行的生產(chǎn)系統(tǒng)。沒有哪個系統(tǒng)是完美的,有技術(shù)可減少故障(名為容錯系統(tǒng))。然而,如果出現(xiàn)問題,最重要的是盡快找到問題。這時候像Prometheus這樣的監(jiān)控工具派得上用場。Prometheus不僅僅是一個容器監(jiān)控工具,它在云原生應(yīng)用程序公司當中也極受歡迎。此外,包括Grafana在內(nèi)的其他開源監(jiān)控工具也使用Prometheus。
想開始入手Prometheus,推薦方法是查看其GitHub代碼庫。在本地運行Prometheus很容易,但您需要安裝容器引擎。你可以在Prometheus網(wǎng)站上查看詳細文檔。
Envoy
Envoy(或Envoy Proxy)是一個為云原生應(yīng)用程序設(shè)計的開源邊緣和服務(wù)代理。Envoy創(chuàng)建于Lyft,是一種高性能C++分布式代理,專為單一服務(wù)和應(yīng)用程序設(shè)計,還是一種為大型微服務(wù)服務(wù)網(wǎng)格架構(gòu)設(shè)計的通信總線和通用數(shù)據(jù)平面。Envoy基于Nginx、HAProxy、硬件負載均衡系統(tǒng)和云負載均衡系統(tǒng)等解決方案的學習,與每個應(yīng)用程序并行運行,通過以一種與平臺無關(guān)的方式提供通用功能來抽象網(wǎng)絡(luò)。
基礎(chǔ)設(shè)施中的所有服務(wù)流量流經(jīng)Envoy網(wǎng)格時,在一個地方通過一致的可觀察性直觀地顯示問題區(qū)域、調(diào)整總體性能以及添加底層功能變得很容易。Envoy Proxy基本上是一種服務(wù)網(wǎng)格工具,可幫助組織為生產(chǎn)環(huán)境構(gòu)建容錯系統(tǒng)。
服務(wù)網(wǎng)格應(yīng)用有很多替代方案,比如優(yōu)步的Linkerd(下有討論)和Istio。Istio通過部署為Sidecar并利用Mixer配置模型來擴展Envoy Proxy。Envoy值得注意的特點如下:
- 包括所有的“基本”功能(與Istio等控制平面結(jié)合使用時)
 - 核心層面充當L3/L4過濾器,默認提供許多L7過濾器
 - 支持gRPC和HTTP/2(上游/下游)
 - 由API驅(qū)動,支持動態(tài)配置和熱重載
 - 側(cè)重于度量標準收集、跟蹤和總體可觀察性
 
想了解Envoy、驗證其功能并獲得充分的好處,需要在運行生產(chǎn)級環(huán)境方面擁有豐富的經(jīng)驗。您可以訪問GitHub代碼庫,從詳細文檔中了解更多信息。
孵化項目
以下是六個受歡迎的開源CNCF孵化項目。
rkt
rkt是一個pod原生容器引擎。它擁有用于在Linux上運行容器的命令行界面(CLI)。從某種意義上說,它類似其他容器,比如Podman、Docker和CRI-O。
rkt最初由CoreOS開發(fā)(后被Red Hat收購),您可以在官網(wǎng)上找到詳細的文檔,在GitHub上訪問源代碼。
Jaeger
Jaeger是一個面向云原生應(yīng)用程序的開源端到端分布式跟蹤系統(tǒng)。一方面,它與Prometheus一樣是監(jiān)控解決方案。不過它又不一樣,因為其使用場景可擴大到:
- 分布式事務(wù)監(jiān)控
 - 性能和延遲優(yōu)化
 - 根本原因分析
 - 服務(wù)依賴項分析
 - 分布式上下文傳播
 
Jaeger是優(yōu)步開發(fā)的一種開源技術(shù)。您可以在官網(wǎng)上找到詳細的文檔,在GitHub上訪問源代碼(。
Linkerd
與Lyft開發(fā)Envoy Proxy一樣,優(yōu)步開發(fā)了Linkerd這個開源解決方案,以維護其生產(chǎn)級服務(wù)。在某些方面,Linkerd就像Envoy,因為兩者都是服務(wù)網(wǎng)格工具,旨在提供整個平臺的可觀察性、可靠性和安全性,無需配置或代碼更改。
然而兩者存在一些細微差別。雖然Envoy和Linkerd充當代理,可以報告已連接的服務(wù),但Envoy不像Linkerd那樣旨在成為Kubernetes Ingress控制器。Linkerd的顯著特點包括:
- 支持多種平臺(Docker、Kubernetes、DC/OS、Amazon ECS或任何獨立機器)
 - 內(nèi)置的服務(wù)發(fā)現(xiàn)抽象,以統(tǒng)一多個系統(tǒng)
 - 支持gRPC、HTTP/2和HTTP/1.x請求以及所有TCP流量
 
您可以在Linkerd的網(wǎng)站上閱讀更多相關(guān)信息,并在GitHub上訪問源代碼。
Helm
Helm基本上是Kubernetes的包管理器。如果您用過Apache Maven、Maven Nexus或類似的服務(wù),就會了解Helm的用途。 Helm可幫助您管理Kubernetes應(yīng)用程序。它使用“Helm Charts”來定義、安裝和升級哪怕復雜的Kubernetes應(yīng)用程序。Helm不是完成這項任務(wù)的唯一方法,另一個流行起來的概念是Kubernetes Operators,Red Hat OpenShift 4使用該概念。
您可以按照其文檔中的快速入門指南或GitHub指南來試用Helm。
Etcd
Etcd是可靠的分布式鍵值存儲項目,可用于存儲分布式系統(tǒng)中關(guān)鍵的數(shù)據(jù)。其主要特點如下:
- 定義明確、面向用戶的API(gRPC)
 - 自動TLS,擁有可選的客戶證書驗證
 - 速度快(每秒10000次寫入)
 - 可靠性(使用Raft來分發(fā))
 
Etcd用作Kubernetes和其他許多技術(shù)的內(nèi)置默認數(shù)據(jù)存儲。話雖如此,它很少獨立運行或作為單獨的服務(wù)運行;相反,它使用集成到Kubernetes和OKD/OpenShift的服務(wù)或另外的服務(wù)。還有etcd Operators可用來管理生命周期并發(fā)掘其API管理功能。
您可以在etcd的文檔中了解更多信息,在GitHub上訪問源代碼。
CRI-O
CRI-O在遵守開放容器倡議(OCI)的情況下實現(xiàn)了Kubernetes運行時接口。CRI-O用于各種功能,包括:
- 運行時環(huán)境使用runc(或任何OCI運行時規(guī)范實現(xiàn))和OCI運行時工具
 - 使用容器/映像的映像管理
 - 使用容器/存儲來存儲和管理映像層
 - 通過容器網(wǎng)絡(luò)接口(CNI)提供網(wǎng)絡(luò)支持
 
CRI-O提供了大量文檔,包括指南、教程、文章甚至播客,您還可以訪問其GitHub頁面。
原文標題:9 open source cloud native projects to consider,作者:Bryant Son
【51CTO譯稿,合作站點轉(zhuǎn)載請注明原文譯者和出處為51CTO.com】
















 
 
 










 
 
 
 