協助改善此頁面
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
想要為此使用者指南做出貢獻? 捲動至此頁面底部,然後選取編輯此頁面 GitHub。您的貢獻將幫助我們的使用者指南更適合每個人。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
更新 CoreDNS Amazon EKS 自我管理附加元件
重要
建議您將附加元件的 Amazon EKS 類型新增至叢集,而不是使用附加元件的自我管理類型。如果您不熟悉類型之間的差異,請參閱 Amazon EKS 附加元件。如需將 Amazon EKS 附加元件新增至叢集的詳細資訊,請參閱 建立 Amazon EKS 附加元件。如果您無法使用 Amazon EKS 附加元件,建議您提交問題,說明為何無法傳送至 Containers roadmap GitHub 儲存庫
在開始之前,請檢閱升級考量事項。如需詳細資訊,請參閱重要 CoreDNS 升級考量。
-
確認您的叢集上已安裝附加元件的自我管理類型。Replace (取代)
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
,則需要修改ConfigMap
的 CoreDNS 使用轉送附加元件,而非代理附加元件。-
ConfigMap
使用以下命令開啟 。kubectl edit configmap coredns -n kube-system
-
使用
forward
取代為下列行中的proxy
:儲存檔案,然後退出編輯器。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
或更新版本,則您需要將endpointslices
許可新增至system:coredns
Kubernetesclusterrole
.kubectl edit clusterrole system:coredns -n kube-system
在檔案的
rules
區段的現有許可行下,新增以下行。[...] - apiGroups: - discovery.k8s.io resources: - endpointslices verbs: - list - watch [...]
-
更新 CoreDNS 透過取代 附加元件
602401143452
以及region-code
上一個步驟中傳回的輸出值。Replace (取代)v1.11.3-eksbuild.1
使用 CoreDNS 最新版本資料表中列出的 版本 Kubernetes 版本。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