使用 CoreDNS 進行服務發現
本頁面描述了 CoreDNS 的升級過程以及如何安裝 CoreDNS 來替代 kube-dns。
準備工作
你需要有一個 Kubernetes 叢集,並且 kubectl 命令列工具已配置為與你的叢集通訊。建議在至少有兩個不作為控制平面主機的節點的叢集上執行本教程。如果你還沒有叢集,你可以使用 minikube 建立一個,或者使用這些 Kubernetes 遊樂場之一
你的 Kubernetes 伺服器版本必須是 v1.9 或更高版本。要檢查版本,請輸入 kubectl version
。
關於 CoreDNS
CoreDNS 是一個靈活、可擴充套件的 DNS 伺服器,可以作為 Kubernetes 叢集 DNS。與 Kubernetes 一樣,CoreDNS 專案由 CNCF 託管。
你可以透過替換現有部署中的 kube-dns,或使用 kubeadm 等工具來部署和升級叢集,從而在叢集中使用 CoreDNS 而不是 kube-dns。
安裝 CoreDNS
有關手動部署或替換 kube-dns 的資訊,請參閱 CoreDNS 網站上的文件。
遷移到 CoreDNS
使用 kubeadm 升級現有叢集
在 Kubernetes 1.21 版本中,kubeadm 移除了對 kube-dns
作為 DNS 應用程式的支援。對於 kubeadm
v1.34,唯一支援的叢集 DNS 應用程式是 CoreDNS。
當您使用 kubeadm
升級使用 kube-dns
的叢集時,您可以遷移到 CoreDNS。在這種情況下,kubeadm
會根據 kube-dns
ConfigMap 生成 CoreDNS 配置("Corefile"),保留存根域和上游域名伺服器的配置。
升級 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 條目。