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"
- 创建好的pod中可以查看到具体的配置信息
# cat /etc/resolv.conf
search default.k8s1.xiexianbin.cn svc.k8s1.xiexianbin.cn k8s1.xiexianbin.cn openstacklocal
nameserver 10.96.0.10
coredns 配置信息
kubectl get configmap/coredns -n kube-system -o yaml
使用
k8s node节点访问域名
- 获取core dns ip地址
# kubectl get svc -n kube-system | grep dns
kube-dns ClusterIP 10.96.0.10 <none> 53/UDP,53/TCP,9153/TCP 13d
- 配置node节点dns
# 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
- hosts插件格式
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