eksctl を使用して kro 機能を作成する - Amazon EKS

このページの改善にご協力ください

このユーザーガイドに貢献するには、すべてのページの右側のペインにある「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 \ --region region-code \ --cluster my-cluster \ --name my-kro \ --type KRO \ --role-arn arn:aws:iam::[.replaceable]111122223333:role/KROCapabilityRole

このコマンドはすぐに戻りますが、機能がアクティブになるまでにはしばらく時間がかかります。

ステップ 3: 機能がアクティブであることを確認する

機能のステータスを確認します。region-code はクラスターがある AWS リージョンに、my-cluster はクラスターの名前に置き換えます。

eksctl get capability \ --region region-code \ --cluster my-cluster \ --name my-kro

ステータスが ACTIVE と表示されたら、機能の準備は完了です。

ステップ 4: Kubernetes リソースを管理するためのアクセス許可を付与する

デフォルトでは、kro は ResourceGraphDefinitions とそのインスタンスのみを作成および管理できます。kro が ResourceGraphDefinitions で定義されている基盤となる Kubernetes リソースを作成および管理できるようにするには、AmazonEKSClusterAdminPolicy アクセスポリシーを機能のアクセスエントリに関連付けます。

機能ロール ARN を取得します。

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

クラスター管理ポリシーを関連付けます。

aws eks associate-access-policy \ --region region-code \ --cluster my-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 リソースタイプがリストされます。

次のステップ