이 페이지 개선에 도움 주기
이 사용자 가이드에 기여하려면 모든 페이지의 오른쪽 창에 있는 GitHub에서 이 페이지 편집 링크를 선택합니다.
Amazon EKS 추가 기능 업데이트
Amazon EKS에서는 새 버전이 릴리스되거나 새 Kubernetes 마이너 버전으로 클러스터를 업데이트한 후 추가 기능을 자동으로 업데이트하지 않습니다. 기존 클러스터의 추가 기능을 업데이트하려면 업데이트를 시작해야 합니다. 사용자가 업데이트를 시작하면 Amazon EKS에서 추가 기능을 업데이트합니다. 추가 기능을 업데이트하기 전에 추가 기능에 대한 최신 설명서를 검토합니다. 사용 가능한 추가 기능 목록은 AWS 추가 기능 부분을 참조하세요. 추가 기능에 IAM 역할이 필요한 경우 역할 생성에 대한 자세한 내용은 AWS에서 사용 가능한 Amazon EKS 추가 기능에서 특정 추가 기능에 대한 세부 정보를 참조하세요.
사전 조건
추가 기능을 생성하기 전에 다음을 완료합니다.
-
추가 기능에 IAM 역할이 필요한지 확인합니다. 자세한 내용은 Amazon EKS 추가 기능 섹션을 참조하세요.
-
Amazon EKS 추가 기능 버전이 클러스터와 호환되는지 확인합니다. 자세한 내용은 Amazon EKS 추가 기능 버전의 클러스터와의 호환성 확인 섹션을 참조하세요.
절차
eksctl
, AWS Management Console 또는 AWS CLI를 사용하여 Amazon EKS 추가 기능을 업데이트할 수 있습니다.
추가 기능 업데이트(eksctl)
-
클러스터에 설치된 현재 추가 기능과 추가 기능 버전을 확인합니다.
my-cluster
를 해당 클러스터의 이름으로 바꿉니다.eksctl get addon --cluster my-cluster
예제 출력은 다음과 같습니다.
NAME VERSION STATUS ISSUES IAMROLE UPDATE AVAILABLE coredns v1.8.7-eksbuild.2 ACTIVE 0 kube-proxy v1.23.7-eksbuild.1 ACTIVE 0 v1.23.8-eksbuild.2 vpc-cni v1.10.4-eksbuild.1 ACTIVE 0 v1.12.0-eksbuild.1,v1.11.4-eksbuild.1,v1.11.3-eksbuild.1,v1.11.2-eksbuild.1,v1.11.0-eksbuild.1
클러스터에 있는 추가 기능과 버전에 따라 출력이 다르게 보일 수 있습니다. 이전 예시 출력에서는 클러스터의 기존 추가 기능2가지에 사용할 수 있는 더 새로운 버전이
UPDATE AVAILABLE
열에 있는 것을 볼 수 있습니다. -
추가 기능을 업데이트합니다.
-
다음 명령을 디바이스에 복사합니다. 필요에 따라 명령을 다음과 같이 수정합니다.
-
my-cluster
를 해당 클러스터의 이름으로 바꿉니다. -
region-code
를 클러스터가 있는 AWS 리전으로 바꿉니다. -
vpc-cni
를 업데이트하려는 이전 단계의 출력에서 반환된 애드온의 이름으로 바꿉니다. -
사용할 수 있는 최신 버전보다 이전의 버전으로 업데이트하려는 경우에는 사용하려는 이전 단계의 출력에서 반환된 버전 번호로
최신
을 바꿉니다. 일부 추가 기능에는 권장 버전이 있습니다. 자세한 내용은 업데이트 중인 추가 기능의 설명서를 참조하세요. 추가 기능 목록은 AWS 추가 기능 섹션을 참조하세요.* 추가 기능이 Kubernetes 서비스 계정과 IAM 역할을 사용하는 경우111122223333
을 계정 ID로 바꾸고role-name
을 생성한 기존 IAM 역할의 이름으로 바꿉니다. 역할 생성에 대한 지침은 생성 중인 추가 기능의 설명서를 참조하세요. 추가 기능 목록은 AWS 추가 기능 부분을 참조하세요. 서비스 계정 역할을 지정하려면 클러스터의 IAM OpenID Connect(OIDC) 제공자가 있어야 합니다. 클러스터의 해당 공급자가 이미 있는지 아니면 생성해야 하는지 결정하려면 클러스터에 대한 IAM OIDC 공급자 생성 부분을 참조하세요.추가 기능에서 Kubernetes 서비스 계정과 IAM 역할을 사용하지 않으면
serviceAccountRoleARN: arn:aws:iam::
줄을 삭제합니다.111122223333
:role/role-name
-
보존
옵션에서는 추가 기능의 기존 값이 보존됩니다. 추가 기능 설정에 사용자 지정 값을 설정하고 이 옵션을 사용하지 않는 경우 Amazon EKS에서는 기본값으로 해당 값을 덮어씁니다. 이 옵션을 사용하는 경우에는 추가 기능을 업데이트하기 전에 프로덕션 클러스터에서 비프로덕션 클러스터의 필드 및 값 변경 사항을 테스트하는 것이 좋습니다. 이 값을overwrite
로 변경하면 모든 설정이 Amazon EKS 기본값으로 변경됩니다. 설정에 사용자 지정 값을 설정한 경우 Amazon EKS 기본값으로 해당 값을 덮어쓸 수도 있습니다. 이 값을none
으로 변경하면 Amazon EKS에서는 설정의 값을 변경하지 않지만 업데이트에 실패할 수도 있습니다. 업데이트에 실패하면 충돌 해결에 도움이 되는 오류 메시지가 표시됩니다.cat >update-addon.yaml <<EOF apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig metadata: name: my-cluster region: region-code addons: - name: vpc-cni version: latest serviceAccountRoleARN: arn:aws:iam::111122223333:role/role-name resolveConflicts: preserve EOF
-
-
수정한 명령을 실행하여
update-addon.yaml
파일을 생성합니다. -
클러스터에 구성 파일을 적용합니다.
eksctl update addon -f update-addon.yaml
추가 기능 업데이트에 대한 자세한 내용은
eksctl
설명서의 추가 기능 업데이트를 참조하세요. -
추가 기능 업데이트(AWS 콘솔)
-
Amazon EKS 콘솔
을 엽니다. -
좌측 탐색 창에서 클러스터를 선택합니다.
-
추가 기능을 업데이트하려는 클러스터의 이름을 선택합니다.
-
추가 기능 탭을 선택합니다.
-
업데이트하려는 추가 기능을 선택합니다.
-
편집을 선택합니다.
-
추가 기능 이름
구성 페이지에서 다음을 수행합니다.-
사용하려는 버전을 선택합니다. 추가 기능에 권장 버전이 있을 수도 있습니다. 자세한 내용은 업데이트 중인 추가 기능의 설명서를 참조하세요. 추가 기능 목록은 AWS 추가 기능 부분을 참조하세요.
-
추가 기능에 대한 역할을 구성하는 데에는 EKS Pod Identity IAM 역할과 서비스 계정에 대한 IAM 역할(IRSA)이라는 두 가지 옵션이 있습니다. 원하는 옵션에 대해 아래의 적절한 단계를 따릅니다. 선택한 모든 추가 기능의 상태 아래에 구독 필요가 있으면 다음을 선택합니다. 상태 아래에 구독 필요가 없는 추가 기능의 경우 다음을 수행합니다.
-
서비스 계정에 대한 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 보안 주체가 포함된 적절한 신뢰 정책을 사용하여 생성됩니다. Next(다음)를 선택합니다.
-
권한 추가 단계에서 역할 정책에 대한 적절한 관리형 정책이 추가 기능에 대해 미리 선택됩니다. 예를 들어 Amazon VPC CNI 추가 기능의 경우 역할은 Kubernetes용 Amazon VPC CNI 플러그 인에 설명된 대로 관리형 정책
AmazonEKS_CNI_Policy
로 생성됩니다. Next(다음)를 선택합니다. -
이름, 검토, 생성 단계의 역할 이름에서 기본 역할 이름은 추가 기능에 대해 자동으로 채워집니다. 예를 들어 Amazon VPC CNI 추가 기능의 경우 역할은 AmazonEKSPodIdentityAmazonVPCCNIRole 이름으로 생성됩니다. 설명에서 기본 설명은 추가 기능에 대한 적절한 설명으로 자동으로 채워집니다. 예를 들어 Amazon VPC CNI 추가 기능의 경우 역할은 Amazon EKS 클러스터에서 실행되는 포드가 AWS 리소스에 액세스하도록 허용이라는 설명과 함께 생성됩니다. 신뢰 정책에서 추가 기능에 대해 채워진 신뢰 정책을 확인합니다. 역할 생성을 선택합니다.
참고
기본 역할 이름을 유지하면 EKS가 새 클러스터의 추가 기능 또는 기존 클러스터에 추가 기능을 추가할 때 역할을 미리 선택할 수 있습니다. 여전히 이 이름을 재정의할 수 있으며 클러스터 전체에서 추가 기능에 역할을 사용할 수 있지만 드롭다운에서 역할을 수동으로 선택해야 합니다.
-
-
상태에서 구독 필요가 표시되지 않고 IRSA를 사용하여 역할을 구성하려는 추가 기능은 IAM 정책을 생성하고 역할에 연결하기 위해 생성하는 추가 기능에 대한 설명서를 참조하세요. 추가 기능 목록은 AWS 추가 기능 부분을 참조하세요. IAM 역할을 선택하려면 클러스터에 대한 IAM OpenID Connect(OIDC) 제공자가 있어야 합니다. 클러스터의 해당 공급자가 이미 있는지 아니면 생성해야 하는지 결정하려면 클러스터에 대한 IAM OIDC 공급자 생성 섹션을 참조하세요.
-
-
선택적 구성 설정을 확장합니다.
-
구성 값에 추가 기능 관련 구성 정보를 입력합니다. 자세한 내용은 업데이트 중인 추가 기능의 설명서를 참조하세요. 추가 기능 목록은 AWS 추가 기능 ... 충돌 해결 방법의 경우 옵션 중 하나를 선택합니다. 추가 기능 설정에 사용자 지정 값을 설정한 경우, 보존 옵션이 좋습니다. 이 옵션을 선택하지 않으면 Amazon EKS에서 기본값으로 해당 값을 덮어씁니다. 이 옵션을 사용하는 경우에는 추가 기능을 업데이트하기 전에 프로덕션 클러스터에서 비프로덕션 클러스터의 필드 및 값 변경 사항을 테스트하는 것이 좋습니다. 이 값을 overwrite로 변경하면 모든 설정이 Amazon EKS 기본값으로 변경됩니다. 설정에 사용자 지정 값을 설정한 경우 Amazon EKS 기본값으로 해당 값을 덮어쓸 수도 있습니다. 이 값을 none으로 변경하면 Amazon EKS에서는 설정의 값을 변경하지 않지만 업데이트에 실패할 수도 있습니다. 업데이트에 실패하면 충돌 해결에 도움이 되는 오류 메시지가 표시됩니다.
-
-
Save changes(변경 사항 저장)를 선택합니다.
추가 기능 업데이트(AWS CLI)
-
장치에 설치 및 구성된 AWS 명령줄 인터페이스(AWS CLI)의 버전
2.12.3
이상 또는 버전1.27.160
이상 또는 AWS CloudShell. 현재 버전을 확인하려면aws --version | cut -d / -f2 | cut -d ' ' -f1
을 사용합니다.yum
,apt-get
또는 macOS용 Homebrew와 같은 패키지 관리자는 최신 버전의 AWS CLI 이전에 나온 버전이 몇 가지 있을 때도 있습니다. 최신 버전을 설치하려면 AWS 명령줄 인터페이스 사용 설명서에서 설치 및 aws config를 사용하여 빠른 구성을 참조하세요. AWS CloudShell에 설치된 AWS CLI 버전도 최신 버전보다 여러 버전 이전일 수도 있습니다. 업데이트하려면 AWS CloudShell 사용 설명서의 홈 디렉터리에 AWS CLI 설치하기를 참조하세요. -
설치한 추가 기능 목록을 참조합니다.
my-cluster
를 해당 클러스터의 이름으로 바꿉니다.aws eks list-addons --cluster-name my-cluster
예제 출력은 다음과 같습니다.
{ "addons": [ "coredns", "kube-proxy", "vpc-cni" ] }
-
업데이트할 추가 기능의 현재 버전을 조회합니다.
my-cluster
를 클러스터 이름으로 바꾸고 업데이트할 추가 기능의 이름으로vpc-cni
를 바꿉니다.aws eks describe-addon --cluster-name my-cluster --addon-name vpc-cni --query "addon.addonVersion" --output text
예제 출력은 다음과 같습니다.
v1.10.4-eksbuild.1
-
클러스터 버전에 사용할 수 있는 추가 기능 버전을 확인합니다.
1.32
를 클러스터의 버전으로 바꾸고 업데이트할 추가 기능의 이름으로vpc-cni
를 바꿉니다.aws eks describe-addon-versions --kubernetes-version 1.32 --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
가 있는 버전이 추가 기능을 생성한 버전입니다. -
추가 기능을 업데이트합니다. 다음 명령을 디바이스에 복사합니다. 필요에 따라 명령을 다음과 같이 수정한 다음에 수정한 명령을 실행합니다. 이 명령에 대한 자세한 내용은 Amazon EKS 명령줄 참조의 update-addon을 참조하세요.
-
my-cluster
를 해당 클러스터의 이름으로 바꿉니다. -
vpc-cni
를 이전 단계의 출력에서 반환된 업데이트하려는 애드온의 이름으로 바꿉니다. -
업데이트하려는 이전 단계의 출력에서 반환된 버전으로
version-number
를 바꿉니다. 일부 추가 기능에는 권장 버전이 있습니다. 자세한 내용은 업데이트 중인 추가 기능의 설명서를 참조하세요. 추가 기능 목록은 AWS 추가 기능 섹션을 참조하세요.* 추가 기능이 Kubernetes 서비스 계정과 IAM 역할을 사용하는 경우111122223333
을 계정 ID로 바꾸고role-name
을 생성한 기존 IAM 역할의 이름으로 바꿉니다 역할 생성에 대한 지침은 생성 중인 추가 기능의 설명서를 참조하세요. 추가 기능 목록은 AWS 추가 기능 부분을 참조하세요. 서비스 계정 역할을 지정하려면 클러스터의 IAM OpenID Connect(OIDC) 제공자가 있어야 합니다. 클러스터의 해당 공급자가 이미 있는지 아니면 생성해야 하는지 결정하려면 클러스터에 대한 IAM OIDC 공급자 생성 부분을 참조하세요.추가 기능에서 Kubernetes 서비스 계정과 IAM 역할을 사용하지 않으면
serviceAccountRoleARN: arn:aws:iam::
줄을 삭제합니다.111122223333
:role/role-name
-
--resolve-conflicts PRESERVE
옵션은 추가 기능의 기존 값을 보존합니다. 추가 기능 설정에 사용자 지정 값을 설정하고 이 옵션을 사용하지 않는 경우 Amazon EKS에서는 기본값으로 해당 값을 덮어씁니다. 이 옵션을 사용하는 경우에는 추가 기능을 업데이트하기 전에 프로덕션 클러스터에서 비프로덕션 클러스터의 필드 및 값 변경 사항을 테스트하는 것이 좋습니다. 이 값을OVERWRITE
로 변경하면 모든 설정이 Amazon EKS 기본값으로 변경됩니다. 설정에 사용자 지정 값을 설정한 경우 Amazon EKS 기본값으로 해당 값을 덮어쓸 수도 있습니다. 이 값을NONE
으로 변경하면 Amazon EKS에서는 설정의 값을 변경하지 않지만 업데이트에 실패할 수도 있습니다. 업데이트에 실패하면 충돌 해결에 도움이 되는 오류 메시지가 표시됩니다. -
모든 사용자 지정 구성을 제거하려면
–-configuration-values ‘{}’
옵션을 사용하여 업데이트를 수행하세요. 그러면 모든 사용자 지정 구성이 기본값으로 되돌아갑니다. 사용자 지정 구성을 변경하지 않으려는 경우에는–-configuration-values
플래그를 제공하지 마세요. 사용자 지정 구성을 조정하려는 경우에는{}
부분을 새 파라미터로 바꿉니다.aws eks update-addon --cluster-name my-cluster --addon-name vpc-cni --addon-version version-number \ --service-account-role-arn arn:aws:iam::111122223333:role/role-name --configuration-values '{}' --resolve-conflicts PRESERVE
-
-
업데이트 상태를 확인합니다.
my-cluster
를 클러스터 이름으로 바꾸고 업데이트 중인 추가 기능의 이름으로vpc-cni
를 바꿉니다.aws eks describe-addon --cluster-name my-cluster --addon-name vpc-cni
예제 출력은 다음과 같습니다.
{ "addon": { "addonName": "vpc-cni", "clusterName": "my-cluster", "status": "UPDATING", } }
상태가
ACTIVE
라면 업데이트가 완료된 것입니다.