在 Azure 中部署 EMQX
EMQX 是一款高性能的开源分布式物联网 MQTT 消息服务器,它提供了可靠、高效的消息传递功能。而 Azure Kubernetes Service(AKS)作为一种托管的 Kubernetes 服务,提供了便捷的容器化应用程序部署和管理能力。在本文中,我们将介绍如何利用 EMQX Operator 在 Azure AKS 上部署 EMQX,从而构建强大的物联网 MQTT 通信解决方案。
前提条件
在开始之前,您必须具备以下条件:
要在 Azure 上创建一个 AKS 集群,您首先需要在您的 Azure 订阅中激活 AKS 服务。请参考 Azure Kubernetes 服务 文档以获取更多信息。
要使用 kubectl 命令连接到一个 AKS 集群,您可以在本地安装 kubectl 工具并获取集群的 KubeConfig 来连接到集群。或者,您可以通过 Azure 门户使用 Cloud Shell 来管理集群。
- 要使用 kubectl 连接到一个 AKS 集群,您需要在您的本地机器上安装并配置 kubectl 工具。请参考 连接到一个 AKS 集群 文档。
- 要使用 CloudShell 连接到一个 AKS 集群,使用 Azure CloudShell 连接到 AKS 集群并使用 kubectl 管理集群。请参考 在 Azure CloudShell 中管理一个 AKS 集群 文档,了解如何连接到 Azure CloudShell 和使用 kubectl 的详细说明。
要安装 EMQX Operator,请参考 安装 EMQX Operator。
快速部署一个 EMQX 集群
以下是 EMQX Custom Resource 的相关配置。您可以根据您想要部署的 EMQX 版本选择相应的 APIVersion。具体的兼容关系,请参考 EMQX Operator 兼容性:
使用 MQTT X CLI 连接到 EMQX 集群以发布/订阅消息
MQTT X CLI 是一个开源的 MQTT 5.0 命令行客户端工具,旨在帮助开发者无需 GUI 即可更快地开发和调试 MQTT 服务和应用。
获取 EMQX 集群的外部 IP
订阅消息
shell$ mqttx sub -t 'hello' -h ${external_ip} -p 1883 [10:00:25] › … Connecting... [10:00:25] › ✔ Connected [10:00:25] › … Subscribing to hello... [10:00:25] › ✔ Subscribed to hello
创建一个新的终端窗口并发送消息
shell$ mqttx pub -t 'hello' -h ${external_ip} -p 1883 -m 'hello world' [10:00:58] › … Connecting... [10:00:58] › ✔ Connected [10:00:58] › … Message Publishing... [10:00:58] › ✔ Message published
在订阅终端窗口中查看接收到的消息
shell[10:00:58] › payload: hello world
使用 LoadBalancer 进行 TLS 终结
由于 Azure LoadBalancer 不支持 TCP 证书,请参阅这个文档解决 TCP 证书卸载问题。