Amazon EKS Pod Identity Agent 설정
Amazon EKS Pod Identity Agent 설정
EKS Pod Identity 사용을 위해 Amazon EKS Pod Identity Agent를 설정하는 방법을 설명합니다.
출처: 문서
본문
Amazon EKS Pod Identity 연결은 Amazon EC2 인스턴스 프로파일이 Amazon EC2 인스턴스에 자격 증명을 제공하는 방식과 유사하게, 애플리케이션의 자격 증명을 관리하는 기능을 제공합니다.
Amazon EKS Pod Identity는 추가 EKS Auth API와 각 노드에서 실행되는 에이전트 Pod를 통해 워크로드에 자격 증명을 제공합니다.
팁: EKS Auto Mode 클러스터에는 EKS Pod Identity Agent를 설치할 필요가 없습니다. 이 기능은 EKS Auto Mode에 내장되어 있습니다.
고려 사항
- 기본적으로 EKS Pod Identity Agent는 EKS Auto Mode 클러스터에 사전 설치되어 있습니다. 자세한 내용은 "EKS Auto Mode로 클러스터 인프라 자동화"를 참고하세요.
- 기본적으로 EKS Pod Identity Agent는 Pod가 자격 증명을 요청하도록
IPv4및IPv6주소에서 수신 대기합니다. 에이전트는IPv4의 경우 루프백(로컬호스트) IP 주소169.254.170.23,IPv6의 경우 로컬호스트 IP 주소[fd00:ec2::23]을 사용합니다. IPv6주소를 비활성화하거나 로컬호스트IPv6IP 주소를 방지하면 에이전트가 시작할 수 없습니다.IPv6를 사용할 수 없는 노드에서 에이전트를 시작하려면 "EKS Pod Identity Agent에서 IPv6 비활성화"의 단계에 따라IPv6구성을 비활성화하세요.
Amazon EKS Pod Identity Agent 생성
에이전트 전제 조건
중요: EKS Pod Identity Agent가 실행되는 노드는 EKS Auth API에 액세스할 수 있어야 합니다. 노드에 프라이빗 서브넷을 사용한다면 EKS Auth API용 AWS PrivateLink 인터페이스 엔드포인트를 설정해야 합니다. 자세한 내용은 "AWS PrivateLink를 사용한 Amazon EKS 액세스"를 참고하세요.
- 기존 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": "*"
}
]
}
이 작업은 태그로 제한해 에이전트를 사용하는 Pod가 수임할 수 있는 역할을 제한할 수 있습니다.
- 노드가 Amazon ECR에서 이미지를 다운로드할 수 있어야 합니다. 애드온의 컨테이너 이미지는 "Amazon EKS 애드온용 Amazon 컨테이너 이미지 레지스트리 보기"에 나열된 레지스트리에 있습니다.
- AWS Management Console의 Optional configuration settings와 AWS CLI의
--configuration-values에서 이미지 위치를 변경하고 EKS 애드온용imagePullSecrets를 제공할 수 있습니다.
AWS 콘솔로 에이전트 설정
- Amazon EKS 콘솔을 엽니다.
- 왼쪽 탐색 창에서 Clusters를 선택하고, EKS Pod Identity Agent 애드온을 구성할 클러스터의 이름을 선택합니다.
- Add-ons 탭을 선택합니다.
- Get more add-ons를 선택합니다.
- EKS Pod Identity Agent 애드온 상자의 오른쪽 위 확인란을 선택한 다음 Next를 선택합니다.
- Configure selected add-ons settings 페이지에서 Version 드롭다운 목록의 버전을 선택합니다.
- (선택 사항) Optional configuration settings를 펼쳐 추가 구성을 입력합니다. 예를 들어 대체 컨테이너 이미지 위치와
ImagePullSecrets를 제공할 수 있습니다. 허용되는 키가 있는 JSON Schema는 "애드온 구성 스키마"에 표시됩니다. - Configuration values에 구성 키와 값을 입력합니다.
- Next를 선택합니다.
- EKS Pod Identity Agent Pod가 클러스터에서 실행 중인지 확인합니다.
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 연결을 사용할 수 있습니다. 자세한 내용은 "Kubernetes 서비스 계정에 IAM 역할 할당"을 참고하세요.
AWS CLI로 에이전트 설정
다음 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에 노드 역할의 권한을 제공해야 합니다.
EKS Pod Identity Agent Pod가 클러스터에서 실행 중인지 확인합니다.
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 연결을 사용할 수 있습니다. 자세한 내용은 "Kubernetes 서비스 계정에 IAM 역할 할당"을 참고하세요.