通过DNS对有状态集的Ping Pod

时间:2018-09-04 14:35:22

标签: kubernetes kube-dns

我正在集群配置中设置VerneMQ(MQTT代理)。因此,我将在有状态集合中启动4个副本。显然,VerneMQ希望通过DNS与集群中的其他代理进行通信,如下所示:

.bars {
fill: green;
stroke: white;
stroke-width: 1;
}

不幸的是,日志表明这行不通:

  

14:05:56.741 [info]在节点上启动了应用程序vmq_server   'VerneMQ@broker-vernemq-0.broker-vernemq.messaging.svc.cluster.local'

echo "Will join an existing Kubernetes cluster with discovery node at ${kube_pod_name}.${VERNEMQ_KUBERNETES_SUBDOMAIN}.${DOCKER_VERNEMQ_KUBERNETES_NAMESPACE}.svc.cluster.local" 是Pod的名称,broker-vernemq-0是有状态集的名称。该服务被配置为LoadBalancer。

问题:

我通过终端连接到Pod broker-vernemq,并执行了broker-vernemq-1,我想知道它无法解析此主机名:

  

ping:未知主机代理-vernemq-0

我觉得这应该可行吗?

1 个答案:

答案 0 :(得分:1)

该服务必须是无头的,以便kube-dns可以为这样的域名提供服务。参见https://stackoverflow.com/a/46638059