使用 CoreDNS 進行服務探索

本頁面描述 CoreDNS 升級程序,以及如何安裝 CoreDNS 以取代 kube-dns。

準備開始

您需要有一個 Kubernetes 叢集,並且必須設定 kubectl 命令列工具以與您的叢集進行通訊。建議在至少有兩個節點且不作為控制平面主機的叢集上執行本教學。如果您還沒有叢集,可以使用 minikube 建立一個,或者您可以使用下列 Kubernetes 體驗場景之一

您的 Kubernetes 伺服器版本必須為 v1.9 或更新版本。若要檢查版本,請輸入 kubectl version

關於 CoreDNS

CoreDNS 是一個彈性、可擴充的 DNS 伺服器,可以作為 Kubernetes 叢集 DNS。與 Kubernetes 一樣,CoreDNS 專案由 CNCF 託管。

您可以在叢集中使用 CoreDNS 取代 kube-dns,方法是在現有的部署中取代 kube-dns,或使用 kubeadm 等工具,這些工具將為您部署和升級叢集。

安裝 CoreDNS

對於手動部署或取代 kube-dns,請參閱 CoreDNS 網站上的文件。

移轉至 CoreDNS

使用 kubeadm 升級現有的叢集

在 Kubernetes 1.21 版本中,kubeadm 移除了對 kube-dns 作為 DNS 應用程式的支援。對於 kubeadm v1.32,唯一支援的叢集 DNS 應用程式是 CoreDNS。

當您使用 kubeadm 升級正在使用 kube-dns 的叢集時,可以移至 CoreDNS。在這種情況下,kubeadm 會根據 kube-dns ConfigMap 產生 CoreDNS 組態 ("Corefile"),保留 Stub 網域和上游名稱伺服器的組態。

升級 CoreDNS

您可以在 Kubernetes 中 CoreDNS 版本頁面中查看 kubeadm 為每個 Kubernetes 版本安裝的 CoreDNS 版本。

如果您只想升級 CoreDNS 或使用自己的自訂映像檔,可以手動升級 CoreDNS。有一個有用的指南和逐步解說可確保順利升級。升級叢集時,請確保保留現有的 CoreDNS 組態 ("Corefile")。

如果您使用 kubeadm 工具升級叢集,kubeadm 可以自動處理保留現有的 CoreDNS 組態。

調整 CoreDNS

當資源利用率是一個考量時,調整 CoreDNS 的組態可能會很有用。如需更多詳細資訊,請查看關於擴充 CoreDNS 的文件

下一步

您可以透過修改 CoreDNS 組態 ("Corefile"),將 CoreDNS 設定為支援比 kube-dns 更多的使用案例。如需更多資訊,請參閱 kubernetes CoreDNS 外掛程式的文件,或閱讀 CoreDNS 部落格中的Kubernetes 的自訂 DNS 項目

上次修改時間:2024 年 1 月 14 日下午 8:29 PST:更新 CoreDNS 安裝文件 (0f9ab60a3c)