Kubernetes v1.12
开始使用 CoreDNS
代替 kube-dns
。为了能够与依靠传统 kube-dns
服务名称来解析集群内部地址,CoreDNS
和 kube-dns
的 Service
的 metadata.name 名字均为 kube-dns
初始化k8s集群dns域名
使用kubeadm
安装集群是指定:
kubeadm init --service-dns-domain "k8s1.xiexianbin.cn"
# cat /etc/resolv.conf
# search default.k8s1.xiexianbin.cn svc.k8s1.xiexianbin.cn k8s1.xiexianbin.cn openstacklocal
search svc.cluster.local default.svc.cluster.local
nameserver 10.96.0.10
coredns 配置信息
kubectl get configmap/coredns -n kube-system -o yaml
使用
k8s node节点访问域名
# kubectl get svc -n kube-system | grep dns
kube-dns ClusterIP 10.96.0.10 <none> 53/UDP,53/TCP,9153/TCP 13d
# cat /etc/resolv.conf
nameserver 10.96.0.10
search default.k8s1.xiexianbin.cn svc.k8s1.xiexianbin.cn k8s1.xiexianbin.cn
tcping <svc-name>.<ns-name>.svc.k8s1.xiexianbin.cn <port>
coreDNS 添加静态DNS
coredns-cm.yaml
Name: coredns
Namespace: kube-system
Labels: <none>
Annotations: <none>
Data
====
Corefile:
----
.:53 {
errors
health {
lameduck 5s
}
hosts {
# format: ip domain
192.168.179.81 k8s-master
192.168.179.82 k8s-node-1
192.168.179.83 k8s-node-2
192.168.179.85 k8s-node-3
fallthrough
}
ready
kubernetes kb.cx in-addr.arpa ip6.arpa {
pods insecure
fallthrough in-addr.arpa ip6.arpa
ttl 30
}
prometheus :9153
forward . /etc/resolv.conf {
max_concurrent 1000
}
cache 30
loop
reload
loadbalance
}
Events: <none>
kubectl replace -f coredns-cm.yaml