【发布时间】:2021-10-06 21:12:23
【问题描述】:
我有一个看起来像这样的 k8 设置
ingress -> headless service (k8 service with clusterIp: none) -> statefulsets ( 2pods)
Fqdn 看起来像这样:
nslookup my-service
Server: 100.4.0.10
Address: 100.4.0.10#53
Name: my-service.my-namespace.svc.cluster.local
Address: 100.2.2.8
Name: my-service.my-namespace.svc.cluster.local
Address: 100.1.4.2
我正在尝试使用以下 fqdn 直接通过服务访问其中一个 pod,但无法这样做。
curl -I my-pod-0.my-service.my-namespace.svc.cluster.local:8222
curl: (6) Could not resolve host: my-pod-0.my-service.my-namespace.svc.cluster.local
如果我尝试直接访问该服务,那么它可以正常工作(作为负载均衡器)
curl -I my-service.my-namespace.svc.cluster.local:8222
HTTP/1.1 200 OK
Date: Sat, 31 Jul 2021 21:24:42 GMT
Content-Length: 656
如果我尝试使用它的集群 ip 直接访问 pod,它也可以正常工作
curl -I 100.2.2.8:8222
HTTP/1.1 200 OK
Date: Sat, 31 Jul 2021 21:29:22 GMT
Content-Length: 656
Content-Type: text/html; charset=utf-8
但我的用例要求我能够使用 fqdn 访问 statefulset pod,即 my-pod-0.my-service.my-namespace.svc.cluster.local 。我在这里错过了什么?
【问题讨论】:
标签: kubernetes dns kubernetes-ingress kubernetes-pod