16, k8s 之DNS

service 内部通过 ClusterIP 通信。ClusterIP 经常也是不固定的。
DNS服务监视Kubernetes API,为每一个Service创建DNS记录用于域名解析。

ClusterIP A记录格式:
	<service-name>.<namespace-name>.svc.cluster.local
	
	示例:my-svc.my-namespace.svc.cluster.local
	
	
	
[root@centos7 demo]# kubectl get svc -o wide
NAME         TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)        AGE   SELECTOR
kubernetes   ClusterIP   10.0.0.1     <none>        443/TCP        10d   <none>
web          NodePort    10.0.0.19    <none>        80:32045/TCP   47h   app=web
web-1        ClusterIP   10.0.0.151   <none>        80/TCP         47h   app=web
[root@centos7 demo]# 
[root@centos7 demo]# kubectl run -it --image=busybox:1.28.4 --rm --restart=Never sh
If you don't see a command prompt, try pressing enter.
/ # 
/ # nslookup kubernetes
Server:    10.0.0.2
Address 1: 10.0.0.2 kube-dns.kube-system.svc.cluster.local

Name:      kubernetes
Address 1: 10.0.0.1 kubernetes.default.svc.cluster.local
/ # 
/ # 
/ # nslookup web-1
Server:    10.0.0.2
Address 1: 10.0.0.2 kube-dns.kube-system.svc.cluster.local

Name:      web-1
Address 1: 10.0.0.151 web-1.default.svc.cluster.local
/ # 
/ # 

注释:
代码在处理的时候,通过CLUSTER-IP进行数据业务处理,但是如果服务down了,重新启动service,CLUSTER-IP就会随机分配一个,难道我们每次都要去修改配置文件里面的CLUSTER-IP吗?
那么就需要根据svc-name 和CLUSTER-IP 映射,无论CLUSTER-IP如何变化,我们在配置文件填写svc-name就可以了。这个实现就是通过coredns来实现的。

  

posted @ 2020-07-01 21:27  pwcc  阅读(166)  评论(0)    收藏  举报