Amazon EKS Pod Identity Agent 설정 - Amazon EKS

이 페이지 개선에 도움 주기

이 사용자 설명서에 기여하고 싶으신가요? 이 페이지 하단으로 스크롤하여 GitHub에서 이 페이지 편집을 선택하세요. 여러분의 기여는 모두를 위한 더 나은 사용자 설명서를 만드는 데 도움이 됩니다.

Amazon EKS Pod Identity Agent 설정

Amazon EKS Pod Identity는 Amazon EC2 인스턴스 프로파일이 Amazon EC2 인스턴스에 자격 증명을 제공하는 것과 비슷한 방식으로 애플리케이션에 대한 자격 증명을 관리하는 기능을 제공합니다.

Amazon EKS Pod Identity는 추가 EKS Auth API와 각 노드에서 실행되는 에이전트 포드를 통해 워크로드에 보안 인증 정보를 제공합니다.

고려 사항

  • IPv6

    기본적으로 EKS Pod Identity Agent는 포드의 IPv4IPv6 주소에서 수신 대기하여 자격 증명을 요청합니다. 에이전트는 IPv4의 경우 루프백(localhost) IP 주소 169.254.170.23을 사용하고 IPv6의 경우 localhost IP 주소 [fd00:ec2::23]을 사용합니다.

    IPv6 주소를 비활성화하거나 localhost IPv6 IP 주소를 차단하는 경우 에이전트를 시작할 수 없습니다. IPv6을 사용할 수 없는 노드에서 에이전트를 시작하려면 EKS Pod Identity Agent에서 IPv6 비활성화의 단계에 따라 IPv6 구성을 비활성화합니다.

Amazon EKS Pod Identity Agent 생성

에이전트 필수 조건

  • 기존 Amazon EKS 클러스터. 배포하려면 Amazon EKS 시작하기 섹션을 참조하세요. 클러스터 버전 및 플랫폼 버전은 EKS Pod Identity 클러스터 버전에 나열된 버전과 동일한 버전 또는 이후 버전이어야 합니다.

  • 노드 역할에는 에이전트가 EKS Auth API에서 AssumeRoleForPodIdentity 작업을 수행할 수 있는 권한이 있습니다. AWS 관리형 정책: AmazonEKSWorkerNodePolicy 사용 또는 다음과 유사한 사용자 지정 정책 추가가 가능합니다.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "eks-auth:AssumeRoleForPodIdentity" ], "Resource": "*" } ] }

    이 작업은 태그로 제한하여 에이전트를 사용하는 포드가 맡을 수 있는 역할을 제한할 수 있습니다.

  • 노드는 Amazon ECR에 연결하여 이미지를 다운로드할 수 있습니다. 추가 기능의 컨테이너 이미지는 Amazon 컨테이너 이미지 레지스트리에 나열된 레지스트리에 있습니다.

    AWS Management Console의 선택적 구성 설정, 그리고 AWS CLI의 --configuration-values에서 이미지 위치를 변경하고 EKS 추가 기능에 대해 imagePullSecrets를 제공할 수 있습니다.

  • 노드는 Amazon EKS Auth API에 연결할 수 있습니다. 프라이빗 클러스터의 경우 AWS PrivateLink의 eks-auth 엔드포인트가 필요합니다.

AWS Management Console
  1. https://console.aws.amazon.com/eks/home#/clusters에서 Amazon EKS 콘솔을 엽니다.

  2. 왼쪽 탐색 창에서 클러스터를 선택한 다음 EKS Pod Identity Agent 추가 기능을 구성할 클러스터의 이름을 선택합니다.

  3. 추가 기능(Add-ons) 탭을 선택합니다.

  4. 추가 기능 더 가져오기를 선택합니다.

  5. EKS Pod Identity Agent 추가 기능 상자의 오른쪽 상단에 있는 상자를 선택하고 다음을 선택합니다.

  6. 선택한 추가 기능 설정 구성 페이지의 버전 드롭다운 목록에서 임의의 버전을 선택합니다.

  7. (선택 사항) 선택적 구성 설정을 확장하여 추가 구성을 입력합니다. 예를 들어 대체 컨테이너 이미지 위치 및 ImagePullSecrets를 제공할 수 있습니다. 허용된 키가 포함된 JSON Schema는 추가 기능 구성 스키마에 표시됩니다.

    구성 값에 구성 키와 값을 입력합니다.

  8. 다음을 선택합니다.

  9. EKS Pod Identity Agent 포드가 클러스터에서 실행 중인지 확인합니다.

    kubectl get pods -n kube-system | grep 'eks-pod-identity-agent'

    예제 출력은 다음과 같습니다.

    eks-pod-identity-agent-gmqp7                                          1/1     Running   1 (24h ago)   24h
    eks-pod-identity-agent-prnsh                                          1/1     Running   1 (24h ago)   24h

    이제 클러스터에서 EKS Pod Identity 연결을 사용할 수 있습니다. 자세한 내용은 EKS Pod Identity 관련 IAM 역할을 수임하도록 Kubernetes 서비스 계정 구성 단원을 참조하십시오.

