7.1 KiB
reviewers | title | min-kubernetes-server-version | content_template | |
---|---|---|---|---|
|
使用 CoreDNS 进行服务发现 | v1.9 | templates/task |
{{% capture overview %}}
此页面介绍了 CoreDNS 升级过程以及如何安装 CoreDNS 而不是 kube-dns。
{{% /capture %}}
{{% capture prerequisites %}} {{< include "task-tutorial-prereqs.md" >}} {{< version-check >}} {{% /capture %}}
{{% capture steps %}}
关于 CoreDNS
CoreDNS 是一个灵活可扩展的 DNS 服务器,可以作为 Kubernetes 集群 DNS。与 Kubernetes 一样,CoreDNS 项目由 {{< glossary_tooltip text="CNCF" term_id="cncf" >}} 持有。
通过在现有的集群中替换 kube-dns,可以在集群中使用 CoreDNS 代替 kube-dns 部署,或者使用 kubeadm 等工具来为您部署和升级集群。
安装 CoreDNS
有关手动部署或替换 kube-dns,请参阅 CoreDNS GitHub 工程。
迁移到 CoreDNS
使用 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
在 Kubernetes 版本 1.13 和更高版本中,CoreDNS
特性门已经删除,CoreDNS 在默认情况下使用。
如果您想升级集群以使用 kube-dns,请遵循
此处 。
在 1.11 之前的版本中,核心文件将被升级过程中创建的文件覆盖。 如果已对其进行自定义,则应保存现有的 ConfigMap。 在新的 ConfigMap 启动并运行后,您可以重新应用自定义。
如果您在 Kubernetes 1.11 及更高版本中运行 CoreDNS,则在升级期间,将保留现有的 Corefile。
使用 kubeadm 安装 kube-dns 而不是 CoreDNS
{{< note >}}
在 Kubernetes 1.11 中,CoreDNS 已经升级到通用可用性(GA),并默认安装。
{{< /note >}}
若要在1.13之前到版本上安装 kube-dns,请将 CoreDNS
特性门值设置为 false
:
kubeadm init --feature-gates=CoreDNS=false
对于 1.13 版和更高版本,请遵循此处概述到指南。
升级 CoreDNS
从 v1.9 起,Kubernetes 提供了 CoreDNS。 您可以在此处检查 Kubernetes 随附的 CoreDNS 版本以及对 CoreDNS 所做的更改。
如果您只想升级 CoreDNS 或使用自己的自定义镜像,则可以手动升级 CoreDNS。
CoreDNS 调优
当涉及到资源利用时,优化内核的配置可能是有用的。有关详细信息,请参阅 关于扩展 CoreDNS 的文档。
{{% /capture %}}
{{% capture whatsnext %}}
您可以通过修改 Corefile
来配置 CoreDNS,以支持比 ku-dns 更多的用例。有关更多信息,请参考 CoreDNS 网站。
{{% /capture %}}