Amazon ECR 프라이빗 리포지토리에 Helm 차트 푸시

Amazon ECR 프라이빗 리포지토리에 Helm 차트 푸시

Open Container Initiative(OCI) 아티팩트를 Amazon ECR 리포지토리에 푸시하는 방법을 설명합니다. 이 기능의 예시로, 아래 단계에 따라 Helm 차트를 Amazon ECR에 푸시할 수 있습니다. Amazon ECR에 호스팅한 Helm 차트를 Amazon EKS와 함께 사용하는 방법은 Amazon EKS 클러스터에 Helm 차트 설치를 참고하세요.

출처: 문서

본문

Helm 차트를 Amazon ECR 리포지토리에 푸시

  1. 최신 버전의 Helm 클라이언트를 설치합니다. 이 단계는 Helm 버전 3.18.6을 기준으로 작성되었습니다. Amazon EKS 지원 Kubernetes 버전과의 호환성을 위해서는 Helm 버전 3.9 이상을 사용하세요. 자세한 내용은 Helm 설치를 참고하세요.

  2. 다음 단계를 사용해 테스트용 Helm 차트를 만듭니다. 자세한 내용은 Helm Docs - Getting Started를 참고하세요.

    helm-test-chart라는 Helm 차트를 만들고 templates 디렉터리의 내용을 비웁니다.

    helm create helm-test-chart
    rm -rf ./helm-test-chart/templates/*
    
  3. templates 폴더에 ConfigMap을 만듭니다.

    cd helm-test-chart/templates
    cat <<EOF > configmap.yaml
    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: helm-test-chart-configmap
    data:
      myvalue: "Hello World"
    EOF
    
  4. 차트를 패키징합니다. 출력에는 Helm 차트를 푸시할 때 사용하는 패키징된 차트의 파일 이름이 포함됩니다.

    cd ../..
    helm package helm-test-chart
    

    출력:

    Successfully packaged chart and saved it to: /Users/username/helm-test-chart-0.1.0.tgz
    
  5. Helm 차트를 저장할 리포지토리를 만듭니다. 리포지토리 이름은 2단계에서 Helm 차트를 만들 때 사용한 이름과 일치해야 합니다. 자세한 내용은 이미지 저장용 Amazon ECR 프라이빗 리포지토리 생성 문서를 참고하세요.

    aws ecr create-repository \
        --repository-name helm-test-chart \
        --region us-west-2
    
  6. Helm 차트를 푸시하려는 Amazon ECR 레지스트리에 Helm 클라이언트를 인증합니다. 인증 토큰은 사용하는 각 레지스트리에 대해 얻어야 하며, 토큰의 유효 기간은 12시간입니다. 자세한 내용은 Amazon ECR의 프라이빗 레지스트리 인증을 참고하세요.

    aws ecr get-login-password \
        --region us-west-2 | helm registry login \
        --username AWS \
        --password-stdin aws_account_id.dkr.ecr.region.amazonaws.com
    
  7. helm push 명령어를 사용해 Helm 차트를 푸시합니다. 출력에는 Amazon ECR 리포지토리 URI와 SHA 다이제스트가 포함되어야 합니다.

    helm push helm-test-chart-0.1.0.tgz oci://aws_account_id.dkr.ecr.region.amazonaws.com/
    
  8. Helm 차트를 설명(describe)합니다.

    aws ecr describe-images \
        --repository-name helm-test-chart \
        --region us-west-2
    

    출력에서 artifactMediaType 매개변수가 올바른 아티팩트 유형을 나타내는지 확인합니다.

    {
        "imageDetails": [
            {
                "registryId": "aws_account_id",
                "repositoryName": "helm-test-chart",
                "imageDigest": "sha256:dd8aebdda7df991a0ffe0b3d6c0cf315fd582cd26f9755a347a52adEXAMPLE",
                "imageTags": [
                    "0.1.0"
                ],
                "imageSizeInBytes": 1620,
                "imagePushedAt": "2021-09-23T11:39:30-05:00",
                "imageManifestMediaType": "application/vnd.oci.image.manifest.v1+json",
                "artifactMediaType": "application/vnd.cncf.helm.config.v1+json"
            }
        ]
    }
    
  9. (선택 사항) 추가 단계로 Helm ConfigMap을 설치하고 Amazon EKS를 시작해 볼 수 있습니다. 자세한 내용은 Amazon EKS 클러스터에 Helm 차트 설치를 참고하세요.

더 알아보기 (Learn more)