如何通过kubernetes dns 找到service 的port
用kubernetes 的skydns 搭建 了一个DNS服务,
kubectl describe service --namespace=kube-system
Name: kube-dns
Namespace: kube-system
Labels: k8s-app=kube-dns,kubernetes.io/cluster-service=true,kubernetes.io/name=KubeDNS
Selector: k8s-app=kube-dns
Type: ClusterIP
IP: 10.254.217.196
Port: dns 53/UDP
Endpoints: 172.17.60.3:53
Port: dns-tcp 53/TCP
Endpoints: 172.17.60.3:53
Session Affinity: None
No events.
现在可以通过DNS 找到service的IP,但是端口貌似找不到,
kubectl exec busybox -- nslookup _dns-tcp._tcp.kube-dns.kube-system
Server: 10.254.217.196
Address 1: 10.254.217.196
Name: _dns-tcp._tcp.kube-dns.kube-system
Address 1: 10.254.217.196
这个SRV 记录只找到了IP ,端口并没有显示,不知为什么
2 个回复
徐新坤 - 京东商城-TIG-JDOS团队
赞同来自: styshoo
dns本来就只是域名解析,实现的是从域名到ip的解析转换,与端口无关。
xiphis
赞同来自:
为什么要找到端口? 启动service难道不预先配置端口。
如果是nodeport方式,那么直接api取端口信息吧,或者从etcd的api去取。