Amazon EKS 추가 기능
Amazon EKS 추가 기능
추가 기능(add-on)은 Kubernetes 애플리케이션에 지원 운영 기능을 제공하지만 애플리케이션에 특화되지는 않는 소프트웨어입니다. 여기에는 관측 가능성 에이전트나 클러스터가 네트워킹, 컴퓨팅, 스토리지용 기본 AWS 리소스와 상호 작용할 수 있게 하는 Kubernetes 드라이버 같은 소프트웨어가 포함됩니다. 추가 기능 소프트웨어는 일반적으로 Kubernetes 커뮤니티, AWS 같은 클라우드 공급자 또는 타사 공급업체가 빌드하고 유지 관리합니다. Amazon EKS는 Amazon VPC CNI 플러그인 for Kubernetes, kube-proxy, CoreDNS 같은 self-managed 추가 기능을 모든 클러스터에 자동으로 설치합니다. 참고로 VPC CNI 추가 기능은 Amazon EKS Hybrid Nodes와 호환되지 않으며 하이브리드 노드에는 배포되지 않습니다. 추가 기능의 기본 구성을 변경하고 원할 때 업데이트할 수 있습니다.
Amazon EKS 추가 기능은 Amazon EKS 클러스터용으로 선별된 추가 기능 세트의 설치와 관리를 제공합니다. 모든 Amazon EKS 추가 기능에는 최신 보안 패치와 버그 수정이 포함되며 AWS가 Amazon EKS와 함께 동작하도록 검증했습니다. Amazon EKS 추가 기능을 사용하면 Amazon EKS 클러스터가 안전하고 안정적으로 유지되도록 일관되게 보장하고, 추가 기능을 설치·구성·업데이트하는 데 필요한 작업량을 줄일 수 있습니다. kube-proxy 같은 self-managed 추가 기능이 이미 클러스터에서 실행 중이고 Amazon EKS 추가 기능으로 사용할 수 있다면 kube-proxy Amazon EKS 추가 기능을 설치해 Amazon EKS 추가 기능의 기능을 활용하기 시작할 수 있습니다.
Amazon EKS API를 통해 Amazon EKS 추가 기능의 특정 Amazon EKS 관리 구성 필드를 업데이트할 수 있습니다. 추가 기능이 시작된 뒤 Kubernetes 클러스터 안에서 Amazon EKS가 관리하지 않는 구성 필드를 직접 수정할 수도 있습니다. 여기에는 해당되는 경우 추가 기능의 특정 구성 필드를 정의하는 것이 포함됩니다. 이러한 변경은 한 번 적용하면 Amazon EKS가 덮어쓰지 않습니다. 이는 Kubernetes 서버 측 적용(server-side apply) 기능으로 가능해집니다. 자세한 내용은 Amazon EKS 추가 기능에서 사용자 지정할 수 있는 필드 확인을 참조하세요.
Amazon EKS 추가 기능은 모든 Amazon EKS 노드 유형과 함께 사용할 수 있습니다. 자세한 내용은 노드로 컴퓨팅 리소스 관리를 참조하세요.
Amazon EKS API, AWS Management Console, AWS CLI, eksctl로 Amazon EKS 추가 기능을 추가, 업데이트, 삭제할 수 있습니다. AWS CloudFormation으로 Amazon EKS 추가 기능을 만들 수도 있습니다.
출처: 문서
본문
고려 사항
Amazon EKS 추가 기능을 사용할 때 다음을 고려하세요.
- 클러스터용 추가 기능을 구성하려면 IAM 보안 주체(principal)에 추가 기능 작업을 위한 IAM 권한이 있어야 합니다. 자세한 내용은 Amazon Elastic Kubernetes Service가 정의한 작업(Actions defined by Amazon Elastic Kubernetes Service)에서 이름에
Addon이 있는 작업을 참조하세요. - Amazon EKS 추가 기능은 클러스터에 프로비저닝하거나 구성한 노드에서 실행됩니다. 노드 유형에는 Amazon EC2 인스턴스, Fargate, 하이브리드 노드가 포함됩니다.
- Amazon EKS가 관리하지 않는 필드를 수정해 Amazon EKS 추가 기능의 설치를 사용자 지정할 수 있습니다. 자세한 내용은 Amazon EKS 추가 기능에서 사용자 지정할 수 있는 필드 확인을 참조하세요.
- AWS Management Console로 클러스터를 만들면 AWS Management Console이 Amazon EKS
kube-proxy, Amazon VPC CNI 플러그인 for Kubernetes, CoreDNS 추가 기능을 클러스터에 자동으로 추가합니다.config파일 없이eksctl로 클러스터를 만들면eksctl은 버전 0.184.0부터kube-proxy, Amazon VPC CNI 플러그인 for Kubernetes, CoreDNS, metrics-server를 Amazon EKS 추가 기능으로 설치합니다. 이전 버전의eksctl이나 다른 도구를 사용한다면 self-managedkube-proxy, Amazon VPC CNI 플러그인 for Kubernetes, CoreDNS 추가 기능이 대신 설치됩니다. 직접 관리하거나 클러스터 생성 후 Amazon EKS 추가 기능을 수동으로 추가할 수 있습니다. 클러스터를 만드는 방법과 관계없이 Amazon VPC CNI 플러그인 for Kubernetes 추가 기능은 하이브리드 노드에는 설치되지 않습니다. eks:addon-cluster-adminClusterRoleBinding은cluster-adminClusterRole을eks:addon-managerKubernetes 신원에 바인딩합니다. 이 역할은eks:addon-manager신원이 Kubernetes 네임스페이스를 만들고 네임스페이스에 추가 기능을 설치하는 데 필요한 권한을 가집니다.eks:addon-cluster-adminClusterRoleBinding이 제거되면 Amazon EKS 클러스터는 계속 기능하지만 Amazon EKS는 더 이상 어떤 추가 기능도 관리할 수 없습니다. 다음 플랫폼 버전부터 시작하는 모든 클러스터는 새ClusterRoleBinding을 사용합니다.- AWS의 EKS 추가 기능 중 일부는 Amazon EKS Hybrid Nodes와의 호환성을 검증했습니다. 자세한 내용은 AWS 추가 기능의 호환성 표를 참조하세요.
추가 기능용 사용자 지정 네임스페이스
커뮤니티 및 AWS 추가 기능의 경우 추가 기능 생성 중에 선택적으로 사용자 지정 네임스페이스를 지정할 수 있습니다. 특정 네임스페이스에 추가 기능을 설치한 뒤에는 네임스페이스를 변경하려면 추가 기능을 제거하고 다시 만들어야 합니다.
네임스페이스를 지정하지 않으면 추가 기능의 미리 정의된 네임스페이스가 사용됩니다.
사용자 지정 네임스페이스를 사용하면 EKS 클러스터 안에서 추가 기능 객체를 더 잘 구성하고 격리할 수 있습니다. 이 유연성은 추가 기능을 운영 요구 사항과 기존 네임스페이스 전략에 맞추는 데 도움이 됩니다.
추가 기능을 만들 때 사용자 지정 네임스페이스를 설정할 수 있습니다. 자세한 내용은 Amazon EKS 추가 기능 생성을 참조하세요.
추가 기능의 미리 정의된 네임스페이스 가져오기
추가 기능의 미리 정의된 네임스페이스는 네임스페이스를 지정하지 않으면 설치될 네임스페이스입니다.
추가 기능의 미리 정의된 네임스페이스를 가져오려면 다음 명령을 사용합니다.
aws eks describe-addon-versions --addon-name --query "addons[].defaultNamespace"
예시 출력:
[
"kube-system"
]
Amazon EKS Auto Mode에 대한 고려 사항
Amazon EKS Auto Mode는 필수 클러스터 기능을 제공하는 기능을 포함합니다. 여기에는 다음이 포함됩니다.
- Pod 네트워킹
- 서비스 네트워킹
- 클러스터 DNS
- 자동 스케일링
- 블록 스토리지
- 로드 밸런서 컨트롤러
- Pod Identity 에이전트
- 노드 모니터링 에이전트
Auto mode 컴퓨팅을 사용하면 자주 사용되는 EKS 추가 기능이 중복됩니다. 예를 들면 다음과 같습니다.
- Amazon VPC CNI
- kube-proxy
- CoreDNS
- Amazon EBS CSI Driver
- EKS Pod Identity Agent
그러나 클러스터가 Auto mode를 self-managed EC2 인스턴스, Managed Node Groups, AWS Fargate 같은 다른 컴퓨팅 옵션과 결합한다면 이러한 추가 기능은 여전히 필요합니다. AWS는 추가 기능 Pod가 지원되는 컴퓨팅 유형에만 스케줄링되도록 자동으로 보장하는 반친화성(anti-affinity) 규칙으로 EKS 추가 기능을 강화했습니다. 또한 이제 사용자는 EKS 추가 기능 DescribeAddonVersions API를 활용해 각 추가 기능과 특정 버전의 지원되는 computeTypes를 확인할 수 있습니다. 추가적으로 EKS Auto mode를 사용하면 위에 나열된 컨트롤러가 AWS 소유 인프라에서 실행됩니다. 따라서 EKS auto mode를 다른 유형의 컴퓨팅과 함께 사용하지 않는다면 계정에서 이를 보지 못할 수도 있습니다. 다른 컴퓨팅 유형과 함께 사용한다면 클러스터에 설치한 컨트롤러를 볼 수 있습니다.
기존 클러스터에서 EKS Auto Mode를 활성화할 계획이라면 특정 추가 기능의 버전을 업그레이드해야 할 수 있습니다. 자세한 내용은 EKS Auto Mode에 필요한 추가 기능 버전을 참조하세요.
지원
AWS는 지원 수준이 다른 여러 유형의 추가 기능을 게시합니다.
- AWS 추가 기능(AWS Add-ons): AWS가 빌드하고 완전히 지원하는 추가 기능입니다.
- Amazon EFS 같은 다른 AWS 서비스와 함께 작업하려면 AWS 추가 기능을 사용하세요.
- 자세한 내용은 AWS 추가 기능을 참조하세요.
- AWS Marketplace 추가 기능(AWS Marketplace Add-ons): AWS가 스캔하고 독립 AWS 파트너가 지원하는 추가 기능입니다.
- Splunk로 모니터링 같은 가치 있고 정교한 기능을 클러스터에 추가하려면 마켓플레이스 추가 기능을 사용하세요.
- 자세한 내용은 AWS Marketplace 추가 기능을 참조하세요.
- 커뮤니티 추가 기능(Community Add-ons): AWS가 스캔하지만 오픈 소스 커뮤니티가 지원하는 추가 기능입니다.
- Kubernetes Metrics Server 같은 일반적인 오픈 소스 소프트웨어 설치의 복잡성을 줄이려면 커뮤니티 추가 기능을 사용하세요.
- 커뮤니티 추가 기능은 AWS가 소스에서 패키징합니다. AWS는 커뮤니티 추가 기능의 버전 호환성만 검증합니다.
- 자세한 내용은 커뮤니티 추가 기능을 참조하세요.
다음 표는 각 추가 기능 유형의 지원 범위를 자세히 설명합니다.
| 범주 | 기능 | AWS 추가 기능 | AWS Marketplace 추가 기능 | 커뮤니티 추가 기능 |
|---|---|---|---|---|
| 개발 | AWS가 빌드 | 예 | 아니요 | 예 |
| 개발 | AWS가 검증 | 예 | 아니요 | 예* |
| 개발 | AWS 파트너가 검증 | 아니요 | 예 | 아니요 |
| 유지 관리 | AWS가 스캔 | 예 | 예 | 예 |
| 유지 관리 | AWS가 패치 | 예 | 아니요 | 예 |
| 유지 관리 | AWS 파트너가 패치 | 아니요 | 예 | 아니요 |
| 배포 | AWS가 게시 | 예 | 아니요 | 예 |
| 배포 | AWS 파트너가 게시 | 아니요 | 예 | 아니요 |
| 지원 | AWS의 기본 설치 지원 | 예 | 예 | 예 |
| 지원 | 전체 AWS 지원 | 예 | 아니요 | 아니요 |
| 지원 | 전체 AWS 파트너 지원 | 아니요 | 예 | 아니요 |
*: 커뮤니티 추가 기능에 대한 검증은 Kubernetes 버전 호환성만 포함합니다. 예를 들어 클러스터에 커뮤니티 추가 기능을 설치하면 AWS는 클러스터의 Kubernetes 버전과 호환되는지 확인합니다.
AWS Marketplace 추가 기능은 AWS 외부의 외부 소스에서 추가 소프트웨어 종속성을 다운로드할 수 있습니다. 이러한 외부 종속성은 AWS가 스캔하거나 검증하지 않습니다. 외부 종속성을 가져오는 AWS Marketplace 추가 기능을 배포할 때 보안 요구 사항을 고려하세요.