我正在集群配置中设置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]应用程序vmq_server在节点'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:未知主机代理-vernemq-0
我觉得这应该有用吗?
对于kube-dns来说,服务必须是无头的,以便为这样的域名提供服务。见https://stackoverflow.com/a/46638059