AWS CLI
  1. 다음 AWS CLI 명령을 실행합니다. my-cluster를 클러스터 이름으로 바꿉니다.

    aws eks create-addon --cluster-name my-cluster --addon-name eks-pod-identity-agent --addon-version v1.0.0-eksbuild.1
    참고

    EKS Pod Identity Agent는 서비스 계정에 대한 IAM 역할에 service-account-role-arn을 사용하지 않습니다. EKS Pod Identity Agent에 노드 역할의 권한을 제공해야 합니다.

  2. EKS Pod Identity Agent 포드가 클러스터에서 실행 중인지 확인합니다.

    kubectl get pods -n kube-system | grep 'eks-pod-identity-agent'

    예제 출력은 다음과 같습니다.

    eks-pod-identity-agent-gmqp7                                          1/1     Running   1 (24h ago)   24h
    eks-pod-identity-agent-prnsh                                          1/1     Running   1 (24h ago)   24h

    이제 클러스터에서 EKS Pod Identity 연결을 사용할 수 있습니다. 자세한 내용은 EKS Pod Identity 관련 IAM 역할을 수임하도록 Kubernetes 서비스 계정 구성 단원을 참조하십시오.

Amazon EKS Pod Identity Agent 업데이트

추가 기능의 Amazon EKS 유형 업데이트. 클러스터에 Amazon EKS 유형의 추가 기능을 추가하지 않은 경우 Amazon EKS Pod Identity Agent 생성 섹션을 참조하세요.

AWS Management Console
  1. https://console.aws.amazon.com/eks/home#/clusters에서 Amazon EKS 콘솔을 엽니다.

  2. 왼쪽 탐색 창에서 클러스터를 선택한 다음 EKS Pod Identity Agent 추가 기능을 구성할 클러스터의 이름을 선택합니다.

  3. 추가 기능(Add-ons) 탭을 선택합니다.

  4. 새 버전의 추가 기능을 사용할 수 있는 경우 EKS Pod Identity Agent에 버전 업데이트 버튼이 있습니다. 버전 업데이트를 선택합니다.

  5. Amazon EKS Pod Identity Agent 구성 페이지의 버전 드롭다운 목록에서 새 버전을 선택합니다.

  6. 변경 사항 저장(Save changes)을 선택합니다.

    업데이트가 완료되는 데 몇 초 정도 걸릴 수 있습니다. 그런 다음 상태를 확인하여 추가 기능 버전이 업데이트되었는지 확인합니다.

AWS CLI
  1. 클러스터에 설치된 추가 기능의 버전을 확인하세요. my-cluster을 클러스터 이름으로 교체합니다.

    aws eks describe-addon --cluster-name my-cluster --addon-name eks-pod-identity-agent --query "addon.addonVersion" --output text

    예제 출력은 다음과 같습니다.

    v1.0.0-eksbuild.1

    이 절차로 업데이트하려면 먼저 추가 기능을 생성해야 합니다.

  2. AWS CLI를 사용하여 추가 기능 업데이트. AWS Management Console 또는 eksctl를 사용하여 추가 기능을 업데이트하려면 추가 기능 업데이트 부분을 참조하세요. 다음 명령을 디바이스에 복사합니다. 필요에 따라 명령을 다음과 같이 수정한 다음에 수정한 명령을 실행합니다.

    • my-cluster를 클러스터 이름으로 바꿉니다.

    • v1.0.0-eksbuild.1을 원하는 버전으로 바꿉니다.

    • 111122223333을 계정 ID로 바꿉니다.

    • 다음 명령을 실행합니다:

      aws eks update-addon --cluster-name my-cluster --addon-name eks-pod-identity-agent --addon-version v1.0.0-eksbuild.1'

      업데이트가 완료되는 데 몇 초 정도 걸릴 수 있습니다.

  3. 추가 기능 버전이 업데이트되었는지 확인합니다. my-cluster를 클러스터 이름으로 바꿉니다.

    aws eks describe-addon --cluster-name my-cluster --addon-name eks-pod-identity-agent

    업데이트가 완료되는 데 몇 초 정도 걸릴 수 있습니다.

    예제 출력은 다음과 같습니다.

    { "addon": { "addonName": "eks-pod-identity-agent", "clusterName": "my-cluster", "status": "ACTIVE", "addonVersion": "v1.0.0-eksbuild.1", "health": { "issues": [] }, "addonArn": "arn:aws:eks:region:111122223333:addon/my-cluster/eks-pod-identity-agent/74c33d2f-b4dc-8718-56e7-9fdfa65d14a9", "createdAt": "2023-04-12T18:25:19.319000+00:00", "modifiedAt": "2023-04-12T18:40:28.683000+00:00", "tags": {} } }

EKS Pod Identity Agent 구성

EKS Pod Identity Agent에서 IPv6 비활성화

