
谷歌雲、亞馬遜雲科技和微軟 Azure 聯合宣佈了一個新的開源專案 Kube Resource Orchestrator(kro,讀作 “crow”)。該專案試圖對 Kubernetes 資源的分組和部署方式進行標準化,使平臺團隊可以更輕鬆地部署工作負載。
該文指出,Kubernetes 沒有提供一種可供平臺團隊使用的原生方法,讓他們能夠建立自定義資源組供開發團隊使用,許多組織都是使用 Helm 或 Kustomize 等客戶端模板工具,或構建自己的自定義 Kubernetes 控制器。事實證明,這些方法往往維護成本高昂,非專業人員難以有效使用。
有了 kro,你就可以將應用程式及其依賴項組合成單個資源,方便終端使用者使用。 —— Abdelfettah Sghiouar 和 Nic Slattery
Kro 的核心創新是引入了 自定義資源ResourceGraphDefinition 。Kro 將 Kubernetes 部署及其依賴項都封裝到了單個 API 中,支援自定義終端使用者介面,僅暴露供非平臺工程師使用的引數。這種遮蔽隱藏了 Kubernetes 和雲提供商 API 端點的複雜性,那在部署上下文中並沒有用處。

該文大致介紹了兩個真實的 kro 應用案例。在第一個場景中,平臺工程師使用 kro 為組織成員提供自助服務訪問許可權,使他們可以建立 Google Kubernetes 引擎(GKE)叢集,並且預先配置好了管理工作負載、策略和安全設定。第二個示例演示了 DevOps 工程師如何為 Web 應用程式建立可重複使用的定義,封裝從部署和服務到監控代理和雲端儲存的所有必要的資源。
對於當前雲提供商提供的那些用於管理雲資源的 Kubernetes 擴充套件,Kro 可與它們無縫整合。其中包括:AWS Kubernetes 控制器(ACK)、Google 配置聯結器(KCC)和 Azure 服務操作員(ASO)。
Kro 可實現標準化、可重用的服務模板,促進不同專案和環境間的一致性,而且完全是 Kubernetes 原生的 。Kro 仍處於早期開發階段。文中寫道:“作為一個尚處於早期階段的專案,kro 還不能用於生產,但我們仍然鼓勵你在自己的 Kubernetes 開發環境中進行測試。”
在 AKS 工程部落格上,Bridget Kromhout 和 Matthew Christopher 發表了一篇 文章,從微軟的角度簡要介紹了 kro 專案。對於這個旨在簡化資源管理的 Kubernetes 原生工具,該文強調了微軟 Azure 與 亞馬遜雲科技以及谷歌雲三方的合作。Kromhout 和 Christopher 還提供了特定於 Azure 的實施案例,並強調了社群參與的機會。
我們以客戶和雲原生社群的需求為中心,提供一個無論你在哪裡執行 K8s 叢集都能有效使用的工具。 —— Matthew Christopher 和 Bridget KromhoutKro
網站上提供的演練教程深入淺出地解釋了 kro 的工作原理,說明了 kro 如何建立 ResourceGraphDefinition 。它首先生成一個有向無環圖(DAG),用於理解定義的依賴關係、驗證它們並確定正確的部署順序。然後,它會在 Kubernetes 叢集中為該資源新建一個自定義資源定義(CRD)。
社群中有些評論認為,kro 有能力增強或取代其他成熟的工具,如 Crossplane(一個開源的 CNCF 專案,可讓使用者使用 Kubernetes 協調雲資源)和 Helm(用於定義、安裝和升級 Kubernetes 應用程式的軟體包管理器)。
在 DevOps Toolkit 頻道的一個 YouTube 影片中,Viktor Farcic 討論了 kro 的釋出。他還探討了 kro 對 Crossplane 的影響。最初,Farcic 對 kro 簡化雲資源組合的潛力感到興奮,併成功建立了一個簡單的應用定義,生成了正確的 Kubernetes 資源。但是,Farcic 發現,對於比較複雜的場景,如涉及有條件資源建立和資料庫整合,就會產生許多問題,像缺失預設值和所有者引用,以及資源組的更改無法正確地傳播到現有資源。
他還指出,將 YAML 用於命令式結構並不理想,在一種並非為其設計的格式中新增更多的邏輯可能會導致 “惡果”。對於 Crossplane 社群來說,最重要的是,Farcic 對其用途提出了質疑,因為 kro 與現有工具的功能存在重疊。他指出,“kro 的功能與不久前建立的其他工具差不多,沒有任何令人信服的改進。”雖然 kro 似乎語法更簡單,模板更少,但他說,它目前只提供了 Crossplane 的一小部分功能,還不是一個可行的替代品,尤其是 Crossplane 支援多種語言。
在一篇題為 “Helm 殺手終於出現了嗎?”的博文中,來自 Parity 公司的 Wilson Spearman 指出,Helm 的架構在管理依賴關係、處理 CRD 升級和管理生命週期等方面存在著根本性的限制,而 kro 的成功之處在於其語法更人性化、更易讀。Spearman 最後預測,Helm 將繼續為開源軟體和小型組織提供服務,而 kro 則將在大型企業中佔據主導地位。
Kro 專案已釋出在 GitHub 上,由谷歌、亞馬遜雲科技和微軟團隊共同擁有,並歡迎社群為其開發做出貢獻。專案網站上有全面的文件和示例。
原文連結:
https://www.infoq.com/news/2025/02/kube-resource-orchestrator/
宣告:本文為 InfoQ 翻譯,未經許可禁止轉載。
