1. 程式人生 > >一文掌握Kubernetes衍生的9大開源專案

一文掌握Kubernetes衍生的9大開源專案

Kubernetes是當今容器革命的中心。容器運動使整個IT行業圍繞開放標準進行整合,使所有組織受益,而不僅僅是少數強大的供應商。這就是Kubernetes所代表的:一個建立在開放基礎上的軟體交付世界。

 

然而,這種開放性不僅僅與Kubernetes有關。相反,在圍繞Kubernetes構建的所有工具和解決方案中,這種開放性都很明顯。這是因為特意為Kubernetes構建的開放式架構。當谷歌向全世界釋出Kubernetes時,平臺上存在大量空洞,需要填充。雖然存在希望,但很少有人知道是否會有足夠的支援。令大家驚訝的是,圍繞Kubernetes的共識幾乎是一致的。過去幾年出現的各種解決方案大多數是開源的。以下是Kubernetes衍生的關鍵開源專案(排名不分先後)

 

1|Helm

 

Helm是Kubernetes的包管理器。它有助於自動執行手動安裝任務。Helm有一個名為Charts的功能,這是一個描述Kubernetes資源列表的YAML檔案。

除了安裝之外,它還有助於使部署更容易、更可預測。通過對CI / CD採用系統化方法,Helm有助於簡化軟體交付流程。它與Kubernetes很好地整合,是CNCF的一部分。

 

2|Operator Framwork

 

 

由CoreOS建立,現在歸屬於紅帽,Operator Framework在構建Kubernetes原生應用程式時提供抽象和簡單性。operator是在Kubernetes上部署應用程式的方法。目前,在Kubernetes上構建應用程式時,需要編寫許多低階API和樣板程式碼。Operator Framework旨在通過提供有助於管理應用程式開發和進一步管理整個應用程式生命週期的SDK來改進這一點。

 

3|gVisor

 

gVisor是為數不多的專注於保護Kubernetes叢集的工具之一。具體來說,它處理容器隔離,這對安全性至關重要。gVisor可用於在沙盒gVisor容器中執行你不完全信任的應用程式。這些沙盒容器與系統的其餘部分充分隔離,因此在應用程式出現任何問題的情況下,可提供一層保護。過去,已經有了基於機器的虛擬機器隔離解決方案,以及使用seccomp、SELinux和AppArmor等工具進行基於規則的隔離。gVisor在這些工具之上的一層工作,改進了系統呼叫的處理。在gVisor上執行的每個應用程式都有自己的核心和不同的主機資源。這樣,你可以在初始階段更加大膽地在生產中執行應用程式。

當然,你需要的不只是gVisor才能真正保護在Kubernetes中的應用程式。實際上,你需要一個完整的策略來管理開源風險。這種風險甚至可能來自管理開源工具,使其易受攻擊。像Whitesource這樣的工具是使用開源工具時保持合規的關鍵。

 

4|Istio

 

Istio是現在最熱門的Kubernetes容器網路工具。它基於“服務網格”模型。它使用Envoy邊車代理——充當代理網格,並在微服務應用程式的各種服務之間實現更好的通訊。Istio處理整個網路的負載均衡。它實施控制流量和網路請求加密的策略。仍然處於pre-v1.0階段的Istio不支援所有的容器編排器(如Mesos),但對Kubernetes的支援很強。在過去的一年中,Istio的採用一直很強勁,而且仍將持續。

 

5|Prometheus

 

Prometheus是Kubernetes的頂級監控工具。它側重於捕獲和提供流式實時指標以供分析。在管理Kubernetes時,你需要實時監控,Prometheus做得很好。 Prometheus利用另一個開源工具Kibana進行視覺化,但它本身具有強大的查詢功能,可讓你充分利用監控指標。Prometheus的最大好處是你可以根據指標設定實時警報。這些警報可以通過電子郵件或Pagerduty等外部工具傳送。其他監控工具包括Heapster和cAdvisor,但Prometheus是目前用得最多的。

 

6|OpenTracing

 

由於微服務架構的複雜性,網路通訊是一個巨大的挑戰。當請求通過網路時,它們會觸及多個服務。能夠跟蹤網路請求的細節是管理員所必需的。 OpenTracing以微服務模型為基礎,可以深入瞭解網路請求,從頭到尾跟蹤完整路徑,並在整個過程中及時處理問題。它提供了每個步驟所用時間的直觀表示,並且當與指標和日誌結合使用時,它是一個強大的除錯和安全工具。

 

7|Kops

 

命令列是一個常常沒有被充分利用的強大工具。Kops希望通過允許開發人員在AWS、Google Cloud和Digital Ocean等雲平臺上輕鬆建立和管理Kubernetes叢集來改變這種狀況。Kops正在為更多雲供應商提供支援。Kops允許你使用可以執行復雜任務的簡單命令輕鬆地從CLI建立群集。它通過抽象複雜性和提供強大的預設值和易於定製的模板來實現這一點。就像使用kubectl在叢集內執行命令一樣,你可以使用Kops在叢集上執行命令。Kops的好處是自動化和抽象化的叢集管理以及提高效率。Kops還集成了Terraform模板,讓你可以在雲平臺上建立K8s叢集。

 

8|Project Calico

 

Project Calico是一款獨特的工具,可提供基於策略的網路安全性。Calico採用精細且分散式的安全方法。與曾經使整個系統易受攻擊的傳統外圍防火牆不同,Calico使用微型牆封裝系統內的每個服務。

 

9|GRPC

 

另一個網路工具gRPC處理遠端過程呼叫,即客戶端和伺服器位於不同主機上時候的通訊。gRPC專門管理Kubernetes網路中請求的負載均衡。它啟用了路由請求的規則,以便系統在峰值容量時表現正常,並且沒有單個節點過載。它處理重試和超時,從而確保沒有長時間執行的請求佔用系統資源。通過引入請求的雙向流,gRPC實時地進行服務到服務的通訊。通過克服通訊的關鍵挑戰,gRPC讓Kubernetes管理員專注於應用邏輯和更高價值的任務。

 

勇敢的新開源Kubernetes世界

當你向更加以Kubernetes為中心的堆疊邁進時,挑戰是新的,解決方案也應如此。這些解決方案並非來自大型供應商,相反,它們來自整個開發者社群,為面臨的問題建立解決方案,並與世界分享,以便進一步改進和完善。在這個新經濟中,開源不是養子或事後的想法——它是面對雲端計算這一整個難題的關鍵。無論是安全性、網路、監控還是更好的管理,都有對應的開源工具。因此,把那些昂貴的、專有的、鎖定的供應商工具放在一邊,進入開源Kubernetes工具的勇敢新世界吧。