CoreDNS Amazon EKS 자체 관리형 추가 기능 업데이트
중요
자체 관리형 추가 기능 유형을 사용하는 대신 클러스터에 Amazon EKS 유형의 추가 기능을 추가하는 것이 좋습니다. 유형 간의 차이를 잘 모르는 경우 Amazon EKS 추가 기능 부분을 참조하세요. Amazon EKS 추가 기능을 클러스터에 추가하는 방법에 대한 자세한 내용은 Amazon EKS 추가 기능 생성 섹션을 참조하세요. Amazon EKS 추가 기능을 사용할 수 없는 경우, 사용할 수 없는 이유에 대한 문제를 컨테이너 로드맵 GitHub 리포지토리
시작하기 전에 업그레이드 고려 사항을 검토하세요. 자세한 내용은 중요 CoreDNS 업그레이드 고려 사항 단원을 참조하십시오.
-
클러스터에 자체 관리형 추가 기능 유형이 설치되어 있는지 확인하세요.
my-cluster
를 해당 클러스터의 이름으로 바꿉니다.aws eks describe-addon --cluster-name my-cluster --addon-name coredns --query addon.addonVersion --output text
오류 메시지가 반환되면 자체 관리형 추가 기능 유형이 클러스터에 설치됩니다. 이 절차의 나머지 단계를 완료하여 설치하세요. 버전 번호가 반환되는 경우 Amazon EKS 유형의 추가 기능이 클러스터에 설치됩니다. Amazon EKS 유형의 추가 기능을 업데이트하려면 이 절차를 사용하는 대신 CoreDNS Amazon EKS 추가 기능 업데이트에 있는 절차를 사용하세요. 추가 기능 유형 간의 차이를 잘 모르는 경우 Amazon EKS 추가 기능 부분을 참조하세요.
-
클러스터에 현재 설치된 컨테이너 이미지의 버전을 확인하세요.
kubectl describe deployment coredns -n kube-system | grep Image | cut -d ":" -f 3
예제 출력은 다음과 같습니다.
v1.8.7-eksbuild.2
-
현재 CoreDNS 버전이
v1.5.0
이상이지만 CoreDNS 버전 표에서 나열된 버전보다 낮다면 이 단계를 건너뜁니다. 현재 버전이1.5.0
버전보다 낮은 경우 프록시 추가 기능 대신 전달 추가 기능을 사용하도록 CoreDNS의ConfigMap
을 수정해야 합니다.-
다음 명령을 통해
ConfigMap
을 엽니다.kubectl edit configmap coredns -n kube-system
-
다음 줄의
proxy
를forward
로 바꿉니다. 파일을 저장하고 편집기를 종료합니다.proxy . /etc/resolv.conf
-
-
원래 Kubernetes
1.17
또는 이전 버전에서 클러스터를 배포한 경우 CoreDNS 매니페스트에서 더는 사용되지 않는 줄을 제거해야 할 수 있습니다.중요
CoreDNS 버전
1.7.0
으로 업데이트하기 전에 이 단계를 완료해야 하지만, 이전 버전으로 업데이트하는 경우에도 이 단계를 완료하는 것이 좋습니다.-
CoreDNS 매니페스트에 이 줄이 있는지 확인합니다.
kubectl get configmap coredns -n kube-system -o jsonpath='{$.data.Corefile}' | grep upstream
결과가 반환되지 않으면 매니페스트에 해당 줄이 없는 것이므로 다음 단계로 건너뛰어 CoreDNS를 업데이트할 수 있습니다. 출력이 반환되면 줄을 제거해야 합니다.
-
다음 명령을 사용하여
ConfigMap
을 편집하고 파일에서upstream
단어가 포함된 줄을 제거합니다. 파일에서 다른 것을 변경하지 마세요. 이 줄을 제거한 후 변경 사항을 저장하세요.kubectl edit configmap coredns -n kube-system -o yaml
-
-
현재 CoreDNS 이미지 버전을 검색합니다.
kubectl describe deployment coredns -n kube-system | grep Image
예제 출력은 다음과 같습니다.
602401143452.dkr.ecr.region-code.amazonaws.com/eks/coredns:v1.8.7-eksbuild.2
-
CoreDNS
1.8.3
이상으로 업데이트하는 경우system:coredns
Kubernetesclusterrole
에endpointslices
권한을 추가해야 합니다.kubectl edit clusterrole system:coredns -n kube-system
파일의
rules
부분의 기존 권한 줄 아래에 다음 줄을 추가합니다.[...] - apiGroups: - discovery.k8s.io resources: - endpointslices verbs: - list - watch [...]
-
602401143452
및region-code
를 이전 단계에서 반환된 출력의 값으로 대체하여 CoreDNS 애드온을 업데이트합니다.v1.11.3-eksbuild.1
을 사용 중인 Kubernetes 버전의 최신 버전 표에 나와 있는 CoreDNS 버전으로 바꿉니다.kubectl set image deployment.apps/coredns -n kube-system coredns=602401143452.dkr.ecr.region-code.amazonaws.com/eks/coredns:v1.11.3-eksbuild.1
예제 출력은 다음과 같습니다.
deployment.apps/coredns image updated
-
컨테이너 이미지 버전을 다시 확인하여 이전 단계에서 지정한 버전으로 업데이트되었는지 확인합니다.
kubectl describe deployment coredns -n kube-system | grep Image | cut -d ":" -f 3
예제 출력은 다음과 같습니다.
v1.11.3-eksbuild.1