在华为云 OSC 上快速部署 EMQX MQTT 集群

本文涉及的产品
网络型负载均衡 NLB,每月750个小时 15LCU
传统型负载均衡 CLB,每月750个小时 15LCU
应用型负载均衡 ALB,每月750个小时 15LCU
简介: 本文将介绍如何使用EMQX Kubernetes Operator在华为云OSC上快速发布并提供基于大规模分布式物联网消息服务器EMQX的MQTT订阅服务,实现运维的代码化、自动化、智能化。

EMQX Kubernetes Operator 是 EMQ 发布的一个封装、部署和管理工具,也是一个特定的应用控制器,方便 DevOps 人员在 Kubernetes 上编排 EMQX MQTT 消息服务集群,管理其生命周期。

华为云原生基础设施(云容器引擎 CCE、容器镜像服务 SWR、容器洞察引擎 CIE、智能边缘平台 IEF 等)通过云原生服务中心 (Operator Service Center,OSC) 对外开放云原生能力,包括弹性伸缩、多云部署、云边协同、应用级自动化运维等,全面支持企业架构云原生化。

本文将介绍如何使用 EMQX Operator 在 OSC 上快速发布并提供基于大规模分布式物联网消息服务器 EMQX 的 MQTT 订阅服务,实现运维的代码化、自动化、智能化。

OSC 介绍

OSC 是华为云面向服务提供商和服务使用者的云原生服务生命周期治理平台,提供大量开箱即用的云原生服务,支持服务的开发、发布、订阅、部署、升级、更新等,帮助用户简化云原生服务的生命周期管理。

商品服务生命周期 图1.png

OSC 具有以下优势:

  • 开箱即用

    OSC 联合生态伙伴提供了大量开箱即用的云原生服务,包括数据库、消息、缓存等通用中间件,以及新技术领域的 AI、大数据、高性能计算、边缘等应用,用户可以根据业务需要订阅。

  • 全域部署

    随着业务的发展,企业使用云服务部署场景在横向和纵向上都在不断拓展,横向上跨云部署成为业务常态,纵向上服务全域部署能力变得越来越重要,从核心区域和热点区域一直延伸到本地机房和业务现场。通过 OSC,用户可以将服务部署到与华为云连接的基础设施,例如部署在公有云不同 region 的容器集群和边缘集群。

  • 高效开发、自动运维

    容器化只是服务云原生化的第一步,服务部署之后需要治理,不仅包括监控、日志、告警等基本运维能力,还包括弹性伸缩、数据备份恢复、故障迁移、故障恢复等高级运维能力,这些能力是服务高 SLA 的必要条件。OSC 提供开箱即用的云原生运维能力,支持服务声明式对接,无需修改业务代码。

  • 应用级视图

    传统的运维方式应用比较原始,都聚焦在资源层级,没有应用统一视图。OSC 在实例详情页面可以查看本实例状态信息、配置信息、日志、监控信息,方便用户在一个页面查看实例相关的基础信息,无需切换到不同的运维平台。

  • 兼容社区服务规范

    OSC 服务规范兼容 Helm 和 Operator Framework 社区服务规范,Helm 和 Operator framework 是Kubernetes 生态中最常用的服务管理方式,很多已有的服务都是基于这两种方式开发,为了方便这些已有服务快速发布或者快速迁移到 OSC,使用 OSC 管理,OSC 的服务规范兼容 Helm 和 Operator Framework。

OSC 与其他华为云服务的关系 图2.png

EMQX 介绍

EMQX 企业版介绍

EMQX 企业版是一款「随处运行,无限连接,任意集成」企业级 MQTT 物联网接入平台,提供一体化的分布式 MQTT 消息服务和强大的 IoT 规则引擎,为高可靠、高性能的物联网实时数据移动、处理和集成提供动力,助力企业快速构建关键业务的 IoT 平台与应用。

EMQX 企业版 图3.png

