이 페이지 개선에 도움 주기
이 사용자 설명서에 기여하고 싶으신가요? 이 페이지 하단으로 스크롤하여 GitHub에서 이 페이지 편집을 선택하세요. 여러분의 기여는 모두를 위한 더 나은 사용자 설명서를 만드는 데 도움이 됩니다.
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
로 바꿉니다. 파일을 저장하고 편집기를 종료합니다.
. /etc/resolv.confproxy
-
-
원래 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
를 이전 단계에서 반환된 출력의 값으로 바꿔 CoreDNS 추가 기능을 업데이트합니다. Kubernetes버전의 최신 버전 표에 나와 있는 CoreDNS최신 버전으로region-code
을(를) 교체하십시오.v1.11.3-eksbuild.1
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