k8s支持两种资源发现机制,环境变量和DNS,当有很多service时,环境变量会变得复杂,可以使用DNS服务
资源下载并解压
wget https://www.qstack.com.cn/skydns.zip
unzip skydns.zip
修改配置
vim skydns-rc.yaml
85 - --kube-master-url=http://192.168.1.23:8080
第85行ip改为自己的即可
创建这两个pod
kubectl create -f skydns-rc.yaml
kubectl create -f skydns-svc.yaml
要想所有节点都使用dns服务,需要修改配置文件
修改各节点上的/etc/kubenetes/kubelet配置文件,增加如下:
KUBELET_ARGS="--cluster_dns=10.254.230.254--
cluster_domain=cluster.local"
重启各个节点kubelet:
systemctl restart kubelet.service
检验dns是否生效
创建测试pod
kubectl create -f test_dns_pod.yaml
进入测试pod
kubectl exec -it busybox2 sh
域名解析测试
nslookup test