3 - DNS provider


默认情况下,RKE 部署kube-dns作为您的集群的DNS提供程序。

RKE将部署kube-dns作为默认副本数为1DeploymentPod由三个容器组成:kubedns、dnsmasq和sidecar。RKE还将以Deployment方式部署kube-dn -autoscaler,它将根据内核和节点的数量来扩展kube-dns实例数。有关此逻辑的更多信息,请参见Linear Mode

一、调度 kube-dns

可用版本 v0.2.0

如果只想在特定节点上部署kube-dns pod,可以在dns部分设置node_selectornode_selector中的标签需要与要部署的kube-dns pod的节点上的标签匹配。

  1. nodes:
  2. - address: 1.1.1.1
  3. role: [controlplane,worker,etcd]
  4. user: root
  5. labels:
  6. app: dns
  7. dns:
  8. provider: kube-dns
  9. node_selector:
  10. app: dns

二、禁用 kube-dns

可用版本 v0.2.0

您可以通过在集群配置中为DNS.provider设置为none来禁用默认DNS提供程序。请注意,这将导致您的pod在无法在集群中执行名称解析。

  1. dns:
  2. provider: none

三、配置 kube-dns

1、上游 DNS服务器

可用版本 v0.2.0

默认情况下,kube-dns将使用已配置的DNS名称服务器(通常位于/etc/resolv.conf)来执行外部查询。如果希望配置特定的上游 DNS服务器供kube-dns使用,可以使用upstreamnameservers指令。

  1. dns:
  2. provider: kube-dns
  3. upstreamnameservers:
  4. - 1.1.1.1
  5. - 8.8.4.4

2、CoreDNS (实验)

可用版本 v0.2.0

如果您想使用CoreDNS,您可以将provider设置为CoreDNS。CoreDNS还支持node_selectorupstreamnameservers参数设置。

  1. dns:
  2. provider: coredns
  3. upstreamnameservers:
  4. - 1.1.1.1
  5. - 8.8.4.4