其具有如下特性:

  • 多协议支持

    通过 MQTT、CoAP、LwM2M、WebSocket 或专有协议连接任何设备。

  • 一站式接入

    将大规模分布式的 MQTT Broker 与强大的内置 IoT 规则引擎相结合。

  • 关键业务可靠性

    为关键业务的物联网应用提供可靠的高性能数据移动、处理与集成。

  • 灵活数据集成

    轻松、灵活地集成物联网数据到 Kafka、RDS,以及 SAP 等企业系统。

EMQX Operator 介绍

Kubernetes Operator 是一种封装、部署和管理 Kubernetes 应用的方法。它使部署和运行应用所依赖的基础服务变得更简单。

EMQX Operator 图4.png

EMQX Operator 实现了对 EMQX 生命周期的管理,其具有如下特性:

  • 动态更新 EMQX 集群

    EMQX 集群运行时,更改集群实例配置,无需手动重启实例,服务无中断完成配置更新

  • 弹性高可用

    可以在不中断业务的情况下扩展 EMQX 集群

  • 热更新

    EMQX Operator 可以在不中断服务的情况下,帮助您快速、安全地升级 EMQX 集群

  • 运维简单

    EMQX Operator 可以对接 Prometheus,同时也支持把监控指标导出到 Prometheus 中

在 OSC 上部署 EMQX 服务

部署环境说明:

  • CCE 节点的操作系统为 Ubuntu
  • CCE 节点的规格 ≥ 2C8G
  • CCE 节点可以访问外网
:这里的价格只是为了演示,不是真实的价格

订阅 cert-manager

查找服务

登录 OSC 控制台,在服务目录中输入cert-manager,找到 cert-manager 证书管理。

查找服务 图5.png

订阅和购买

进入 cert-manager 证书管理,点击“订阅”。

订阅和购买 图6.png

点击“立即购买”。

立即购买 图7.png

完成支付。

完成支付 图8.png

最终在“已购买的服务”里面会显示刚刚的购买的 cert-manager。

已购买的服务 图9.png

部署 cert-manager

创建实例

在“我的服务”点击创建实例

点击创建实例 图10.png

填写基本信息

选择容器集群和选择要部署的命名空间,如果显示不存在则点击“创建容器集群”或者“创建命名空间”,然后选择下一步。

注:确保容器集群的节点可以访问外网

填写基本信息 图11.png

填写实例参数

选中”installCRDs“,然后选择下一步。

填写实例参数 图12.png

确认信息并提交

确认信息并提交 图13.png

稍等片刻,可以看到 cert-manager 服务实例创建成功。

服务实例创建成功 图14.png

订阅 EMQX Operator

查找服务

在“服务目录”中输入 emqx,找到 EMQX 消息中间件 Operator。

查找服务 图15.png

订阅和购买

进入 EMQX 消息中间件 Operator,点击“订阅”。

订阅和购买 图16.png

点击“立即购买”。

立即购买 图17.png

完成支付。

完成支付 图18.png

最终在“已购买的服务”里面会显示刚刚的购买的 EMQX 消息中间件 Operator。

已购买的服务 图19.png

部署 EMQX Operator

创建实例

在“我的服务”中点击“创建实例”。
创建实例 图20.png

填写基本信息

选择容器集群和选择要部署的命名空间,如果不存在则点击“创建容器集群”或者“创建命名空间”,然后选择下一步。

注:确保容器集群的节点可以访问外网

填写基本信息 图21.png

填写实例参数

选中”installCRDs“,然后选择下一步

填写实例参数 图22.png

确认信息并提交

确认信息并提交 图23.png

稍等片刻,EMQX 消息中间件 Operator 实例就可以成功创建。

Operator 实例创建成功 图24.png

查看实例信息

点击 emqx operator 服务。

点击 emqx operator 服务 图25.png

可以看到服务的基本信息。

服务的基本信息 图26.png

部署 EMQX 企业版实例

连接”云容器引擎”

登陆云容器引擎 CCE,在”集群管理“下点击进入集群。

点击进入集群 图27.png

在集群信息中,点击“CloudShell”图标,连接集群

连接集群 图28.png

部署 EMQX 企业版实例

实例的 yaml 文件如下:

