Kubernetes Can';在minikube上按主机名ping其他pod

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

我有一个有两个副本的状态集。 它的无头服务名称是“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                                    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后,从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。如何操作?

    您需要创建
    无头服务
    ,以便能够在
    状态集
    内将副本相互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