Amazon EKS での Amazon ECR イメージの使用 - Amazon ECR

Amazon EKS での Amazon ECR イメージの使用

Amazon EKS で Amazon ECR イメージを使用できますが、以下の前提条件を満たす必要があります。

  • 管理ノードまたは自己管理ノードでホストされる Amazon EKS ワークロードの場合、Amazon EKS ワーカーノード IAM ロール (NodeInstanceRole) が必要です。Amazon EKS ワーカーノード IAM ロールには、Amazon ECR の次の IAM ポリシー許可が含まれている必要があります。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecr:BatchCheckLayerAvailability", "ecr:BatchGetImage", "ecr:GetDownloadUrlForLayer", "ecr:GetAuthorizationToken" ], "Resource": "*" } ] }
    注記

    Amazon EKS の使用開始」の eksctl または AWS CloudFormation テンプレートを使用してクラスターとワーカーノードグループを作成した場合、これらの IAM アクセス許可はデフォルトでワーカーノードの IAM ロールに適用されます。

  • AWS Fargate でホストされている Amazon EKS ワークロードの場合、Fargate ポッド実行ロールを使用する必要があります。このロールは、プライベート Amazon ECR リポジトリからイメージをプルする許可をポッドに付与します。詳細については、「Fargate ポッド実行ロールの作成」を参照してください。

  • Amazon ECR からイメージを参照する場合は、イメージに registry/repository:tag の形式の完全な名前を使用する必要があります 例えば、aws_account_id.dkr.ecr.region.amazonaws.com/my-repository:latest です。

Amazon EKS を使用して Amazon ECR でホストされる Helm チャートをインストールする

Amazon ECR でホストされている Helm チャートを Amazon EKS クラスターにインストールできます。その手順を以下に示します。

前提条件

開始する前に、以下のステップが完了していることを確認してください。

  • Helm クライアントの最新バージョンをインストールします。これらのステップは、Helm バージョン 3.9.0 を使用して作成されました。詳細については、「Installing Helm」を参照してください。

  • 少なくとも、AWS CLI のバージョン 1.23.9 または 2.6.3 がコンピュータにインストールされています。詳細については、「Installing or updating the latest version of the AWS CLI」を参照してください。

  • Helm チャートを Amazon ECR リポジトリにプッシュします。詳細については、「Helm チャートをプッシュする」を参照してください。

  • Amazon EKS で使用する kubectl を設定します。詳細については、Amazon EKS ユーザーガイドの「Amazon EKS の kubeconfig を作成する」を参照してください。次のコマンドがクラスターに対して正常に実行された場合は、正しく設定されています。

    kubectl get svc

Amazon ECR ホストの Helm チャートを Amazon EKS クラスターにインストールする

  1. Helm チャートがホストされている Amazon ECR レジストリで Helm クライアントを認証します。認証トークンは、使用するレジストリごとに取得する必要があり、トークンは 12 時間有効です。詳細については、「プライベートレジストリの認証」を参照してください。

    aws ecr get-login-password \ --region us-west-2 | helm registry login \ --username AWS \ --password-stdin aws_account_id.dkr.ecr.region.amazonaws.com
  2. グラフをインストールします。helm-test-chartをリポジトリに、0.1.0をHelm チャートのタグに置き換えます。

    helm install ecr-chart-demo oci://aws_account_id.dkr.ecr.region.amazonaws.com/helm-test-chart --version 0.1.0

    出力は次のようになります。

    NAME: ecr-chart-demo
    LAST DEPLOYED: Tue May 31 17:38:56 2022
    NAMESPACE: default
    STATUS: deployed
    REVISION: 1
    TEST SUITE: None
  3. チャートのインストールを検証します。

    helm list -n default

    出力例:

    NAME            NAMESPACE       REVISION        UPDATED                                 STATUS          CHART                   APP VERSION
    ecr-chart-demo  default         1               2022-06-01 15:56:40.128669157 +0000 UTC deployed        helm-test-chart-0.1.0   1.16.0
  4. (オプション) インストールされている Helm チャート ConfigMap を確認します。

    kubectl describe configmap helm-test-chart-configmap
  5. 終了したら、クラスターからチャートのリリースを削除できます。

    helm uninstall ecr-chart-demo