cat << "EOF" | kubectl apply -f -
apiVersion: apps.emqx.io/v1beta3
kind: EmqxEnterprise
metadata:
  name: emqx-ee
  labels:
    "foo": "bar"
spec:
  persistent:
    storageClassName: csi-disk
    resources:
      requests:
        storage: 1Gi
    accessModes:
    - ReadWriteOnce
  emqxTemplate:
    image: emqx/emqx-ee:4.4.5
    serviceTemplate:
      metadata:
        annotations:
          kubernetes.io/elb.pass-through: "true"
          kubernetes.io/elb.class: union
          kubernetes.io/elb.autocreate:
              '{
                "type": "public",
                "name": "emqx",
                "bandwidth_name": "cce-emqx",
                "bandwidth_chargemode": "bandwidth",
                "bandwidth_size": 200,
                "bandwidth_sharetype": "PER",
                "eip_type": "5_bgp"
              }'
      spec:
        type: LoadBalancer
EOF

检查 EMQX 企业版状态

kubectl get pods
kubectl exec -it emqx-ee-0 -c emqx -- emqx_ctl status
kubectl exec -it emqx-ee-0 -c emqx -- emqx_ctl cluster status

检查 EMQX 企业版状态 图29.png

连接 EMQX 企业版

连接 EMQX 企业版 图30.png

用户名:admin 密码:public Dashboard: ${EXTERNAL-IP}:18083

连接 EMQX 企业版 图31.png

总结

OSC 兼容 Helm、Operator Framework 等第三方生态作为服务包,可以降低已有业务搬迁的门槛,实现从服务开发、基本服务实例部署到后续实例生命周期维护和运维操作的完整覆盖。通过 OSC 平台,服务提供商可以方便快捷地发布服务,服务使用者则只需要订阅和部署,实现开箱即用。

而 EMQX Operator 提供了对 EMQX 的全生命周期管理,除了对持久化数据进行备份和恢复的基础能力,害提供了对 EMQX Plugin 的独立部署、管理、配置持久化能力。用户可以动态更新 Licence 和 SSL 等,实现包括高可用、扩容、异常处理的自动化运维。

OSC 与 EMQX Operator 的结合,为用户提供了一种更加便捷的选择,极大降低了 EMQX 企业版的部署和运维成本。

版权声明: 本文为 EMQ 原创,转载请注明出处。

原文链接:https://www.emqx.com/zh/blog/deploying-mqtt-cluster-on-huawei-cloud-osc

相关实践学习
快速体验阿里云云消息队列RocketMQ版
本实验将带您快速体验使用云消息队列RocketMQ版Serverless系列实例进行获取接入点、创建Topic、创建订阅组、收发消息、查看消息轨迹和仪表盘。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
目录
相关文章
|
1月前
|
消息中间件 Ubuntu Java
SpringBoot整合MQTT实战:基于EMQX实现双向设备通信
本教程指导在Ubuntu上部署EMQX 5.9.0并集成Spring Boot实现MQTT双向通信,涵盖服务器搭建、客户端配置及生产实践,助您快速构建企业级物联网消息系统。
470 1
|
3月前
|
物联网 Linux 开发者
快速部署自己私有MQTT-Broker-下载安装到运行不到一分钟,快速简单且易于集成到自己项目中
本文给物联网开发的朋友推荐的是GMQT,让物联网开发者快速拥有合适自己的MQTT-Broker,本文从下载程序到安装部署手把手教大家安装用上私有化MQTT服务器。
1014 5
|
4月前
|
消息中间件 存储 Kafka
一文带你从入门到实战全面掌握RocketMQ核心概念、架构部署、实践应用和高级特性
本文详细介绍了分布式消息中间件RocketMQ的核心概念、部署方式及使用方法。RocketMQ由阿里研发并开源,具有高性能、高可靠性和分布式特性,广泛应用于金融、互联网等领域。文章从环境搭建到消息类型的实战(普通消息、延迟消息、顺序消息和事务消息)进行了全面解析,并对比了三种消费者类型(PushConsumer、SimpleConsumer和PullConsumer)的特点与适用场景。最后总结了使用RocketMQ时的关键注意事项,如Topic和Tag的设计、监控告警的重要性以及性能与可靠性的平衡。通过学习本文,读者可掌握RocketMQ的使用精髓并灵活应用于实际项目中。
3002 9
 一文带你从入门到实战全面掌握RocketMQ核心概念、架构部署、实践应用和高级特性
