# 在阿里云上部署 EMQX 集群

EMQX Operator 支持在阿里云容器服务 Kubernetes 版部署 EMQX。阿里云容器服务 Kubernetes 版(Alibaba Cloud Container Service for Kubernetes,简称容器服务 ACK)是全球首批通过 Kubernetes 一致性认证的服务平台,提供高性能的容器应用管理服务,支持企业级 Kubernetes 容器化应用的生命周期管理,让您轻松高效地在云端运行 Kubernetes 容器化应用。详情请查看 什么是容器服务 Kubernetes 版 (opens new window)

# 前提条件

在开始之前,你需要准备以下内容:

# 快速部署一个 EMQX 集群

下面是 EMQX 自定义资源的相关配置。你可以根据你想部署的 EMQX 版本选择相应的 APIVersion。关于具体的兼容性关系,请参考EMQX 与 EMQX Operator 的兼容性列表

# 使用 MQTT X CLI 连接 EMQX 集群发布/订阅消息

MQTT X CLI (opens new window) 是一款开源的 MQTT 5.0 命令行客户端工具,旨在帮助开发者在不需要使用图形化界面的基础上,也能更快的开发和调试 MQTT 服务与应用。

  • 获取 EMQX 集群的 External 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 加密

在使用 NLB 终结 TLS 流量之前,需要先创建一个 TLS 证书,阿里云的数字证书管理服务 (opens new window)控制台,可以导入自签名证书或者购买证书, 证书导入后点击证书详情,获取证书 ID。

由于每次重新创建 NLB 时,其关联的 DNS 域名会发生变化,如果采用自签名证书,为方便测试,这里建议将证书绑定的域名设置为*.cn-shanghai.nlb.aliyuncs.com

修改 EMQX Custom Resource 的配置,将相关的 annotations 添加到 EMQX Custom Resource 中,并更新 Service Template 中监听的端口。