本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在 Amazon DNS 叢集DNS中管理 CoreWord for EKS
CoreDNS 是彈性、可擴展的 DNS 伺服器,可作為 Kubernetes 叢集 DNS。當您啟動具有至少一個節點的 Amazon EKS 叢集時,CoreDNS 無論叢集中部署的節點數量為何,映像都是預設部署。所以此 CoreDNS
Pods 為所有 提供名稱解析 Pods 在叢集中。所以此 CoreDNS
Pods 如果您的叢集包含具有符合 命名空間的 Fargate 設定檔,則可以部署到 Fargate 節點 CoreDNS deployment
。 如需 Fargate Profiles 的詳細資訊,請參閱 定義 Pods 啟動時使用 AWS Fargate。如需關於 CoreDNS,請參閱 中的使用 CoreDNS for Service Discovery
CoreDNS 版本
下表列出每個 的最新版本 Amazon EKS 附加元件類型 Kubernetes 版本。
Kubernetes 版本 | CoreDNS version |
---|---|
1.31 |
v1.11.3-eksbuild.2 |
1.30 |
v1.11.3-eksbuild.2 |
1.29 |
v1.11.3-eksbuild.2 |
1.28 |
v1.10.1-eksbuild.15 |
1.27 |
v1.10.1-eksbuild.15 |
1.26 |
v1.9.3-eksbuild.19 |
1.25 |
v1.9.3-eksbuild.19 |
1.24 |
v1.9.3-eksbuild.19 |
1.23 |
v1.8.7-eksbuild.18 |
重要
如果您要自我管理此附加元件,資料表中的版本可能與可用的自我管理版本不同。如需更新此附加元件之自我管理類型的詳細資訊,請參閱 更新 CoreDNS Amazon EKS 自我管理附加元件。
重要 CoreDNS 升級考量
-
改善 的穩定性和可用性 CoreDNS Deployment、 版本
v1.9.3-eksbuild.6
和更新版本v1.10.1-eksbuild.3
,並使用 部署PodDisruptionBudget
。如果您已部署現有的PodDisruptionBudget
,則升級到這些版本可能會失敗。如果升級失敗,完成下列其中一項任務即可解決問題:-
升級 Amazon EKS 附加元件時,選擇覆寫現有設定作為衝突解決選項。如果您已對 進行其他自訂設定 Deployment,請務必在升級之前備份您的設定,以便在升級後重新套用其他自訂設定。
-
移除現有的
PodDisruptionBudget
,然後再次嘗試升級。
-
-
在 EKS 附加元件版本
v1.9.3-eksbuild.3
和更新版本 和更新版本v1.10.1-eksbuild.6
和更新版本中,CoreDNS DeploymentreadinessProbe
會將 設定為使用/ready
端點。此端點已在 的Corefile
組態檔案中啟用 CoreDNS.如果您使用自訂
Corefile
,則必須將ready
外掛程式新增至組態,以便在 中啟用/ready
端點 CoreDNS 讓探查使用。 -
在 EKS 附加元件版本
v1.9.3-eksbuild.7
和更新版本v1.10.1-eksbuild.4
和更新版本中,您可以變更PodDisruptionBudget
。您可以使用下列範例的欄位,在選擇性組態設定中編輯附加元件並變更這些設定。此範例顯示預設值PodDisruptionBudget
。{ "podDisruptionBudget": { "enabled": true, "maxUnavailable": 1 } }
您可以設定
maxUnavailable
或minAvailable
,但無法在單一 中同時設定兩者PodDisruptionBudget
。如需 的詳細資訊PodDisruptionBudgets
,請參閱 Kubernetes 文件中的指定 a PodDisruptionBudget。 請注意,如果您將
enabled
設定為false
,PodDisruptionBudget
則不會移除 。將此欄位設定為false
之後,您必須刪除PodDisruptionBudget
物件。同樣地,如果您編輯附加元件以在升級至具有 的版本後使用較舊版本的附加元件 (降級附加元件)PodDisruptionBudget
,PodDisruptionBudget
則 不會移除。執行下列命令以刪除PodDisruptionBudget
:kubectl delete poddisruptionbudget coredns -n kube-system
-
在 EKS 附加元件版本
v1.10.1-eksbuild.5
和更新版本中,將預設公差從node-role.kubernetes.io/master:NoSchedule
變更為node-role.kubernetes.io/control-plane:NoSchedule
以符合 KEP 2067。如需 KEP 2067 的詳細資訊,請參閱 上的 Kubernetes Enhancement Proposals (KEPs) 中的 KEP-2067:重新命名 kubeadm "master" 標籤和污點GitHub. 在 EKS 附加元件版本
v1.8.7-eksbuild.8
和更新版本v1.9.3-eksbuild.9
和更新版本中,兩個公差都設定為與每個 相容的 Kubernetes 版本。 -
在 EKS 附加元件版本
v1.9.3-eksbuild.11
和v1.10.1-eksbuild.7
及更新版本中,CoreDNS Deployment 會設定 的預設值topologySpreadConstraints
。預設值可確保 CoreDNS Pods 如果多個可用區域中有節點可用,則 會分散到可用區域。您可以設定將使用的自訂值,而非預設值。預設值如下:topologySpreadConstraints: - maxSkew: 1 topologyKey: topology.kubernetes.io/zone whenUnsatisfiable: ScheduleAnyway labelSelector: matchLabels: k8s-app: kube-dns
CoreDNSv1.11
升級考量事項
-
在 EKS 附加元件版本
v1.11.1-eksbuild.4
和更新版本中,容器映像是以 Amazon EKS Distro 維護的最小基本映像為基礎,其中包含最少的套件且沒有 Shell。如需詳細資訊,請參閱 Amazon EKS Distro 。的用量和疑難排解 CoreDNS 映像保持不變。