任务

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

Edit This Page

使用 CoreDNS 进行服务发现

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

准备开始

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

Your Kubernetes server must be version v1.9 or later. 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 网站

反馈