Kubernetes Can';在minikube上按主机名ping其他pod
我有一个有两个副本的状态集。 它的无头服务名称是“gov svc” 它是->Kubernetes Can';在minikube上按主机名ping其他pod,kubernetes,minikube,kube-dns,kubernetes-pod,kubernetes-statefulset,Kubernetes,Minikube,Kube Dns,Kubernetes Pod,Kubernetes Statefulset,我有一个有两个副本的状态集。 它的无头服务名称是“gov svc” 它是-> .metadata.name:sts .metadata.namespace:默认值 .spec.serviceName:gov svc .spec.template.spec.subdomain:gov svc .规格副本:2份 在运行statefolset之前 kubectl get pods --all-namespaces NAMESPACE NAME
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
运行此状态集的两个pod后,从podsts-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。如何操作?您需要创建
无头服务
,以便能够在状态集
内将副本相互ping。比如:
apiVersion: v1
kind: Service
metadata:
name: gov-svc-headless
labels:
your_label: your_value
spec:
selector:
your_label: your_value
ports:
- port: your_port
name: transport
protocol: TCP
clusterIP: None <---
apiVersion:v1
种类:服务
元数据:
姓名:gov svc无头
标签:
您的_标签:您的_值
规格:
选择器:
您的_标签:您的_值
端口:
-港口:你的港口
名称:运输
协议:TCP
clusterIP:None您需要创建
无头服务
,以便能够在状态集
内将副本从一个ping到另一个。比如:
apiVersion: v1
kind: Service
metadata:
name: gov-svc-headless
labels:
your_label: your_value
spec:
selector:
your_label: your_value
ports:
- port: your_port
name: transport
protocol: TCP
clusterIP: None <---
apiVersion:v1
种类:服务
元数据:
姓名:gov svc无头
标签:
您的_标签:您的_值
规格:
选择器:
您的_标签:您的_值
端口:
-港口:你的港口
名称:运输
协议:TCP
clusterIP:无你的kubernetes版本是什么我的kubernetes版本:1.11。3@ShudiptaSharma嗨,我知道,这个问题已经过去一年了,但我今天也面临着这个问题。你能告诉我你是怎么解决的吗?这真的很有帮助。我的状态集播客无法使用fqdn相互ping,但正在通过IP ping进行ping。我的无头服务也在工作。@Nish您的无头服务是否有任何选择器来选择播客?或者它只是一个将
.spec.clusterIP
设置为“None”
的服务,用作Statefulset的要求?@ShudiptaSharma,下面是我的例子。我有三个有状态的吊舱,用于三种不同的任务,每个吊舱上有三个正常的服务。这些服务都有选择器来选择相应的POD。在这3个服务之上,还有一个无头服务,我使用serviceName
attribue在3个staveSetpod下给出了它的参考。还有一件事,我使用了一个选择器,它在所有POD和无头服务中都是通用的tier:backend
What's your kubernetes versionmy kubernetes version:1.11。3@ShudiptaSharma嗨,我知道,这个问题已经过去一年了,但我今天也面临着这个问题。你能告诉我你是怎么解决的吗?这真的很有帮助。我的状态集播客无法使用fqdn相互ping,但正在通过IP ping进行ping。我的无头服务也在工作。@Nish您的无头服务是否有任何选择器来选择播客?或者它只是一个将.spec.clusterIP
设置为“None”
的服务,用作Statefulset的要求?@ShudiptaSharma,下面是我的例子。我有三个有状态的吊舱,用于三种不同的任务,每个吊舱上有三个正常的服务。这些服务都有选择器来选择相应的POD。在这3个服务之上,还有一个无头服务,我使用serviceName
attribue在3个staveSetpod下给出了它的参考。还有一件事,我使用了一个选择器,它在所有POD和无头服务中都很常见tier:backend