配置k8s dns
DNS (domain name system),提供域名解析服务,解决了难于记忆的IP地址问题,以更人性可读可记忆可标识的方式映射对应IP地址。
Cluster DNS扩展插件用于支持k8s集群系统中各服务之间发现与调用。
组件:
•SkyDNS 提供DNS解析服务
•Etcd 存储DNS信息
•Kube2sky 监听kubernetes,当有Service创建时,生成相应的记录到SkyDNS。
1.修改所有node的配置文件:/etc/kubernetes/kubelet kubernetes-node1,kubernetes-node2,kubernetes-node3:
[root@kubernetes-node2 ~]# tail -n 1 /etc/kubernetes/kubelet
KUBELET_ARGS="--cluster-dns=10.254.254.254 --cluster-domain=cluster.local"
2.所有node节点都重新启动服务
systemctl restart kubelet.service
3.根据namespace分为不同的名称空间,将系统服务统一放到一个单独的空间:kube-system,由于默认空间只有default,我们首先要创建kube-system空间。
[root@kubernetes-master pods]# cat kube-system.yml
apiVersion: v1
kind: Namespace
metadata:
name: kube-system
4.在master服务器上编辑ReplicationController文件dns-rc.yml
dns-rc.yml
注意dns-rc.yml:修改文件中的master ip
dns service服务yml
dns-svc.yml
创建namespace(有就不用在创建了)
kubectl create -f kube-system.yml
创建ReplicationController
[root@kubernetes-master pods]# kubectl create -f dns-rc.yml
创建Service
[root@kubernetes-master pods]# kubectl create -f dns-svc.yml
查看dns-rc.yml文件中定义pod的启动状态,如下则启动成功。
[root@kubernetes-master pods]# kubectl get pod --namespace=kube-system
查看dns-svc.yml文件中定义的Service的信息。
[root@kubernetes-master pods]# kubectl get svc -l k8s-app=kube-dns --namespace=kube-system
测试DNS的效果。
部署一个busybox的Pod
busybox.yml
收起