kubernetes - Mosquitto Broker - MQTT 客户端使用 DNS 名称而不是 IP 地址
问题描述
我能够让 eclipse mosquitto 代理启动并运行,MQTT 客户端能够使用代理的 IP 地址与代理通信。但是,正如我在 kubernetes 上运行这些,代理 IP 在重新启动时会不断变化。我想为代理启用 DNS 名称服务,以便客户端可以使用代理名称而不是 IP。coreDNS 在 kubernetes 中默认运行。
关于可以做什么的任何建议?
$ nslookup kubernetes.default
Server: 10.43.0.10
Address: 10.43.0.10:53
** server can't find kubernetes.default: NXDOMAIN
** server can't find kubernetes.default: NXDOMAIN
解决方案
全部,
感谢您回答查询,特别是 Thomas 的代码指针。根据您的建议,一旦我为 POD 创建了一个服务,我就能够让 DNS 工作,因为 core-dns 已经在运行.. 之后我也能够在 MQTT 代理中使用主机名。
opts.AddBroker(fmt.Sprintf("tcp://mqtt-broker:1883"))
apiVersion: v1
kind: Service
metadata:
creationTimestamp: "2021-02-01T19:08:46Z"
labels:
app: ipc
name: mqtt-broker
namespace: default
顺便说一句,我无法让无头服务工作,遇到了这个错误,所以继续使用 ClusterIP 本身 + MQTT 的 1883 暴露端口。请问有什么建议吗?
`services "mqtt-broker" was not valid:`
`spec.clusterIPs[0]: Invalid value: []string{"None"}: may not change once set`
推荐阅读
- python - python 3.5中的for循环问题for循环不按顺序打印字典键
- javascript - Safari SVG 到带有嵌入字体的画布
- python - 你将如何在 python 中为 threadpoolexecutor 传递两个参数?
- java - 键值在处理 Android 模式下无法正常工作
- spring - 使用 multipart/form-data 内容类型的 HTTP POST 假装日志记录
- opc-ua - OPC UA 连接到 IP 地址(无法解析主机名时)
- javascript - 在 JS 中监听事件
- git - 不要使用 git push 覆盖服务器上的特定目录
- bash - 为我的 EC2 实例运行用户数据时,我无法安装任何东西
- java - 使用 Redis 进行 Java 继承