資源合成與 kro (Kube Resource Orchestrator) - Amazon EKS

協助改進此頁面

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

若要為本使用者指南貢獻內容,請點選每個頁面右側面板中的在 GitHub 上編輯此頁面連結。

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

資源合成與 kro (Kube Resource Orchestrator)

kro (Kube Resource Orchestrator) 是一種開放原始碼的 Kubernetes 原生專案,可讓您使用簡單且直接的組態來定義自訂 Kubernetes APIs。使用 kro,您可以輕鬆設定新的自訂 APIs,以建立一組 Kubernetes 物件及其之間的邏輯操作。

透過 EKS 功能,kro 完全由 管理 AWS,無需在叢集上安裝、維護和擴展 kro 控制器。

kro 的運作方式

kro 推出稱為 (RGD) 的自訂資源定義 ResourceGraphDefinition(CRD),可簡單且簡化地建立自訂 Kubernetes APIs。當您建立 時ResourceGraphDefinition,kro 會使用原生 Kubernetes 延伸模組來建立和管理叢集中的新 APIs。從這個單一資源規格中,kro 會根據您的規格為您建立新的 CRD 並註冊,並調整以管理新定義的自訂資源。

RGDs可以包含多個資源,而 kro 會判斷相互依存性和資源排序,因此您不需要。您可以使用簡單的語法,將組態從一個資源注入到另一個資源,大幅簡化合成並消除叢集中對「黏附」運算子的需求。透過 kro,您的自訂資源可以包含原生 Kubernetes 資源,以及叢集中安裝的任何自訂資源定義 (CRDs)。

kro 支援單一主要資源類型:

  • ResourceGraphDefinition (RGD):定義 Kubernetes 自訂資源,封裝一或多個基礎原生或自訂 Kubernetes 資源

除了此資源之外,kro 還將建立和管理使用它建立的自訂資源的生命週期,以及其所有元件資源。

kro 與 AWS Controllers for Kubernetes (ACK) 無縫整合,可讓您使用 AWS 資源編寫工作負載資源,以建立更高階的抽象概念。這可讓您建立自己的雲端建置區塊,簡化資源管理,並根據組織標準,使用預設和不可變的組態設定啟用可重複使用的模式。

kro 的優點

kro 可讓平台團隊建立自訂 Kubernetes APIs,將多個資源組成更高階的抽象概念。這可讓開發人員使用簡單、標準化和版本控制的自訂資源來部署複雜的應用程式,進而簡化資源管理。您可以定義常用資源組合的可重複使用模式,讓整個組織建立一致的資源。

kro 在 Kubernetes 中使用通用表達式語言 (CEL),在資源之間傳遞值並整合條件式邏輯,提供資源合成的彈性。您可以將 ACK 管理的 Kubernetes AWS 資源和資源組成為統一APIs,以啟用完整的應用程式和基礎設施定義。

kro 透過 Kubernetes 資訊清單支援宣告式組態,讓 GitOps 工作流程和基礎設施成為與現有開發程序無縫整合的程式碼實務。作為 EKS 受管功能的一部分,kro 由 完全管理 AWS,無需在叢集上安裝、設定和維護 kro 控制器。

範例:建立 ResourceGraphDefinition

下列範例顯示使用 部署和服務建立 Web 應用程式的簡單 ResourceGraphDefinition

apiVersion: kro.run/v1alpha1 kind: ResourceGraphDefinition metadata: name: web-application spec: schema: apiVersion: v1alpha1 kind: WebApplication spec: name: string replicas: integer | default=3 resources: - id: deployment template: apiVersion: apps/v1 kind: Deployment metadata: name: ${schema.spec.name} spec: replicas: ${schema.spec.replicas} - id: service template: apiVersion: v1 kind: Service metadata: name: ${schema.spec.name}

當使用者建立WebApplication自訂資源的執行個體時,kro 會自動建立對應的部署和服務資源,並管理其生命週期與自訂資源。

與其他 EKS 受管功能的整合

kro 與其他 EKS 受管功能整合。

  • AWS Kubernetes (ACK) 的控制器:使用 kro 將 ACK 資源編寫為更高層級的抽象,簡化 AWS 資源管理。

  • Argo CD:使用 Argo CD 管理跨多個叢集的 kro 自訂資源部署,為您的平台建置區塊和應用程式堆疊啟用 GitOps 工作流程。

kro 入門

若要開始使用 kro 的 EKS 功能:

  1. 透過 AWS 主控台、 AWS CLI 或您偏好的基礎設施做為程式碼工具,在您的 EKS 叢集上建立 kro 功能資源

  2. 建立 ResourceGraphDefinitions (RGDs),以定義您的自訂 APIs和資源組成。

  3. 套用自訂資源的執行個體,以佈建和管理基礎 Kubernetes AWS 和資源。