Amazon EKS 추가 기능 생성
Amazon EKS 추가 기능은 Amazon EKS 클러스터용 추가 기능 소프트웨어입니다. 모든 Amazon EKS 추가 기능:
-
최신 보안 패치 및 버그 수정이 포함됩니다.
-
Amazon EKS와 작동하도록 AWS에서 검증했습니다.
-
추가 기능 소프트웨어 관리에 필요한 작업량이 감소합니다.
eksctl
, AWS Management Console 또는 AWS CLI를 사용하여 Amazon EKS 추가 기능을 생성할 수 있습니다. 애드온에 IAM 역할이 필요한 경우, 역할 생성에 대한 자세한 내용은 Amazon EKS 추가 기능Amazon EKS 애드온에서 특정 애드온에 대한 세부 정보를 참조하세요.
사전 조건
추가 기능을 생성하기 전에 다음을 완료합니다.
-
추가 기능을 만들기 전에 클러스터가 존재해야 합니다. 자세한 내용은 Amazon EKS 클러스터 생성 단원을 참조하십시오.
-
추가 기능에 IAM 역할이 필요한지 확인합니다. 자세한 내용은 Amazon EKS 추가 기능 버전의 클러스터와의 호환성 확인 단원을 참조하십시오.
-
Amazon EKS 추가 기능 버전이 클러스터와 호환되는지 확인합니다. 자세한 내용은 Amazon EKS 추가 기능 버전의 클러스터와의 호환성 확인 단원을 참조하십시오.
-
컴퓨터 또는 AWS CloudShell에
eksctl
명령줄 도구의 버전 0.190.0 이상이 설치되어 있는지 확인합니다. 자세한 내용은eksctl
웹 사이트에서 설치를 참조하세요.
절차
eksctl
, AWS Management Console 또는 AWS CLI를 사용하여 Amazon EKS 추가 기능을 생성할 수 있습니다. 애드온에 IAM 역할이 필요한 경우, 역할 생성에 대한 자세한 내용은 AWS에서 AWS에서 사용할 수 있는 Amazon EKS 추가 기능사용 가능한 Amazon EKS 애드온에서 특정 애드온에 대한 세부 정보를 참조하세요.
추가 기능 생성(eksctl)
-
클러스터 버전에 사용할 수 있는 추가 기능의 이름을 조회합니다.
1.30
를 클러스터의 버전으로 바꿉니다.eksctl utils describe-addon-versions --kubernetes-version 1.30 | grep AddonName
예제 출력은 다음과 같습니다.
"AddonName": "aws-ebs-csi-driver", "AddonName": "coredns", "AddonName": "kube-proxy", "AddonName": "vpc-cni", "AddonName": "adot", "AddonName": "dynatrace_dynatrace-operator", "AddonName": "upbound_universal-crossplane", "AddonName": "teleport_teleport", "AddonName": "factorhouse_kpow", [...]
-
생성하려는 추가 기능에 사용할 수 있는 버전을 조회합니다.
1.30
를 클러스터의 버전으로 바꿉니다. 버전을 조회하려는 추가 기능의 이름으로name-of-addon
을 바꿉니다. 이름은 이전 단계에서 반환된 이름 중 하나여야 합니다.eksctl utils describe-addon-versions --kubernetes-version 1.30 --name name-of-addon | grep AddonVersion
다음과 같은 출력은
vpc-cni
라는 추가 기능에 대해 반환되는 내용의 예입니다. 사용할 수 있는 여러 버전이 추가 기능에 있는지 참조할 수 있습니다."AddonVersions": [ "AddonVersion": "v1.12.0-eksbuild.1", "AddonVersion": "v1.11.4-eksbuild.1", "AddonVersion": "v1.10.4-eksbuild.1", "AddonVersion": "v1.9.3-eksbuild.1",
-
생성하려는 추가 기능이 Amazon EKS 또는 AWS 마켓플레이스 추가 기능인지 결정합니다. AWS 마켓플레이스에는 추가 기능을 생성하려면 추가 단계를 완료해야 하는 타사 추가 기능이 있습니다.
eksctl utils describe-addon-versions --kubernetes-version 1.30 --name name-of-addon | grep ProductUrl
출력이 반환되지 않는다면 추가 기능이 Amazon EKS입니다. 출력이 반환된다면 추가 기능이 AWS 마켓플레이스 추가 기능입니다. 다음은
teleport_teleport
라는 추가 기능의 출력입니다."ProductUrl": "https://aws.amazon.com/marketplace/pp?sku=3bda70bb-566f-4976-806c-f96faef18b26"
반환된 URL을 통해 AWS 마켓플레이스에서 추가 기능에 대해 자세히 알아볼 수 있습니다. 추가 기능에 구독이 필요한 경우 AWS 마켓플레이스를 통해 추가 기능을 구독할 수 있습니다. AWS 마켓플레이스 중에서 추가 기능을 생성하려는 경우 추가 기능 생성에 사용하는 IAM 보안 주체에 AWSServiceRoleForAWSLicenseManagerRole 서비스 연결 역할을 생성하는 권한이 있어야 합니다. IAM 개체에 권한을 할당하는 방법에 대한 자세한 내용은 IAM 사용 설명서의 IAM 자격 증명 권한 추가 및 제거를 참조하세요.
-
-
Amazon EKS 추가 기능을 생성합니다. 명령을 복사하고 다음과 같이
user-data
를 교체합니다.-
my-cluster
를 해당 클러스터의 이름으로 바꿉니다. -
name-of-addon
을 생성하려는 추가 기능 이름으로 바꿉니다. -
최신 버전보다 이전 버전의 애드온을 사용하려면
최신
을 사용하려는 이전 단계의 출력에서 반환된 버전 번호로 바꾸세요. -
추가 기능에서 서비스 계정 역할을 사용하는 경우
111122223333
을 계정 ID로 바꾸고role-name
을 역할 이름으로 바꿉니다. 서비스 계정의 역할 생성에 대한 지침은 생성 중인 추가 기능의 설명서를 참조하세요. 추가 기능 목록은 AWS에서 사용할 수 있는 Amazon EKS 추가 기능 부분을 참조하세요. 서비스 계정 역할을 지정하려면 클러스터의 IAM OpenID Connect(OIDC) 제공업체가 있어야 합니다. 클러스터의 해당 제공업체가 이미 있는지 아니면 생성해야 하는지 결정하려면 클러스터에 대한 IAM OIDC 공급자 생성 섹션을 참조하세요.추가 기능에서 서비스 계정 역할을 사용하지 않으면
--service-account-role-arnarn:aws:iam::111122223333:role/role-name
을 삭제합니다. -
이 예시 명령에서는 추가 기능의 기존 자체 관리형 버전(있는 경우)의 구성을 덮어씁니다. 기존 자체 관리형 추가 기능의 구성을 덮어쓰지 않으려면
–-force
옵션을 제거합니다. 옵션을 제거하고 Amazon EKS 추가 기능에 기존 자체 관리형 추가 기능 구성을 덮어써야 하는 경우 Amazon EKS 추가 기능의 생성에 실패하고 충돌 해결에 도움이 되는 오류 메시지가 표시됩니다. 이 옵션을 사용하여 이러한 설정을 덮어쓰기 때문에 이 옵션을 지정하기 전에 Amazon EKS 추가 기능이 관리해야 하는 설정을 관리하지 않는지 확인합니다.eksctl create addon --cluster my-cluster --name name-of-addon --version latest \ --service-account-role-arn arn:aws:iam::111122223333:role/role-name --force
명령에 사용할 수 있는 모든 옵션의 목록을 참조할 수 있습니다.
eksctl create addon --help
사용할 수 있는 옵션에 대한 자세한 내용은
eksctl
설명서의 Addons(추가 기능)를 참조하세요.
-
추가 기능 생성(AWS 콘솔)
-
Amazon EKS 콘솔
을 엽니다. -
좌측 탐색 창에서 클러스터를 선택합니다.
-
추가 기능을 생성하려는 클러스터의 이름을 선택합니다.
-
추가 기능(Add-ons) 탭을 선택합니다.
-
추가 기능 더 가져오기를 선택합니다.
-
Select add-ons(추가 기능 선택) 페이지에서 클러스터에 추가할 추가 기능을 선택합니다. 필요한 만큼 Amazon EKS 애드온 및 AWS 마켓플레이스 애드온을 추가할 수 있습니다.
AWS 마켓플레이스 추가 기능의 경우 추가 기능을 생성하는 데 사용 중인 IAM 보안 주체 AWS LicenseManager에서 추가 기능에 대한 자격을 읽는 권한이 있어야 합니다. AWS LicenseManager에는 AWS 리소스에서 자동으로 라이선스를 관리할 수 있는 AWSServiceRoleForAWSLicenseManagerRole SLR(서비스 연결 역할)이 필요합니다. SLR은 계정당 한 번만 필요하므로 각 추가 기능 또는 각 클러스터에 대해 별도의 SLR을 생성할 필요가 없습니다. IAM 보안 주체에 권한을 할당하는 방법에 대한 자세한 내용은 IAM 사용 설명서의 IAM 자격 증명 권한 추가 및 삭제를 참조하세요.
설치하려는 AWS 마켓플레이스 추가 기능이 나열되지 않은 경우 페이지 번호를 클릭하여 추가 페이지 결과를 보거나 검색 상자에서 검색할 수 있습니다. 필터링 옵션에서 카테고리, 공급업체 또는 요금 모델별로 필터링한 다음에 검색 결과 중에서 추가 기능을 선택할 수도 있습니다. 설치할 추가 기능을 선택했으면 다음을 선택합니다.
-
선택한 추가 기능 설정 구성 페이지에서 다음을 수행합니다.
-
구독 옵션 보기를 선택하여 구독 옵션 양식을 엽니다. 가격 세부 정보 및 법률 섹션을 검토한 다음 구독 버튼을 선택하여 계속하세요.
-
버전의 경우 설치하려는 버전을 선택합니다. 생성 중인 개별 추가 기능에서 다른 버전이 권장되지 않으면 최신으로 표시된 버전이 좋습니다. 추가 기능에 권장 버전이 있는지 확인하려면 생성 중인 추가 기능의 설명서를 참조하세요. 추가 기능 목록은 AWS에서 사용할 수 있는 Amazon EKS 추가 기능 부분을 참조하세요.
-
추가 기능에 대한 역할을 구성하는 데에는 EKS Pod Identity IAM 역할과 서비스 계정에 대한 IAM 역할(IRSA)이라는 두 가지 옵션이 있습니다. 원하는 옵션에 대해 아래의 적절한 단계를 따릅니다. 선택한 모든 추가 기능의 상태 아래에 구독 필요가 있으면 다음을 선택합니다. 클러스터를 생성한 후 구독할 때까지는 추가로 해당 추가 기능을 Amazon EKS 추가 기능 업데이트구성할 수 없습니다. 상태 아래에 구독 필요가 없는 추가 기능의 경우 다음을 수행합니다.
-
서비스 계정에 대한 Pod Identity IAM 역할의 경우 기존 EKS Pod Identity IAM 역할을 사용하거나 권장 역할 생성 버튼을 사용하여 역할을 생성할 수 있습니다. 이 필드는 적절한 신뢰 정책이 있는 옵션만 제공합니다. 선택할 역할이 없는 경우에는 일치하는 신뢰 정책이 포함된 기존 역할이 없는 것입니다. 선택한 추가 기능의 서비스 계정에 대한 EKS Pod Identity IAM 역할을 구성하려면 권장 역할 생성을 선택합니다. 역할 생성 마법사가 별도의 창에서 열립니다. 마법사는 다음과 같이 역할 정보를 자동으로 채웁니다. EKS Pod Identity IAM 역할을 생성하려는 각 추가 기능에 대해 다음과 같이 IAM 마법사의 단계를 완료합니다.
-
신뢰할 수 있는 엔터티 선택 단계에서는 EKS에 대한 AWS 서비스 옵션과 EKS-Pod Identity에 대한 사용 사례가 미리 선택되며 추가 기능에 대한 적절한 신뢰 정책이 자동으로 채워집니다. 예를 들어 역할은 EKS Pod Identity의 이점에 설명된 대로 pods.eks.amazonaws.com IAM 보안 주체가 포함된 적절한 신뢰 정책을 사용하여 생성됩니다. 다음을 선택합니다.
-
권한 추가 단계에서 역할 정책에 대한 적절한 관리형 정책이 추가 기능에 대해 미리 선택됩니다. 예를 들어 Amazon VPC CNI 추가 기능의 경우 역할은 Kubernetes용 Amazon VPC CNI 플러그 인에 설명된 대로 관리형 정책 `AmazonEKS_CNI_Policy`로 생성됩니다. 다음을 선택합니다.
-
이름, 검토, 생성 단계의 역할 이름에서 기본 역할 이름은 추가 기능에 대해 자동으로 채워집니다. 예를 들어 Amazon VPC CNI 추가 기능의 경우 역할은 AmazonEKSPodIdentityAmazonVPCCNIRole 이름으로 생성됩니다. 설명에서 기본 설명은 추가 기능에 대한 적절한 설명으로 자동으로 채워집니다. 예를 들어 Amazon VPC CNI 추가 기능의 경우 역할은 Amazon EKS 클러스터에서 실행되는 포드가 AWS 리소스에 액세스하도록 허용이라는 설명과 함께 생성됩니다. 신뢰 정책에서 추가 기능에 대해 채워진 신뢰 정책을 확인합니다. 역할 생성을 선택합니다.
참고: 기본 역할 이름을 유지하면 EKS가 새 클러스터의 추가 기능 또는 기존 클러스터에 추가 기능을 추가할 때 역할을 미리 선택할 수 있습니다. 여전히 이 이름을 재정의할 수 있으며 클러스터 전체에서 추가 기능에 역할을 사용할 수 있지만 드롭다운에서 역할을 수동으로 선택해야 합니다.
-
-
상태에서 구독 필요가 표시되지 않고 IRSA를 사용하여 역할을 구성하려는 추가 기능은 IAM 정책을 생성하고 역할에 연결하기 위해 생성하는 추가 기능에 대한 설명서를 참조하세요. 추가 기능 목록은 AWS에서 사용할 수 있는 Amazon EKS 추가 기능 부분을 참조하세요. IAM 역할을 선택하려면 클러스터에 대한 IAM OpenID Connect(OIDC) 제공업체가 있어야 합니다. 클러스터의 해당 제공업체가 이미 있는지 아니면 생성해야 하는지 결정하려면 클러스터에 대한 IAM OIDC 공급자 생성 섹션을 참조하세요.
-
Optional configuration settings(선택적 구성 설정)를 선택합니다.
-
추가 기능에 구성이 필요하면Configuration values(구성 값) 상자에 해당 구성을 입력합니다. 추가 기능에 구성 정보가 필요한지 확인하려면 생성 중인 추가 기능의 설명서를 참조하세요. 추가 기능 목록은 AWS에서 사용할 수 있는 Amazon EKS 추가 기능 부분을 참조하세요.
-
충돌 해결 방법에 사용할 수 있는 옵션 중 하나를 선택합니다. 충돌 해결 방법에서 재정의를 선택한 경우 기존 추가 기능에 대한 하나 이상의 설정을 Amazon EKS 추가 기능의 설정으로 덮어쓸 수 있습니다. 이 옵션을 사용 설정하지 않고 기존 설정과 충돌이 있는 경우 작업이 실패합니다. 결과 오류 메시지를 사용하여 충돌을 해결할 수 있습니다. 이 옵션을 선택하기 전에 Amazon EKS 추가 기능이 사용자가 자체 관리해야 하는 설정을 관리하지 않는지 확인하세요.
-
다음을 선택합니다.
-
-
-
검토 및 추가 페이지에서 생성을 선택합니다. 추가 기능 설치가 완료되면 설치한 추가 기능이 표시됩니다.
-
설치한 추가 기능 중 구독이 필요한 추가 기능이 있으면 다음과 같은 단계를 완료합니다.
-
추가 기능의 오른쪽 하단에 있는 Subscribe(구독) 버튼을 선택합니다. AWS 마켓플레이스의 추가 기능 페이지가 나타납니다. Product Overview(제품 개요) 및 Pricing Information(요금 정보)과 같은 추가 기능에 대한 정보를 읽어보세요.
-
추가 기능 페이지의 오른쪽 상단에 있는 Continue to Subscribe(계속 구독) 버튼을 선택합니다.
-
Terms and Conditions(이용 약관)를 모두 읽어보세요. 동의하는 경우 Accept Terms(약관 수락)를 선택합니다. 구독을 처리하는 데 몇 분 정도 걸릴 수 있습니다. 구독이 처리되는 동안에는 Return to Amazon EKS Console(Amazon EKS 콘솔로 돌아가기) 버튼이 회색으로 표시됩니다.
-
구독 처리가 완료되면 Return to Amazon EKS Console(Amazon EKS 콘솔로 돌아가기) 버튼이 더는 회색으로 표시되지 않습니다. 버튼을 선택하여 클러스터의 Amazon EKS 콘솔 Add-ons(추가 기능) 탭으로 돌아갑니다.
-
구독한 추가 기능의 경우 Remove and reinstall(제거 및 재설치)을 선택한 다음에 Reinstall add-on(추가 기능 재설치)을 선택합니다. 추가 기능을 설치하는 데 몇 분 정도 걸릴 수 있습니다. 설치가 완료되면 추가 기능을 구성할 수 있습니다.
-
추가 기능 생성(AWS CLI)
-
장치에 설치 및 구성된 AWS 명령줄 인터페이스(AWS CLI)의 버전
2.12.3
이상 또는 버전1.27.160
이상 또는 AWS CloudShell. 현재 버전을 확인하려면aws --version | cut -d / -f2 | cut -d ' ' -f1
을 사용합니다. macOS용yum
,apt-get
또는 Homebrew와 같은 패키지 관리자는 최신 버전의 AWS CLI보다 여러 버전 이전인 경우가 많습니다. 최신 버전을 설치하려면 AWS 명령줄 인터페이스 사용 설명서에서 설치 및 aws config를 사용하여 빠른 구성을 참조하세요. AWS CloudShell에 설치된 AWS CLI 버전도 최신 버전보다 여러 버전 이전일 수도 있습니다. 업데이트하려면 AWS CloudShell 사용 설명서의 홈 디렉터리에 AWS CLI 설치하기를 참조하세요. -
사용할 수 있는 추가 기능을 확인합니다. 사용할 수 있는 모든 추가 기능, 해당 유형 및 게시자를 참조할 수 있습니다. 사용할 수 있는 추가 기능의 URL도 AWS 마켓플레이스를 통해 참조할 수 있습니다.
1.30
를 클러스터의 버전으로 바꿉니다.aws eks describe-addon-versions --kubernetes-version 1.30 \ --query 'addons[].{MarketplaceProductUrl: marketplaceInformation.productUrl, Name: addonName, Owner: owner Publisher: publisher, Type: type}' --output table
예제 출력은 다음과 같습니다.
--------------------------------------------------------------------------------------------------------------------------------------------------------- | DescribeAddonVersions | +---------------------------------------------------------------+-------------------------------+------------------+--------------+---------------------+ | MarketplaceProductUrl | Name | Owner | Publisher | Type | +---------------------------------------------------------------+-------------------------------+------------------+--------------+---------------------+ | None | aws-ebs-csi-driver | aws | eks | storage | | None | coredns | aws | eks | networking | | None | kube-proxy | aws | eks | networking | | None | vpc-cni | aws | eks | networking | | None | adot | aws | eks | observability | | https://aws.amazon.com/marketplace/pp/prodview-brb73nceicv7u | dynatrace_dynatrace-operator | aws-marketplace | dynatrace | monitoring | | https://aws.amazon.com/marketplace/pp/prodview-uhc2iwi5xysoc | upbound_universal-crossplane | aws-marketplace | upbound | infra-management | | https://aws.amazon.com/marketplace/pp/prodview-hd2ydsrgqy4li | teleport_teleport | aws-marketplace | teleport | policy-management | | https://aws.amazon.com/marketplace/pp/prodview-vgghgqdsplhvc | factorhouse_kpow | aws-marketplace | factorhouse | monitoring | | [...] | [...] | [...] | [...] | [...] | +---------------------------------------------------------------+-------------------------------+------------------+--------------+---------------------+
출력은 다를 수도 있습니다. 이 예시 출력에는
networking
유형에 사용할 수 있는 3가지 추가 기능과eks
유형의 게시자가 있는 5가지 추가 기능이 있습니다.Owner
열에aws-marketplace
가 있는 추가 기능을 설치하려면 구독이 필요할 수 있습니다. URL을 방문하여 추가 기능에 대해 자세히 알아보고 구독할 수 있습니다. -
각 추가 기능에 어떤 버전을 사용할 수 있는지 확인할 수 있습니다.
1.30
을 클러스터의 버전으로 바꾸고vpc-cni
를 이전 단계에서 반환된 추가 기능 이름으로 바꿉니다.aws eks describe-addon-versions --kubernetes-version 1.30 --addon-name vpc-cni \ --query 'addons[].addonVersions[].{Version: addonVersion, Defaultversion: compatibilities[0].defaultVersion}' --output table
예제 출력은 다음과 같습니다.
------------------------------------------ | DescribeAddonVersions | +-----------------+----------------------+ | Defaultversion | Version | +-----------------+----------------------+ | False | v1.12.0-eksbuild.1 | | True | v1.11.4-eksbuild.1 | | False | v1.10.4-eksbuild.1 | | False | v1.9.3-eksbuild.1 | +-----------------+----------------------+
기본적으로
Defaultversion
열에True
가 있는 버전이 추가 기능을 생성한 버전입니다. -
(선택 사항) 다음과 같은 명령을 실행하여 선택한 추가 기능의 구성 옵션을 찾습니다.
aws eks describe-addon-configuration --addon-name vpc-cni --addon-version v1.12.0-eksbuild.1
{ "addonName": "vpc-cni", "addonVersion": "v1.12.0-eksbuild.1", "configurationSchema": "{\"$ref\":\"#/definitions/VpcCni\",\"$schema\":\"http://json-schema.org/draft-06/schema#\",\"definitions\":{\"Cri\":{\"additionalProperties\":false,\"properties\":{\"hostPath\":{\"$ref\":\"#/definitions/HostPath\"}},\"title\":\"Cri\",\"type\":\"object\"},\"Env\":{\"additionalProperties\":false,\"properties\":{\"ADDITIONAL_ENI_TAGS\":{\"type\":\"string\"},\"AWS_VPC_CNI_NODE_PORT_SUPPORT\":{\"format\":\"boolean\",\"type\":\"string\"},\"AWS_VPC_ENI_MTU\":{\"format\":\"integer\",\"type\":\"string\"},\"AWS_VPC_K8S_CNI_CONFIGURE_RPFILTER\":{\"format\":\"boolean\",\"type\":\"string\"},\"AWS_VPC_K8S_CNI_CUSTOM_NETWORK_CFG\":{\"format\":\"boolean\",\"type\":\"string\"},\"AWS_VPC_K8S_CNI_EXTERNALSNAT\":{\"format\":\"boolean\",\"type\":\"string\"},\"AWS_VPC_K8S_CNI_LOGLEVEL\":{\"type\":\"string\"},\"AWS_VPC_K8S_CNI_LOG_FILE\":{\"type\":\"string\"},\"AWS_VPC_K8S_CNI_RANDOMIZESNAT\":{\"type\":\"string\"},\"AWS_VPC_K8S_CNI_VETHPREFIX\":{\"type\":\"string\"},\"AWS_VPC_K8S_PLUGIN_LOG_FILE\":{\"type\":\"string\"},\"AWS_VPC_K8S_PLUGIN_LOG_LEVEL\":{\"type\":\"string\"},\"DISABLE_INTROSPECTION\":{\"format\":\"boolean\",\"type\":\"string\"},\"DISABLE_METRICS\":{\"format\":\"boolean\",\"type\":\"string\"},\"DISABLE_NETWORK_RESOURCE_PROVISIONING\":{\"format\":\"boolean\",\"type\":\"string\"},\"ENABLE_POD_ENI\":{\"format\":\"boolean\",\"type\":\"string\"},\"ENABLE_PREFIX_DELEGATION\":{\"format\":\"boolean\",\"type\":\"string\"},\"WARM_ENI_TARGET\":{\"format\":\"integer\",\"type\":\"string\"},\"WARM_PREFIX_TARGET\":{\"format\":\"integer\",\"type\":\"string\"}},\"title\":\"Env\",\"type\":\"object\"},\"HostPath\":{\"additionalProperties\":false,\"properties\":{\"path\":{\"type\":\"string\"}},\"title\":\"HostPath\",\"type\":\"object\"},\"Limits\":{\"additionalProperties\":false,\"properties\":{\"cpu\":{\"type\":\"string\"},\"memory\":{\"type\":\"string\"}},\"title\":\"Limits\",\"type\":\"object\"},\"Resources\":{\"additionalProperties\":false,\"properties\":{\"limits\":{\"$ref\":\"#/definitions/Limits\"},\"requests\":{\"$ref\":\"#/definitions/Limits\"}},\"title\":\"Resources\",\"type\":\"object\"},\"VpcCni\":{\"additionalProperties\":false,\"properties\":{\"cri\":{\"$ref\":\"#/definitions/Cri\"},\"env\":{\"$ref\":\"#/definitions/Env\"},\"resources\":{\"$ref\":\"#/definitions/Resources\"}},\"title\":\"VpcCni\",\"type\":\"object\"}}}" }
출력은 표준 JSON 스키마입니다.
다음은 위의 스키마와 연동하는 유효한 구성 값의 예시입니다.
{ "resources": { "limits": { "cpu": "100m" } } }
다음은 위의 스키마와 연동하는 YAML 형식의 유효한 구성 값의 예시입니다.
resources: limits: cpu: 100m
-
추가 기능에 IAM 권한이 필요한지 확인하세요. 필요하다면 (1) EKS Pod Identity를 사용할지 또는 서비스 계정용 IAM 역할(IRSA)을 사용할지 결정하고, (2) 추가 기능과 함께 사용할 IAM 역할의 ARN을 결정하고, (3) 추가 기능이 사용하는 Kubernetes 서비스 계정의 이름을 결정해야 합니다. 자세한 내용은 Amazon EKS 추가 기능에 대한 IAM 정보 검색 단원을 참조하십시오.
-
Amazon EKS는 추가 기능에서 지원되는 경우 EKS Pod Identity를 사용할 것을 권장합니다. 이를 위해서는 EKS Pod Identity가 포드에 AWS 서비스에 대한 액세스 권한을 부여하는 방법 알아보기Pod Identity 에이전트가 클러스터에 설치되어 있어야 합니다. 추가 기능과 함께 Pod Identity를 사용하는 방법에 대한 자세한 내용은 Amazon EKS 추가 기능에 대한 IAM 역할 섹션을 참조하세요.
-
추가 기능 또는 클러스터가 EKS Pod Identity용으로 설정되지 않은 경우 IRSA를 사용합니다. 서비스 계정에 대한 IAM 역할클러스터에 IRSA 설정이 되어 있는지 확인합니다.
-
Amazon EKS 추가 기능Amazon EKS 추가 기능 설명서를 검토하여 추가 기능에 IAM 권한이 필요한지 여부와 관련 Kubernetes 서비스 계정의 이름을 확인하세요.
-
Amazon EKS 추가 기능을 생성합니다. 다음 명령을 디바이스에 복사합니다. 필요에 따라 명령을 다음과 같이 수정한 다음에 수정한 명령을 실행합니다.
-
-
my-cluster
를 해당 클러스터의 이름으로 바꿉니다. -
생성하려는 이전 단계의 출력에서 반환된 추가 기능 이름으로
vpc-cni
를 바꿉니다. -
사용하려는 이전 단계의 출력에서 반환된 버전으로
version-number
를 바꿉니다. -
추가 기능에 IAM 권한이 필요하지 않은 경우
<service-account-configuration>
을 삭제합니다. -
다음 중 하나를 수행합니다.
-
추가 기능에 (1) IAM 권한이 필요하고 (2) 클러스터가 EKS Pod Identity를 사용하는 경우
<service-account-configuration>
을 다음 Pod Identity 연결로 교체하세요.<service-account-name>
를 추가 기능에 사용되는 서비스 계정 이름으로 교체합니다.<role-arn>
를 IAM 역할의 ARN으로 교체합니다. 역할에는 EKS Pod Identity에 필요한 신뢰 정책이 있어야 합니다.--pod-identity-associations 'serviceAccount=<service-account-name>,roleArn=<role-arn>'
-
추가 기능에 (1) IAM 권한이 필요하고 (2) 클러스터가 IRSA를 사용하는 경우
<service-account-configuration>
를 다음 IRSA 구성으로 교체하세요.111122223333
를 계정 ID로,role-name
을 생성한 기존 IAM 역할 이름으로 교체합니다. 역할 생성에 대한 지침은 생성 중인 추가 기능의 설명서를 참조하세요. 추가 기능 목록은 AWS에서 사용할 수 있는 Amazon EKS 추가 기능 부분을 참조하세요. 서비스 계정 역할을 지정하려면 클러스터의 IAM OpenID Connect(OIDC) 제공업체가 있어야 합니다. 클러스터의 해당 제공업체가 이미 있는지 아니면 생성해야 하는지 결정하려면 클러스터에 대한 IAM OIDC 공급자 생성 섹션을 참조하세요.--service-account-role-arn arn:aws::iam::111122223333:role/role-name
-
-
이들 예시 명령에서는 추가 기능의 기존 자체 관리형 버전(있는 경우)의
--configuration-values
옵션을 덮어씁니다. 이 값을 문자열이나 파일 입력과 같은 원하는 구성 값으로 바꾸십시오. 구성 값을 제공하지 않으려면--configuration-values
옵션을 삭제합니다. AWS CLI로 기존 자체 관리형 추가 기능의 구성을 덮어쓰지 않으려면--resolve-conflicts OVERWRITE
옵션을 제거합니다. 옵션을 제거하고 Amazon EKS 추가 기능에 기존 자체 관리형 추가 기능 구성을 덮어써야 하는 경우 Amazon EKS 추가 기능의 생성에 실패하고 충돌 해결에 도움이 되는 오류 메시지가 표시됩니다. 이 옵션을 사용하여 이러한 설정을 덮어쓰기 때문에 이 옵션을 지정하기 전에 Amazon EKS 추가 기능이 관리해야 하는 설정을 관리하지 않는지 확인합니다.aws eks create-addon --cluster-name my-cluster --addon-name vpc-cni --addon-version version-number \ <service-account-configuration> --configuration-values '{"resources":{"limits":{"cpu":"100m"}}}' --resolve-conflicts OVERWRITE
aws eks create-addon --cluster-name my-cluster --addon-name vpc-cni --addon-version version-number \ <service-account-configuration> --configuration-values 'file://example.yaml' --resolve-conflicts OVERWRITE
사용할 수 있는 옵션의 전체 목록은 Amazon EKS 명령줄 참조의
create-addon
부분을 참조하세요. 생성한 추가 기능에 이전 단계의Owner
열에 나열된aws-marketplace
가 있으면 생성에 실패하고 다음과 같은 오류와 비슷한 오류 메시지가 표시될 수 있습니다.{ "addon": { "addonName": "addon-name", "clusterName": "my-cluster", "status": "CREATE_FAILED", "addonVersion": "version", "health": { "issues": [ { "code": "AddonSubscriptionNeeded", "message": "You are currently not subscribed to this add-on. To subscribe, visit the AWS Marketplace console, agree to the seller EULA, select the pricing type if required, then re-install the add-on" } ] } } }
이전 출력의 오류와 비슷한 오류가 표시되는 경우 이전 단계의 출력에 있는 URL을 방문하여 추가 기능을 구독합니다. 구독한 후
create-addon
명령을 다시 실행합니다.
-