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 워크로드의 경우 프라이빗 Amazon ECR 리포지토리에서 이미지를 가져올 수 있는 권한을 포드에 제공하는 Fargate 포드 실행 역할을 사용해야 합니다. 자세한 내용은 Fargate 포드 실행 역할 만들기를 참조하세요.

  • Amazon ECR에서 이미지를 참조할 때는 이미지에 대해 전체 registry/repository:tag 이름 지정을 사용해야 합니다. 예: aws_account_id.dkr.ecr.region.amazonaws.com/my-repository:latest.

Amazon ECR과 Amazon EKS에서 호스팅되는 Helm 차트 설치

Amazon ECR에서 호스팅되는 Helm 차트는 Amazon EKS 클러스터에 설치할 수 있습니다. 다음 단계에서는 이를 보여줍니다.

사전 조건

시작하기 전에 다음 단계가 완료되었는지 확인합니다.

  • Helm 클라이언트의 최신 버전을 설치합니다. 이들 단계는 Helm 버전을 사용하여 작성되었습니다 3.9.0. 자세한 정보는 Helm 설치를 참조하세요.

  • 최소한 AWS CLI의 1.23.9 또는2.6.3 버전이 컴퓨터에 설치되어 있어야 합니다. 자세한 내용은 최신 버전의 AWS CLI 설치 또는 업데이트를 참조하세요.

  • Amazon ECR 리포지토리에 Helm 차트를 푸시했습니다. 자세한 내용은 Helm 차트 푸시을(를) 참조하세요.

  • Amazon EKS로 작업하기 위해 kubectl를 구성했습니다. 자세한 내용은 Amazon EKS 사용 설명서Amazon EKS의 kubeconfig생성을 참조하세요. 클러스터에 대해 다음 명령이 성공한 경우 적절하게 구성한 것입니다.

    kubectl get svc

Amazon EKS 클러스터에 Amazon ECR로 호스트된 Helm 차트 설치

  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