云进入以「应用为中心」的云原生阶段,Operator 模式的出现,则为 Kubernetes 中的自动化任务创建配置与管理提供了一套行之有效的标准规范。通过将运维知识固化成高级语言 Go/Java 代码,使得运维知识可以像普通软件一样交付,并能支持高可靠、具备高级运维能力的有状态应用批量交付。 针对大规模分布式物联网 MQTT 消息服务器 EMQX 全生命期管理的自动化管理工具 EMQX Kubernetes Operator(本文中简称 EMQX Operator)应运而生。它作为 Kubernetes 上的自定义控制器运行,并与 Kubernetes API 服务器(kube-apiserver)进行通信,将高层描述转换为正常的 Kubernetes 资源,以保持所需的应用程序状态。 EMQX Operator 使 EMQX 的部署、调优和运维变成一种低成本、标准化、可重复性的能力,帮助用户高效实现集群扩容、无缝升级、故障处理和统一监控。 ![]() 本文章将以 EMQX 企业版为例,详细讲解如何使用 EMQX Operator 在华为云 CCE 公有云平台上创建部署 MQTT 服务集群,并实现自动化管理与监控。 云平台简介:华为云 CCE云容器引擎(Cloud Container Engine,简称CCE)提供高度可扩展的、高性能的企业级 Kubernetes 集群,支持运行 Docker 容器。借助云容器引擎,您可以在华为云上轻松部署、管理和扩展容器化应用程序,详见:成长地图云容器引擎 CCE华为云 创建 CCE 集群购买 CCE 集群登录华为云 CCE控制台,购买“Turbo 集群”或者“CCE 集群”,EMQX Operator 要求Kubernetes 版本>=1.20.0 ,因此我们在此选择 Kubernetes 1.21,网络与其他资源信息根据自身需求来制定。 ![]() 创建节点池(直接添加节点也可以)![]() 这里添加的节点必须可以访问外网(可以通过加 NAT 网关解决) 节点安装的操作系统建议是 Ubuntu,否则有可能会缺少必要的库(socat) ![]() 访问 Kubernetes 集群点击 Cloud Shell ![]() 详情参考:通过 kubectl 连接集群云容器引擎 CCE用户指南集群管理旧版UI访问集群华为云 StorageClass 配置查看当前的 StroageClass kubectl get sc ![]() 这里我们用 csi-disk。 使用 EMQX Operator 部署 EMQX 集群部署 cert-manager参考 cert-manager 安装文档:https:///docs/installation/ 部署 EMQX Operatorkubectl apply -f "https://github.com/emqx/emqx-operator/releases/download/1.2.6/emqx-operator-controller.yaml" 部署 EMQX 企业版集群这里 service type 采用 LoadBalancer cat << "EOF" | kubectl apply -f - Load Balancer参数说明
查看集群状态$ kubectl get pods EMQX Operator 和 EMQX 集群安装参考: https://github.com/emqx/emqx-operator/blob/main/docs/en_US/getting-started/getting-started.md 关于 LoadBalancer 终结 TLS由于华为 ELB 不支持 TCP 证书,所以请参考这篇文档解决 TCP 证书终结问题:https://github.com/emqx/emqx-operator/discussions/312 结语至此,我们完成了在华为云 CCE 上部署 EMQX 集群的全部流程。EMQX Operator 可以帮助用户在 Kubernetes 环境上快速创建和管理 EMQX 集群,不仅极大简化部署和管理流程,也降低了管理和配置的专业技能要求,是用户快速体验云原生的最佳选择。
|
|