選取您的 Cookie 偏好設定

我們使用提供自身網站和服務所需的基本 Cookie 和類似工具。我們使用效能 Cookie 收集匿名統計資料,以便了解客戶如何使用我們的網站並進行改進。基本 Cookie 無法停用,但可以按一下「自訂」或「拒絕」以拒絕效能 Cookie。

如果您同意,AWS 與經核准的第三方也會使用 Cookie 提供實用的網站功能、記住您的偏好設定,並顯示相關內容,包括相關廣告。若要接受或拒絕所有非必要 Cookie,請按一下「接受」或「拒絕」。若要進行更詳細的選擇,請按一下「自訂」。

在 Amazon EKS 叢集中管理 DNS 的 CoreDNS

焦點模式
在 Amazon EKS 叢集中管理 DNS 的 CoreDNS - Amazon EKS

協助改善此頁面

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

若要提供此使用者指南,請選擇位於每個頁面右窗格的 GitHub 上的編輯此頁面連結。

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

協助改善此頁面

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

若要提供此使用者指南,請選擇位於每個頁面右窗格的 GitHub 上的編輯此頁面連結。

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

提示

使用 Amazon EKS Auto Mode,您不需要安裝或升級聯網附加元件。自動模式包含 Pod 聯網和負載平衡功能。

如需詳細資訊,請參閱使用 EKS Auto 模式自動化叢集基礎設施

CoreDNS 是一個靈活、可擴展的 DNS 伺服器,可作為 Kubernetes 集群 DNS。當您啟動具有至少一個節點的 Amazon EKS 叢集時,依預設會部署兩個 CoreDNS 映像複本,而不論叢集中部署的節點數量為何。CoreDNS Pod 為叢集中的所有 Pod 提供名稱解析。如果您的叢集包含 Fargate Profile,且命名空間符合 CoreDNS 的命名空間,則 CoreDNS Pod 可以部署到 Fargate 節點deployment。如需 Fargate Profiles 的詳細資訊,請參閱 定義啟動時使用 AWS Fargate 的 Pod。如需 CoreDNS 的詳細資訊,請參閱 Kubernetes 文件中的使用 CoreDNS 進行服務探索

CoreDNS 版本

下表列出每個 Kubernetes 版本的 Amazon EKS 附加元件類型最新版本。

Kubernetes 版本 CoreDNS 版本

1.32

v1.11.4-eksbuild.2

1.31

v1.11.4-eksbuild.2

1.30

v1.11.4-eksbuild.2

1.29

v1.11.4-eksbuild.2

1.28

v1.10.1-eksbuild.18

1.27

v1.10.1-eksbuild.18

1.26

v1.9.3-eksbuild.22

1.25

v1.9.3-eksbuild.22

1.24

v1.9.3-eksbuild.22

重要

如果您要自我管理此附加元件,資料表中的版本可能與可用的自我管理版本不同。如需更新此附加元件之自我管理類型的詳細資訊,請參閱 更新 CoreDNS Amazon EKS 自我管理附加元件

CoreDNS 升級的重要考量事項

  • 為了改善 CoreDNS 部署的穩定性和可用性, 版本 v1.9.3-eksbuild.6 和更新版本 v1.10.1-eksbuild.3 和 會使用 部署PodDisruptionBudget。如果您已部署現有的 PodDisruptionBudget,則升級到這些版本可能會失敗。如果升級失敗,完成下列其中一項任務即可解決問題:

    • 升級 Amazon EKS 附加元件時,選擇將覆寫現有設定作為衝突解決方案選項。如果您已對部署進行其他自訂設定,請務必在升級之前備份設定,以便在升級之後重新套用其他自訂設定。

    • 移除現有的 PodDisruptionBudget,然後再次嘗試升級。

  • 在 EKS 附加元件版本 v1.9.3-eksbuild.3 和更新版本 和更新版本 v1.10.1-eksbuild.6和更新版本中,CoreDNS 部署會將 readinessProbe 設定為使用/ready端點。此端點會在 CoreDNS 的Corefile組態檔案中啟用。

    如果您使用自訂 Corefile,則必須將ready外掛程式新增至組態,以便/ready端點在 CoreDNS 中處於作用中狀態,以便探查使用。

  • 在 EKS 附加元件版本以v1.9.3-eksbuild.7及更新版本v1.10.1-eksbuild.4和更新版本中,您可以變更 PodDisruptionBudget。您可以使用下列範例的欄位,在選擇性組態設定中編輯附加元件並變更這些設定。此範例顯示預設值PodDisruptionBudget

    { "podDisruptionBudget": { "enabled": true, "maxUnavailable": 1 } }

    您可以設定 maxUnavailableminAvailable,但無法在單一 中同時設定兩者PodDisruptionBudget。如需 的詳細資訊PodDisruptionBudgets,請參閱 Kubernetes 文件中的指定 PodDisruptionBudget

    請注意,如果您將 enabled設定為 falsePodDisruptionBudget則不會移除 。將此欄位設定為false之後,您必須刪除PodDisruptionBudget物件。同樣地,如果您在升級至具有 的版本後,編輯附加元件以使用較舊版本的附加元件 (降級附加元件)PodDisruptionBudgetPodDisruptionBudget則不會移除 。執行下列命令以刪除 PodDisruptionBudget

    kubectl delete poddisruptionbudget coredns -n kube-system
  • 在 EKS 附加元件版本 v1.10.1-eksbuild.5和更新版本中,將預設公差從 變更為 node-role.kubernetes.io/master:NoSchedulenode-role.kubernetes.io/control-plane:NoSchedule,以符合 KEP 2067。如需 KEP 2067 的詳細資訊,請參閱 GitHub 上的 Kubernetes 增強提案 (KEP) 中的 KEP-2067:重新命名 kubeadm "master" 標籤和污點KEPs

    在 EKS 附加元件版本 v1.8.7-eksbuild.8 和更新版本 和更新版本 v1.9.3-eksbuild.9和更新版本 中,兩個容錯都設定為與每個 Kubernetes 版本相容。

  • 在 EKS 附加元件版本 v1.9.3-eksbuild.11v1.10.1-eksbuild.7及更新版本中,CoreDNS 部署會設定 的預設值topologySpreadConstraints。如果多個可用區域中有節點可用,則預設值可確保 CoreDNS Pod 會分散到可用區域。您可以設定將使用的自訂值,而非預設值。預設值如下:

    topologySpreadConstraints: - maxSkew: 1 topologyKey: topology.kubernetes.io/zone whenUnsatisfiable: ScheduleAnyway labelSelector: matchLabels: k8s-app: kube-dns

CoreDNS v1.11 升級考量

  • 在 EKS 附加元件版本 v1.11.1-eksbuild.4 和更新版本中,容器映像是以 Amazon EKS Distro 維護的最小基礎映像為基礎,其中包含最少的套件,且沒有 shell。如需詳細資訊,請參閱 Amazon EKS Distro。CoreDNS 映像的使用和疑難排解保持不變。

在本頁面

下一個主題:

建立

上一個主題:

從已棄用遷移
隱私權網站條款Cookie 偏好設定
© 2025, Amazon Web Services, Inc.或其附屬公司。保留所有權利。