3 - DNS provider
默认情况下,RKE 部署kube-dns作为您的集群的DNS提供程序。
RKE将部署kube-dns
作为默认副本数为1
的Deployment
。Pod
由三个容器组成:kubedns、dnsmasq和sidecar
。RKE还将以Deployment
方式部署kube-dn -autoscaler
,它将根据内核和节点的数量
来扩展kube-dns
实例数。有关此逻辑的更多信息,请参见Linear Mode。
一、调度 kube-dns
可用版本 v0.2.0
如果只想在特定节点上部署kube-dns pod
,可以在dns
部分设置node_selector
。node_selector
中的标签需要与要部署的kube-dns pod的节点上的标签匹配。
nodes:
- address: 1.1.1.1
role: [controlplane,worker,etcd]
user: root
labels:
app: dns
dns:
provider: kube-dns
node_selector:
app: dns
二、禁用 kube-dns
可用版本 v0.2.0
您可以通过在集群配置中为DNS.provider设置为none
来禁用默认DNS提供程序。请注意,这将导致您的pod在无法在集群中执行名称解析。
dns:
provider: none
三、配置 kube-dns
1、上游 DNS服务器
可用版本 v0.2.0
默认情况下,kube-dns将使用已配置的DNS名称服务器(通常位于/etc/resolv.conf
)来执行外部查询。如果希望配置特定的上游 DNS服务器供kube-dns使用,可以使用upstreamnameservers
指令。
dns:
provider: kube-dns
upstreamnameservers:
- 1.1.1.1
- 8.8.4.4
2、CoreDNS (实验)
可用版本 v0.2.0
如果您想使用CoreDNS,您可以将provider设置为CoreDNS
。CoreDNS还支持node_selector
和upstreamnameservers
参数设置。
dns:
provider: coredns
upstreamnameservers:
- 1.1.1.1
- 8.8.4.4