【发布时间】:2019-03-10 17:06:24
【问题描述】:
我有一个有两个副本的 statefulSet。 它的无头服务名称是 "gov-svc" 这是->
- .metadata.name: sts
- .metadata.namespace:默认
- .spec.serviceName: gov-svc
- .spec.template.spec.subdomain: gov-svc
- .spec.replicas: 2
在运行 statefulSet 之前
kubectl get pods --all-namespaces
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system coredns-99b9bb8bd-qdnsb 1/1 Running 0 4h
kube-system etcd-minikube 1/1 Running 0 4h
kube-system kube-addon-manager-minikube 1/1 Running 0 4h
kube-system kube-apiserver-minikube 1/1 Running 0 4h
kube-system kube-controller-manager-minikube 1/1 Running 1 4h
kube-system kube-proxy-b9np6 1/1 Running 0 4h
kube-system kube-scheduler-minikube 1/1 Running 0 4h
kube-system kubernetes-dashboard-7db4dc666b-bsk8k 1/1 Running 0 4h
kube-system storage-provisioner
在运行这个 statefulSet 的两个 pod 之后,来自 pod sts-0、ping 结果:
$ ping sts-0.gov-svc.default.svc.cluster.local
PING sts-0.gov-svc.default.svc.cluster.local (172.17.0.11): 56 data bytes
64 bytes from 172.17.0.11: seq=0 ttl=64 time=0.051 ms
64 bytes from 172.17.0.11: seq=1 ttl=64 time=0.444 ms
^C
--- redis-cluster-exp-0-0.redis-cluster-exp.default.svc.cluster.local ping statistics ---
2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max = 0.051/0.247/0.444 ms
但是当我尝试从sts-0 到ping sts-1 时,它说:
$ ping sts-1.gov-svc.default.svc.cluster.local
ping: bad address 'sts-1.gov-svc.default.svc.cluster.local'
我需要通过主机名成功 ping 其他 pod。我该怎么做?
【问题讨论】:
-
你的 kubernetes 版本是什么
-
我的 kubernetes 版本:1.11.3
-
@ShudiptaSharma 嗨。我知道,这个问题已经有一年了,但我今天也面临这个问题。你能告诉我,你是怎么解决这个问题的?这真的很有帮助。我的 statefulset pod 无法使用 fqdn 相互 ping,但通过 IP ping 正在发生。我也有无头服务,它正在工作。
-
@Nish 您的无头服务是否有任何选择器来选择 pod?或者它只是一个将
.spec.clusterIP设置为"None"的服务,用作Statefulset 的要求? -
@ShudiptaSharma,以下是我的情况。我有三个有状态的 pod,用于三个不同的任务,每个有三个正常的服务。这些服务具有选择器来选择相应的 pod。除了这 3 个服务之外,还有一个无头服务,我在 3 个 staefulset pod 下都给出了参考,使用
serviceName属性。另一件事是我使用了一个选择器,它在所有 pod 和无头服务中都很常见tier: backend
标签: kubernetes minikube kube-dns kubernetes-pod kubernetes-statefulset