使用 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 条目

最后修改时间:2024 年 1 月 14 日太平洋标准时间晚上 8:29:更新 CoreDNS 安装文档 (0f9ab60a3c)