使用 CLI 建立 kro AWS 功能 - Amazon EKS

協助改進此頁面

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

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

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

使用 CLI 建立 kro AWS 功能

本主題說明如何使用 CLI 建立 kro (Kube Resource Orchestrator) AWS 功能。

先決條件

  • AWS CLI – 版本 2.12.3 或更新版本。若要檢查您的版本,請執行 aws --version。如需詳細資訊,請參閱《 AWS 命令列界面使用者指南》中的安裝

  • kubectl :命令列工具,適用於使用 Kubernetes 叢集。如需詳細資訊,請參閱設定 kubectl 和 eksctl

步驟 1:建立 IAM 功能角色

建立信任政策檔案:

cat > kro-trust-policy.json << 'EOF' { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "capabilities.eks.amazonaws.com" }, "Action": [ "sts:AssumeRole", "sts:TagSession" ] } ] } EOF

建立 IAM 角色:

aws iam create-role \ --role-name KROCapabilityRole \ --assume-role-policy-document file://kro-trust-policy.json
注意

與 ACK 和 Argo CD 不同,kro 不需要額外的 IAM 許可。 kro 完全在您的叢集內運作,而且不會進行 AWS API 呼叫。只有建立與 EKS 功能服務的信任關係時,才需要此角色。

步驟 2:建立 kro 功能

在叢集上建立 kro 功能資源。將 region-code 取代為您的叢集所在的 AWS 區域 (例如 us-west-2),並將 my-cluster 取代為您的叢集名稱。

aws eks create-capability \ --region region-code \ --cluster-name my-cluster \ --capability-name my-kro \ --type KRO \ --role-arn arn:aws:iam::$(aws sts get-caller-identity --query Account --output text):role/KROCapabilityRole \ --delete-propagation-policy RETAIN

命令會立即傳回,但當 EKS 建立所需的功能基礎設施和元件時,功能需要一些時間才會變成作用中。EKS 會在建立叢集時,在叢集中安裝與此功能相關的 Kubernetes 自訂資源定義。

注意

如果您收到叢集不存在或您沒有許可的錯誤,請驗證:

  • 叢集名稱正確

  • 您的 AWS CLI 已設定為正確的區域

  • 您擁有必要的 IAM 許可

步驟 3:確認功能處於作用中狀態

等待 功能變成作用中。將 region-code 取代為您的叢集所在的 AWS 區域,並將 my-cluster 取代為您的叢集名稱。

aws eks describe-capability \ --region region-code \ --cluster-name my-cluster \ --capability-name my-kro \ --query 'capability.status' \ --output text

當狀態顯示 時,此功能已就緒ACTIVE

您也可以檢視完整的功能詳細資訊:

aws eks describe-capability \ --region region-code \ --cluster-name my-cluster \ --capability-name my-kro

步驟 4:授予管理 Kubernetes 資源的許可

根據預設,kro 只能建立和管理 ResourceGraphDefinitions 及其執行個體。若要允許 kro 建立和管理 ResourceGraphDefinitions 中定義的基礎 Kubernetes 資源,請將AmazonEKSClusterAdminPolicy存取政策與功能的存取項目建立關聯。

取得功能角色 ARN:

CAPABILITY_ROLE_ARN=$(aws eks describe-capability \ --region region-code \ --cluster-name my-cluster \ --capability-name my-kro \ --query 'capability.roleArn' \ --output text)

關聯叢集管理員政策:

aws eks associate-access-policy \ --region region-code \ --cluster-name my-cluster \ --principal-arn $CAPABILITY_ROLE_ARN \ --policy-arn arn:aws:eks::aws:cluster-access-policy/AmazonEKSClusterAdminPolicy \ --access-scope type=cluster
重要

AmazonEKSClusterAdminPolicy 授予建立和管理所有 Kubernetes 資源的廣泛許可,旨在簡化入門。對於生產用途,請建立更嚴格的 RBAC 政策,僅授予 ResourceGraphDefinitions 將管理之特定資源所需的許可。如需設定最低權限許可的指引,請參閱 設定 kro 許可EKS 功能的安全考量

步驟 5:確認可用的自訂資源

功能處於作用中狀態後,請確認叢集中是否有可用的 kro 自訂資源:

kubectl api-resources | grep kro.run

您應該會看到列出的ResourceGraphDefinition資源類型。

後續步驟