# 在 Azure 中部署 EMQX

EMQX 是一款高性能的开源分布式物联网 MQTT 消息服务器,它提供了可靠、高效的消息传递功能。而 Azure Kubernetes Service(AKS)作为一种托管的 Kubernetes 服务,提供了便捷的容器化应用程序部署和管理能力。在本文中,我们将介绍如何利用 EMQX Operator 在 Azure AKS 上部署 EMQX,从而构建强大的物联网 MQTT 通信解决方案。

# 前提条件

在开始之前,您必须具备以下条件:

  • 要在 Azure 上创建一个 AKS 集群,您首先需要在您的 Azure 订阅中激活 AKS 服务。请参考 Azure Kubernetes 服务 (opens new window) 文档以获取更多信息。

  • 要使用 kubectl 命令连接到一个 AKS 集群,您可以在本地安装 kubectl 工具并获取集群的 KubeConfig 来连接到集群。或者,您可以通过 Azure 门户使用 Cloud Shell 来管理集群。

  • 要安装 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

  • 订阅消息

    $ 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
    
    1
    2
    3
    4
    5
    6
  • 创建一个新的终端窗口并发送消息

    $ 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
    
    1
    2
    3
    4
    5
    6
  • 在订阅终端窗口中查看接收到的消息

    [10:00:58] › payload: hello world
    
    1

# 使用 LoadBalancer 进行 TLS 终结

由于 Azure LoadBalancer 不支持 TCP 证书,请参阅这个文档 (opens new window)解决 TCP 证书卸载问题。