首页 文章

使pod DNS名称可在Kubernetes集群中解析

提问于
浏览
1

设置

名为frontend的部署的pod通过名为frontend的服务公开 .

NAME                          READY     STATUS    RESTARTS   AGE
po/frontend-b48b88789-dcxs6   1/1       Running   0          2h

NAME              DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
deploy/frontend   1         1         1            1           2h

NAME           TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)   AGE
svc/frontend   ClusterIP   10.106.243.125   <none>        80/TCP    2h

问题

通过busybox查询服务前端的DNS名称将返回服务IP地址 . 通过busybox查询pod frontend-b48b88789-dcxs6的DNS名称无法解析 .

/ # nslookup frontend
Server:    10.96.0.10
Address 1: 10.96.0.10 kube-dns.kube-system.svc.cluster.local

Name:      frontend
Address 1: 10.106.243.125 frontend.exam.svc.cluster.local
/ # nslookup frontend-b48b88789-dcxs6
Server:    10.96.0.10
Address 1: 10.96.0.10 kube-dns.kube-system.svc.cluster.local

nslookup: can't resolve 'frontend-b48b88789-dcxs6'

问题

我需要做些什么才能通过Kubernetes集群DNS系统解析pod?

来源我一直在寻找答案

1 回答

  • 1

    我认为,如果你真的需要这个,那么你真正感兴趣的是StatefulSet,它提供了一种有点静态的方式来引用由它调整的pod . 使用StatefulSet,您的pod将具有可预测的名称,如 myapp-0myapp-1 等,您将能够将它们解析为ie . myapp-0.mysvc (其中 mysvc 是有状态的"governing"服务)

    可预测的名称允许更容易地配置需要形成集群的事物,并且您可以获得其他收益,例如顺序扩展,持久存储的映射或创建始终命中StatefulSet的给定pod(如在pod数N中)的服务的能力,这意味着您例如,能够创建始终指向 myapp-0.mysvc pod的 myapp-0 服务 .

相关问题