任务

Kubernetes v1.13 版本的文档已不再维护。您现在看到的版本来自于一份静态的快照。如需查阅最新文档,请点击 最新版本。

Edit This Page

使用 CoreDNS 进行服务发现

此页面介绍了 CoreDNS 升级过程以及如何安装 CoreDNS 而不是 kube-dns。

准备开始

您必须拥有一个 Kubernetes 集群,并且必须使用 kubectl 命令行工具与你的集群进行通信。如果您还没有一个集群,您可以通过 Minikube 创建一个集群,或者使用这些 Kubernetes playground :

Your Kubernetes server must be at or later than version v1.9. To check the version, enter kubectl version.

关于 CoreDNS

CoreDNS 是一个灵活可扩展的 DNS 服务器,可以作为 Kubernetes 集群 DNS。与 Kubernetes 一样,CoreDNS 项目由 CNCF(http://www.cncf.io) 持有。

通过在现有的集群中替换 kube-dns,可以在集群中使用 CoreDNS 代替 kube-dns 部署,或者使用 kubeadm 等工具来为您部署和升级集群。

安装 CoreDNS

有关手动部署或替换 kube-dns,请参阅 CoreDNS GitHub 工程

使用 kubeadm 升级现有集群

在 Kubernetes 1.10 及更高版本中,当您使用 kubeadm 升级使用 kube-dns 的集群时,您还可以迁移到 CoreDNS。 在本例中 kubeadm 将生成 CoreDNS 配置(”Corefile”)基于 kube-dns ConfigMap,保存联邦、存根域和上游名称服务器的配置。

如果您正在从 kube-dns 迁移到 CoreDNS,请确保在升级期间将 CoreDNS 特性门设置为 true。例如,v1.11.0 升级应该是这样的:

kubeadm upgrade apply v1.11.0 --feature-gates=CoreDNS=true

在 1.11 之前的版本中,核心文件将被升级过程中创建的文件覆盖。 如果已对其进行自定义,则应保存现有的 ConfigMap。 在新的 ConfigMap 启动并运行后,您可以重新应用自定义。

如果您在 Kubernetes 1.11 及更高版本中运行 CoreDNS,则在升级期间,将保留现有的 Corefile。

使用 kubeadm 安装 kube-dns 而不是 CoreDNS

Note:

在 Kubernetes 1.11 中,CoreDNS 已经升级到通用可用性(GA),并默认安装。

若要安装 kube-dns,请将 CoreDNS 特性门值设置为 false

kubeadm init --feature-gates=CoreDNS=false

CoreDNS 调优

当涉及到资源利用时,优化内核的配置可能是有用的。有关详细信息,请参阅 关于扩展 CoreDNS 的文档

接下来

您可以通过修改 Corefile 来配置 CoreDNS,以支持比 ku-dns 更多的用例。有关更多信息,请参考 CoreDNS 网站

反馈