本文介绍 Kubernetes 集群中 DNS 服务发现原理。
前提需要
- 拥有一个 Kubernetes 集群(可以通过 ACK 创建一个 Kubernetes 集群)
- 能通过 kubectl 连接 Kubernetes 集群
集群 DNS 服务
Kubernetes 集群中部署了一套 DNS 服务,通过 kube-dns 的服务名暴露 DNS 服务。您可执行以下命令查看 kube-dns 的服务详情。
kubectl get svc kube-dns -n kube-system
输出:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kube-dns ClusterIP 172.24.0.10 <none> 53/UDP,53/TCP,9153/TCP 27d
服务后端是两个名为 coredns(下文会介绍 CoreDNS 解析原理) 的 Pod。您可执行以下命令查看 coredns 的 Pod 详情。
kubectl get deployment coredns -n kube-system
输出:
NAME READY UP-TO-DATE AVAILABLE AGE
coredns 2/2 2 2 27d
<