七個(gè)用于調(diào)度和編排的 CNCF 工具
像Kubernetes這樣的容器管理器已經(jīng)成為管理大量容器的關(guān)鍵。通過(guò)在集群(一組機(jī)器)中運(yùn)行容器,系統(tǒng)可以優(yōu)化每個(gè)應(yīng)用程序消耗內(nèi)存的方式。隨著云原生生態(tài)系統(tǒng)向微服務(wù)設(shè)計(jì)和日益分散的計(jì)算發(fā)展,自動(dòng)化這些容器管理操作變得至關(guān)重要。

Kubernetes已成為接近標(biāo)準(zhǔn)的容器編排和調(diào)度實(shí)用程序,使工程師能夠從一個(gè)控制平面更好地管理其分布式節(jié)點(diǎn)。如今,它是維護(hù)最積極的編排器,這意味著該領(lǐng)域的許多其他工具都傾向于與 Kubernetes 集成并將其擴(kuò)展到獨(dú)特的開(kāi)發(fā)場(chǎng)景中。例如,kube-rs 使使用 Rust 語(yǔ)言的 Kubernetes 更容易。
云原生計(jì)算基金會(huì) (CNCF) 一直是streaming, observability, container runtime, CI/CD等領(lǐng)域新的云原生工具的一股力量。
下面,我們將研究由CNCF托管的七個(gè)與調(diào)度和編排相關(guān)的項(xiàng)目。其中許多開(kāi)源項(xiàng)目都支持 Kubernetes,并有助于處理多集群管理、多云、數(shù)據(jù)密集型工作負(fù)載和其他特定要求等問(wèn)題。
1. Kubernetes
用于自動(dòng)化部署、擴(kuò)展和管理容器化應(yīng)用程序的系統(tǒng)。
- GitHub:https://github.com/kubernetes/kubernetes
- 網(wǎng)站:https://kubernetes.io/
Kubernetes,通??s寫(xiě)為 K8s,是使用最廣泛的容器編排器。Kubernetes 最初由 Google 設(shè)計(jì),擅長(zhǎng)調(diào)度和擴(kuò)展大規(guī)模容器工作負(fù)載、優(yōu)化它們的運(yùn)行位置以及處理許多其他應(yīng)用程序生命周期職責(zé)。正如我們之前詳述的,Kubernetes 與 Docker 不同,盡管這兩種工具經(jīng)常同時(shí)使用。Kubernetes 于 2014 年開(kāi)源,現(xiàn)在是一個(gè)完全畢業(yè)的 CNCF 項(xiàng)目。
2. Crossplane
通用控制平面。
- GitHub:https://github.com/crossplane/crossplane
- 網(wǎng)站:https://crossplane.io/
現(xiàn)在有多種 Kubernetes 風(fēng)格。Kubernetes 可以通過(guò) EKS、AKS、GKE、ACK 或 PKS 等服務(wù)進(jìn)行自我管理或云管理。多集群管理也有不同的做法。Crossplane 是一種擴(kuò)展 K8s API 的工具,可以更輕松地與多個(gè)云提供商交互。使用 Crossplane,團(tuán)隊(duì)可以通過(guò)一個(gè)通用 API 進(jìn)行通信,以自定義方式管理多個(gè)集群和供應(yīng)商。Crossplane 還支持插入安全策略和護(hù)欄,以幫助保護(hù)您的云原生基礎(chǔ)架構(gòu)。Crossplane 由 Upbound 創(chuàng)建,在 CNCF 中處于孵化狀態(tài)。
3. Fluid
用于彈性數(shù)據(jù)抽象和加速的云原生編排平臺(tái)。
- GitHub:https://github.com/fluid-cloudnative/fluid
- 網(wǎng)站:http://pasa-bigdata.nju.edu.cn/fluid/index.html
如今,在 AI/ML 開(kāi)發(fā)等場(chǎng)景中使用數(shù)據(jù)密集型應(yīng)用程序很常見(jiàn)。Kubernetes 是一個(gè)容器編排器,而 Fluid 則是為編排數(shù)據(jù)層而設(shè)計(jì)的。Fluid 是一個(gè)開(kāi)源的 Kubernetes 原生項(xiàng)目,可幫助處理數(shù)據(jù)并按需擴(kuò)展數(shù)據(jù)集緩存?;?Alluxio,F(xiàn)luid 為管理數(shù)據(jù)集提供了運(yùn)行時(shí)和額外的抽象,使其成為處理分布式緩存的主要工具。通過(guò)優(yōu)化數(shù)據(jù)處理方式,F(xiàn)luid 可以比其他方法更快地訓(xùn)練AI/ML 模型。在撰寫(xiě)本文時(shí),F(xiàn)luid 是一個(gè)沙盒 CNCF 項(xiàng)目。
4. Karmada
多云、多集群 K8s 編排器。
- GitHub:https://github.com/karmada-io/karmada
- 網(wǎng)站:https://karmada.io/
如前所述,擴(kuò)展的云原生架構(gòu)可能使用不同風(fēng)格的 Kubernetes。Karmada 就是為這一現(xiàn)實(shí)而構(gòu)建的,因?yàn)樗且粋€(gè)實(shí)用程序,可幫助您跨各種 Kubernetes 集群和云運(yùn)行應(yīng)用程序。使用 Karmada 作為集中管理點(diǎn)可以幫助避免供應(yīng)商鎖定并實(shí)現(xiàn)混合多云計(jì)算安排。Karmada 使用 REST API 服務(wù)器運(yùn)行,該服務(wù)器與訪問(wèn)各種云中的集群的控制器進(jìn)行通信。此過(guò)程根據(jù)約束和可用資源來(lái)調(diào)度集群。Karmada 目前是一個(gè)由 CNCF 托管的具有開(kāi)放治理的沙盒項(xiàng)目。
5. kube-rs
Kubernetes 的 Rust 客戶端。
- GitHub:https://github.com/kube-rs/kube-rs
- 網(wǎng)站:https://kube.rs/
與 Kubernetes 的Go 客戶端類似,kube-rs 為 Kubernetes 自定義資源定義 (CRD) 提供運(yùn)行時(shí)抽象層和宏。該項(xiàng)目使編寫(xiě)與 Rust 中的 Kubernetes API 交互的應(yīng)用程序變得容易。Kube.rs 將反射器、控制器和自定義資源接口等 Kubrentes 原生元素重新解釋為 Rust 語(yǔ)言。查看??入門(mén)指南??以開(kāi)始使用 kube-rs。在撰寫(xiě)本文時(shí),kube-rs 是 CNCF 的沙盒項(xiàng)目。
6. Open Cluster Management
用于管理多個(gè) K8s 集群的集中控制平面。
- GitHub:https://github.com/open-cluster-management-io/ocm
- 網(wǎng)站:https://open-cluster-management.io/
隨著組織部署的 Kubernetes 集群數(shù)量的增加,同時(shí)管理它們變得越來(lái)越困難,更不用說(shuō)保持對(duì)其內(nèi)部運(yùn)作的可見(jiàn)性了??缍鄠€(gè)云供應(yīng)商使用 Kubernetes 的團(tuán)隊(duì)加劇了這種情況。開(kāi)放集群管理 (OCM) 項(xiàng)目是一個(gè)有趣的開(kāi)源計(jì)劃,旨在提供對(duì)多個(gè) Kubernetes 集群的集中控制。借助 OCM,操作員可以從單個(gè)控制平面創(chuàng)建和刪除多個(gè)云上的集群。您也可以注冊(cè)集群并跨多個(gè)集群應(yīng)用標(biāo)準(zhǔn)安全策略。OCM 提供clusteradm,一個(gè)用于多集群管理的命令行工具。在撰寫(xiě)本文時(shí),Open Cluster Management 是 CNCF 的沙盒項(xiàng)目。
7. Volcano
云原生批處理系統(tǒng)。
- GitHub:https://github.com/volcano-sh/volcano
- 網(wǎng)站:https://volcano.sh/en/
Volcano 是一個(gè)開(kāi)源項(xiàng)目,它為批處理和彈性計(jì)算提供組件。創(chuàng)建它是因?yàn)?Kubernetes 不提供開(kāi)箱即用的數(shù)據(jù)密集型工作負(fù)載所需的那種批處理調(diào)度功能。該工具有助于在 AI/ML 或基因組學(xué)等領(lǐng)域?qū)⒋髷?shù)據(jù)應(yīng)用程序作為 Kubernetes 工作負(fù)載運(yùn)行。在撰寫(xiě)本文時(shí),Volcano 是 CNCF 的沙盒項(xiàng)目。
想法:開(kāi)源調(diào)度器工具
上面,我們回顧了 CNCF 下一些新興的容器編排和調(diào)度項(xiàng)目。如您所見(jiàn),Kubernetes 無(wú)處不在的后果影響了許多新軟件包的創(chuàng)建,以迎合這種新范式。無(wú)論運(yùn)營(yíng)商是試圖統(tǒng)一不同的 Kubernetes 風(fēng)格,使用他們選擇的語(yǔ)言工作,還是在 Kubernetes 集群中運(yùn)行數(shù)據(jù)密集型計(jì)算,CNCF 都有一些有趣的項(xiàng)目來(lái)滿足這些特殊需求。































