通过 DNS Ping pods 状态集

Ping pods of a statefulset via DNS

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

echo "Will join an existing Kubernetes cluster with discovery node at 
${kube_pod_name}.${VERNEMQ_KUBERNETES_SUBDOMAIN}.${DOCKER_VERNEMQ_KUBERNETES_NAMESPACE}.svc.cluster.local"

不幸的是,日志表明这不起作用:

14:05:56.741 [info] Application vmq_server started on node 'VerneMQ@broker-vernemq-0.broker-vernemq.messaging.svc.cluster.local'

broker-vernemq-0 是 pod 的名称,broker-vernemq 是 statefulset 的名称。该服务配置为 LoadBalancer。

问题:

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

ping: unknown host broker-vernemq-0

我的印象是这应该有效?

服务必须是无头的,kube-dns 才能像这样为域名提供服务。参见