AWS Management Console
AWS Management Console에서 IPv6 비활성화
  1. EKS Pod Identity Agent에서 IPv6를 비활성화하려면 EKS 추가 기능의 선택적 구성 설정에 다음 구성을 추가합니다.

    1. https://console.aws.amazon.com/eks/home#/clusters에서 Amazon EKS 콘솔을 엽니다.

    2. 왼쪽 탐색 창에서 Clusters(클러스터)를 선택한 다음에 추가 기능을 구성할 클러스터의 이름을 선택합니다.

    3. 추가 기능(Add-ons) 탭을 선택합니다.

    4. EKS Pod Identity Agent 추가 기능 상자의 오른쪽 상단에 있는 상자를 선택하고 편집을 선택합니다.

    5. EKS Pod Identity Agent 구성 페이지에서

      1. 사용할 Version(버전)을 선택합니다. 이전 단계와 동일한 버전을 유지하고 별도의 작업으로 버전과 구성을 업데이트하는 것이 좋습니다.

      2. 선택적 구성 설정을 확장합니다.

      3. 구성 값에 중첩 JSON 객체의 JSON 키 "agent": 및 값과 키 "additionalArgs":를 입력합니다. 결과 텍스트는 유효한 JSON 객체여야 합니다. 이 키와 값이 텍스트 상자의 유일한 데이터인 경우 키와 값을 중괄호({})로 둘러쌉니다. 다음 예시는 네트워크 정책이 활성화된 것을 보여줍니다.

        { "agent": { "additionalArgs": { "-b": "169.254.170.23" } } }

        이 구성은 IPv4 주소를 에이전트가 사용하는 유일한 주소로 설정합니다.

    6. EKS Pod Identity Agent 포드를 바꿔서 새 구성을 적용하려면 변경 사항 저장을 선택합니다.

      Amazon EKS는 EKS Pod Identity Agent용 Kubernetes DaemonSet롤아웃을 사용하여 EKS 추가 기능에 변경 사항을 적용합니다. AWS Management Console의 추가 기능 업데이트 기록kubectl rollout status daemonset/eks-pod-identity-agent --namespace kube-system을 사용하여 롤아웃 상태를 추적할 수 있습니다.

      kubectl rollout에는 다음 명령이 있습니다.

      $ kubectl rollout history -- View rollout history pause -- Mark the provided resource as paused restart -- Restart a resource resume -- Resume a paused resource status -- Show the status of the rollout undo -- Undo a previous rollout

      롤아웃이 너무 오래 걸리면 Amazon EKS가 롤아웃을 취소하고 유형이 추가 기능 업데이트이고 상태가 실패인 메시지가 추가 기능의 업데이트 기록에 추가됩니다. 문제를 조사하려면 롤아웃 기록부터 시작하고 EKS Pod Identity Agent 포드에서 kubectl logs를 실행하여 EKS Pod Identity Agent의 로그를 확인합니다.

  2. 업데이트 기록의 새 항목 상태가 성공이면 롤아웃이 완료되었으며 추가 기능이 모든 EKS Pod Identity Agent 포드에서 새 구성을 사용하고 있는 것입니다.

AWS CLI
AWS CLI에서 IPv6 비활성화
  • EKS Pod Identity Agent에서 IPv6를 비활성화하려면 EKS 추가 기능의 구성 값에 다음 구성을 추가합니다.

    다음 AWS CLI 명령을 실행합니다. my-cluster를 본인의 클러스터 이름으로 바꾸고 IAM 역할 ARN을 사용 중인 역할로 바꿉니다.

    aws eks update-addon --cluster-name my-cluster --addon-name eks-pod-identity-agent \ --resolve-conflicts PRESERVE --configuration-values '{"agent":{"additionalArgs": { "-b": "169.254.170.23"}}}'

    이 구성은 IPv4 주소를 에이전트가 사용하는 유일한 주소로 설정합니다.

    Amazon EKS는 EKS Pod Identity Agent용 Kubernetes DaemonSet의 롤아웃을 사용하여 EKS 추가 기능에 변경 사항을 적용합니다. AWS Management Console의 추가 기능 업데이트 기록kubectl rollout status daemonset/eks-pod-identity-agent --namespace kube-system을 사용하여 롤아웃 상태를 추적할 수 있습니다.

    kubectl rollout에는 다음 명령이 있습니다.

    kubectl rollout history -- View rollout history pause -- Mark the provided resource as paused restart -- Restart a resource resume -- Resume a paused resource status -- Show the status of the rollout undo -- Undo a previous rollout

    롤아웃이 너무 오래 걸리면 Amazon EKS가 롤아웃을 취소하고 유형이 추가 기능 업데이트이고 상태가 실패인 메시지가 추가 기능의 업데이트 기록에 추가됩니다. 문제를 조사하려면 롤아웃 기록부터 시작하고 EKS Pod Identity Agent 포드에서 kubectl logs를 실행하여 EKS Pod Identity Agent의 로그를 확인합니다.