使用 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.31,唯一支持的集群 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 博客中的 自定义 DNS 条目以供 Kubernetes 使用

最后修改时间:2024 年 1 月 14 日下午 8:29 PST:更新 CoreDNS 安装文档 (0f9ab60a3c)