Skip to content

在华为云上部署 EMQX 集群

EMQX Operator 支持在华为云容器引擎(Cloud Container Engine,简称 CCE)部署 EMQX。云容器引擎提供高度可扩展的、高性能的企业级 Kubernetes 集群,支持运行 Docker 容器。借助云容器引擎,您可以在华为云上轻松部署、管理和扩展容器化应用程序。

云容器引擎深度整合高性能的计算(ECS/BMS)、网络(VPC/EIP/ELB)、存储(EVS/OBS/SFS)等服务,并支持 GPU、NPU、ARM 等异构计算架构,支持多可用区(Available Zone,简称 AZ)、多区域(Region)容灾等技术构建高可用 Kubernetes 集群。关于更多云容器引擎 CCE 产品介绍,请查看 什么是云容器引擎

前提条件

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

  • 开通华为云容器服务,并创建一个 CCE 集群。具体请参考:创建 CCE 集群

    TIP

    Kubernetes 集群节点必须可以访问外网(可以通过加 NAT 网关解决),否则无法拉取除容器镜像服务(SoftWare Repository)外的第三方镜像

    TIP

    Kubernetes 集群节点的操作系统建议选择 Ubuntu,否则有可能会缺少必要的库(socat)

  • 通过 kubectl 命令连接 CCE 集群,你可以在本地安装 kubectl 工具,并获取集群的 KubeConfig 来连接集群,或是在容器服务 CCE 控制台上利用 CloudShell 通过 kubectl 管理集群。

  • 安装 EMQX Operator:具体请参考:安装 EMQX Operator

快速部署一个 EMQX 集群

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

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

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

  • 获取 EMQX 集群的 External IP

  • 订阅消息

    bash
    $ 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
  • 创建一个新的终端窗口并发布消息

    bash
    $ 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
  • 查看订阅终端窗口收到的消息

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

关于 LoadBalancer 终结 TLS

由于华为 ELB 不支持 TCP 证书,所以请参考文档终结 TLS解决 TCP 证书终结问题。