|
4月前
|
消息中间件 监控 Docker
Docker环境下快速部署RabbitMQ教程。
就这样,你成功地用魔法召唤出了RabbitMQ,还把它和你的应用程序连接了起来。现在,消息会像小溪流水一样,在你的系统中自由流淌。别忘了,兔子们不喜欢孤独,他们需要你细心的关怀,不时地监控它们,确保他们的世界运转得井井有条。
268 18
|
5月前
|
物联网
(手把手)在华为云、阿里云搭建自己的物联网MQTT消息服务器,免费IOT平台
本文介绍如何在阿里云搭建自己的物联网MQTT消息服务器,并使用 “MQTT客户端调试工具”模拟MQTT设备,接入平台进行消息收发。
2046 42
|
7月前
|
边缘计算 负载均衡 NoSQL
FreeMQTT Plus: 一个新型 MQTT Broker 集群的实现
FreeMQTT Plus 是一款基于 MQTT 协议的高性能消息中间件,采用分布式架构解决单点瓶颈问题。其核心由 Nginx 负载均衡器、黑(A)节点(MQTT Broker)、白(B)节点(消息路由)和日志(L)节点组成。通过无主从设计,支持高可用性、负载均衡与灵活扩展。针对会话同步、消息路由等挑战,FreeMQTT Plus 利用 MQTT5 特性定义元命令,实现节点间高效通信,无需依赖第三方组件。适用于物联网海量设备接入与高并发场景,为未来边缘计算和多级集群部署提供坚实基础。
1265 74
|
8月前
|
消息中间件 监控 RocketMQ
Docker部署RocketMQ5.2.0集群
本文详细介绍了如何使用Docker和Docker Compose部署RocketMQ 5.2.0集群。通过创建配置文件、启动集群和验证容器状态,您可以快速搭建起一个RocketMQ集群环境。希望本文能够帮助您更好地理解和应用RocketMQ,提高消息中间件的部署和管理效率。
1105 91
|
6月前
|
消息中间件 Java 中间件
RocketMQ实战—2.RocketMQ集群生产部署
本文主要介绍了大纲什么是消息中间件、消息中间件的技术选型、RocketMQ的架构原理和使用方式、消息中间件路由中心的架构原理、Broker的主从架构原理、高可用的消息中间件生产部署架构、部署一个小规模的RocketMQ集群进行压测、如何对RocketMQ集群进行可视化的监控和管理、进行OS内核参数和JVM参数的调整、如何对小规模RocketMQ集群进行压测、消息中间件集群生产部署规划梳理。
RocketMQ实战—2.RocketMQ集群生产部署
|
10月前
|
消息中间件 存储 运维
2024最全RabbitMQ集群方案汇总
本文梳理了RabbitMQ集群的几种方案,主要包括普通集群、镜像集群(高可用)、Quorum队列(仲裁队列)、Streams集群模式(高可用+负载均衡)和插件方式。重点介绍了每种方案的特点、优缺点及适用场景。搭建步骤包括安装Erlang和RabbitMQ、配置集群节点、修改hosts文件、配置Erlang Cookie、启动独立节点并创建集群,以及配置镜像队列以提高可用性和容错性。推荐使用Quorum队列与Streams模式,其中Quorum队列适合高可用集群,Streams模式则同时支持高可用和负载均衡。此外,还有Shovel和Federation插件可用于特定场景下的集群搭建。
2040 2
|
10月前
|
消息中间件 监控 Java
如何将Spring Boot + RabbitMQ应用程序部署到Pivotal Cloud Foundry (PCF)
如何将Spring Boot + RabbitMQ应用程序部署到Pivotal Cloud Foundry (PCF)
160 6