このページの改善にご協力ください
このユーザーガイドに貢献するには、すべてのページの右側のペインにある「GitHub でこのページを編集する」リンクを選択してください。
eksctl を使用して kro 機能を作成する
このトピックでは、eksctl を使用して kro (Kube Resource Orchestrator) 機能を作成する方法について説明します。
注記
以下のステップを実行するには、eksctl バージョン 0.220.0 以降が必要です。バージョンを確認するには、eksctl version を実行します。
ステップ 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 コールを行いません。
ステップ 2: kro 機能を作成する
eksctl を使用して kro 機能を作成します。region-code はクラスターがある AWS リージョンに、my-cluster はクラスターの名前に置き換えます。
eksctl create capability \ --regionregion-code\ --clustermy-cluster\ --name my-kro \ --type KRO \ --role-arn arn:aws:iam::[.replaceable]111122223333:role/KROCapabilityRole
このコマンドはすぐに戻りますが、機能がアクティブになるまでにはしばらく時間がかかります。
ステップ 3: 機能がアクティブであることを確認する
機能のステータスを確認します。region-code はクラスターがある AWS リージョンに、my-cluster はクラスターの名前に置き換えます。
eksctl get capability \ --regionregion-code\ --clustermy-cluster\ --name my-kro
ステータスが ACTIVE と表示されたら、機能の準備は完了です。
ステップ 4: Kubernetes リソースを管理するためのアクセス許可を付与する
デフォルトでは、kro は ResourceGraphDefinitions とそのインスタンスのみを作成および管理できます。kro が ResourceGraphDefinitions で定義されている基盤となる Kubernetes リソースを作成および管理できるようにするには、AmazonEKSClusterAdminPolicy アクセスポリシーを機能のアクセスエントリに関連付けます。
機能ロール ARN を取得します。
CAPABILITY_ROLE_ARN=$(aws eks describe-capability \ --regionregion-code\ --clustermy-cluster\ --name my-kro \ --query 'capability.roleArn' \ --output text)
クラスター管理ポリシーを関連付けます。
aws eks associate-access-policy \ --regionregion-code\ --clustermy-cluster\ --principal-arn $CAPABILITY_ROLE_ARN \ --policy-arn arn:aws:eks::aws:cluster-access-policy/AmazonEKSClusterAdminPolicy \ --access-scope type=cluster
重要
AmazonEKSClusterAdminPolicy は、すべての Kubernetes リソースを作成および管理するための広範なアクセス許可を付与し、使用開始を効率化することを目的としています。本番稼働用には、ResourceGraphDefinitions が管理する特定のリソースに必要なアクセス許可のみを付与する、より制限の厳しい RBAC ポリシーを作成します。最小特権のアクセス許可の設定に関するガイダンスについては、「kro アクセス許可の設定」および「EKS 機能のセキュリティに関する考慮事項」を参照してください。
ステップ 5: カスタムリソースが使用可能であることを確認する
機能がアクティブになったら、kro カスタムリソースがクラスターで使用可能になっていることを確認します。
kubectl api-resources | grep kro.run
ResourceGraphDefinition リソースタイプがリストされます。