Amazon VPC CNI(Amazon EKS 애드온) 업데이트하기
Amazon VPC CNI plugin for Kubernetes 추가 기능의 Amazon EKS 유형 업데이트. 클러스터에 Amazon EKS 유형의 애드온을 추가하지 않은 경우 Amazon VPC CNI (Amazon EKS 추가 기능) 생성에 따라 설치할 수 있습니다. 또는 Amazon VPC CNI(자체 관리형 애드온) 업데이트하기에 따라 다른 유형의 VPC CNI 설치를 업데이트합니다.
-
클러스터에 설치된 추가 기능의 버전을 확인하세요.
<cluster-name>
을 클러스터 이름으로 바꿉니다.aws eks describe-addon --cluster-name my-cluster --addon-name vpc-cni --query "addon.addonVersion" --output text
예제 출력은 다음과 같습니다.
v1.16.4-eksbuild.2
버전을 Amazon VPC CNI 버전의 최신 버전 표와 비교합니다. 반환된 버전이 최신 버전 표에 있는 클러스터의 Kubernetes 버전과 동일한 경우 클러스터에 이미 최신 버전이 설치되어 있으므로 이 절차의 나머지 부분을 완료하지 않아도 됩니다. 출력에 버전 번호 대신 오류가 표시되면 클러스터에 설치된 추가 기능의 Amazon EKS 유형이 없는 것입니다. 이 절차로 업데이트하려면 먼저 추가 기능을 생성해야 합니다. VPC CNI 추가 기능의 Amazon EKS 유형을 생성하려면 Amazon VPC CNI (Amazon EKS 추가 기능) 생성를 따르세요.
-
현재 설치된 추가 기능의 구성을 저장합니다.
kubectl get daemonset aws-node -n kube-system -o yaml > aws-k8s-cni-old.yaml
-
AWS CLI를 사용하여 추가 기능 업데이트. AWS Management Console 또는
eksctl
를 사용하여 추가 기능을 업데이트하려면 Amazon EKS 추가 기능 업데이트 부분을 참조하세요. 다음 명령을 디바이스에 복사합니다. 필요에 따라 명령을 다음과 같이 수정한 다음에 수정한 명령을 실행합니다.-
my-cluster
를 해당 클러스터의 이름으로 바꿉니다. -
v1.19.0-eksbuild.1
을 클러스터 버전의 최신 버전 테이블에 나와 있는 최신 버전으로 바꿉니다. -
111122223333
을 계정 ID로,AmazonEKSVPCCNIRole
을 생성한 기존 IAM 역할 이름으로 바꿉니다. VPC CNI에 대한 IAM 역할을 생성하려면 1단계 - Amazon VPC CNI plugin for Kubernetes IAM 역할 생성을 참조하세요. 역할을 지정하려면 클러스터의 IAM OpenID Connect(OIDC) 제공업체가 있어야 합니다. 클러스터의 해당 제공업체가 이미 있는지 아니면 생성해야 하는지 결정하려면 클러스터에 대한 IAM OIDC 공급자 생성 섹션을 참조하세요. -
--resolve-conflicts PRESERVE
옵션에서는 추가 기능의 기존 구성 값을 보존합니다. 추가 기능 설정에 사용자 지정 값을 설정하고 이 옵션을 사용하지 않는 경우 Amazon EKS에서는 기본값으로 해당 값을 덮어씁니다. 이 옵션을 사용하는 경우에는 추가 기능을 업데이트하기 전에 프로덕션 클러스터에서 비프로덕션 클러스터의 필드 및 값 변경 사항을 테스트하는 것이 좋습니다. 이 값을OVERWRITE
로 변경하면 모든 설정이 Amazon EKS 기본값으로 변경됩니다. 설정에 사용자 지정 값을 설정한 경우 Amazon EKS 기본값으로 해당 값을 덮어쓸 수도 있습니다. 이 값을none
으로 변경하면 Amazon EKS에서는 설정의 값을 변경하지 않지만 업데이트에 실패할 수도 있습니다. 업데이트에 실패하면 충돌 해결에 도움이 되는 오류 메시지가 표시됩니다. -
구성 설정을 업데이트하지 않는 경우
--configuration-values '{
을(를) 명령에서 제거하십시오. 구성 설정을 업데이트하는 경우"env":{"AWS_VPC_K8S_CNI_EXTERNALSNAT":"true"}
}'"env":{"AWS_VPC_K8S_CNI_EXTERNALSNAT":"true"}
를 설정하려는 설정으로 바꾸십시오. 이 예에서는AWS_VPC_K8S_CNI_EXTERNALSNAT
환경 변수가true
로 설정되어 있습니다. 지정한 값은 구성 스키마에 유효해야 합니다. 구성 스키마를 모르는 경우aws eks describe-addon-configuration --addon-name vpc-cni --addon-version
를 실행합니다.v1.19.0-eksbuild.1
, replacingv1.19.0-eksbuild.1
with the version number of the add-on that you want to see the configuration for. The schema is returned in the output. If you have any existing custom configuration, want to remove it all, and set the values for all settings back to Amazon EKS defaults, remove"env":{"AWS_VPC_K8S_CNI_EXTERNALSNAT":"true"}
from the command, so that you have empty{}
. For an explanation of each setting, see CNI Configuration Variableson GitHub. aws eks update-addon --cluster-name my-cluster --addon-name vpc-cni --addon-version v1.19.0-eksbuild.1 \ --service-account-role-arn arn:aws:iam::111122223333:role/AmazonEKSVPCCNIRole \ --resolve-conflicts PRESERVE --configuration-values '{"env":{"AWS_VPC_K8S_CNI_EXTERNALSNAT":"true"}}'
업데이트가 완료되는 데 몇 초 정도 걸릴 수 있습니다.
-
-
추가 기능 버전이 업데이트되었는지 확인합니다.
my-cluster
를 해당 클러스터의 이름으로 바꿉니다.aws eks describe-addon --cluster-name my-cluster --addon-name vpc-cni
업데이트가 완료되는 데 몇 초 정도 걸릴 수 있습니다.
예제 출력은 다음과 같습니다.
{ "addon": { "addonName": "vpc-cni", "clusterName": "my-cluster", "status": "ACTIVE", "addonVersion": "v1.19.0-eksbuild.1", "health": { "issues": [] }, "addonArn": "arn:aws:eks:region:111122223333:addon/my-cluster/vpc-cni/74c33d2f-b4dc-8718-56e7-9fdfa65d14a9", "createdAt": "2023-04-12T18:25:19.319000+00:00", "modifiedAt": "2023-04-12T18:40:28.683000+00:00", "serviceAccountRoleArn": "arn:aws:iam::111122223333:role/AmazonEKSVPCCNIRole", "tags": {}, "configurationValues": "{\"env\":{\"AWS_VPC_K8S_CNI_EXTERNALSNAT\":\"true\"}}" } }