在 Azure AKS 上部署 EMQX MQTT 服务器集群

本文涉及的产品
网络型负载均衡 NLB,每月750个小时 15LCU
传统型负载均衡 CLB,每月750个小时 15LCU
应用型负载均衡 ALB,每月750个小时 15LCU
简介: 本文章将以EMQX企业版为例,详细讲解如何使用EMQX Kubernetes Operator在Azure AKS公有云平台上创建部署MQTT服务集群,并实现自动化管理与监控。

云进入以「应用为中心」的云原生阶段,Operator 模式的出现,为 Kubernetes 中的自动化任务创建配置与管理提供了一套行之有效的标准规范。针对大规模分布式物联网 MQTT 消息服务器 EMQX 全生命期管理的自动化管理工具 EMQX Kubernetes Operator(本文中简称 EMQX Operator)应运而生。

EMQX Operator 使 EMQX 的部署、调优和运维变成一种低成本、标准化、可重复性的能力,帮助用户高效实现集群扩容、无缝升级、故障处理和统一监控。

部署 MQTT 集群 图1.png

本文章将以 EMQX 企业版为例,详细讲解如何使用 EMQX Operator 在 Azure AKS 公有云平台上创建部署 MQTT 服务集群,并实现自动化管理与监控。

云平台简介:Azure AKS

AKS: Azure Kubernetes 服务 (AKS) 通过将操作开销卸载到 Azure,简化了在 Azure 中部署托管 Kubernetes 群集的过程。 作为一个托管的 Kubernetes 服务,Azure 可以自动处理运行状况监视和维护等关键任务。 由于 Kubernetes 主节点由 Azure 管理,因此用户只需要管理和维护代理节点。详见:Introduction to Azure Kubernetes Service - Azure Kubernetes Service

创建 AKS 集群

创建 Kubernetes 群集

登录Azure Kubernetes 服务,选择创建 Kubernetes 集群,注意EMQX Operator 要求Kubernetes 版本>=1.20.0

创建 Kubernetes 群集 图2.png

其他根据需要配置

创建 Kubernetes 群集 2 图3.png

点击创建,完成创建 Kubernetes 集群

访问 Kubernetes 集群

建议通过 Azure 提供的 Cloud Shell 连接

访问 Kubernetes 集群 图4.png

StorageClass 配置

这里采用 NSF 文件存储。其他 StorageClass 可参考:Use Container Storage Interface (CSI) driver for Azure Files on Azure Kubernetes Service (AKS) - Azure Kubernetes Service

创建 StroageClass

cat << "EOF" | kubectl apply -f -
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: azurefile-csi-nfs
provisioner: file.csi.azure.com
allowVolumeExpansion: true
parameters:
  protocol: nfs
mountOptions:
  - nconnect=8
EOF

查看该 StroageClass 是否创建成功

kubectl get sc

查看该 StroageClass 是否创建成功 图5.png

使用 EMQX Operator 部署 EMQX 集群

部署 cert-manager

参考cert-manager安装文档:Installation

部署 EMQX Operator

kubectl 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 -
apiVersion: apps.emqx.io/v1beta3
kind: EmqxEnterprise
metadata:
  name: emqx-ee
  labels:
    "foo": "bar"
spec:
  replicas: 3
  persistent:
     storageClassName: azurefile-csi-nfs
     resources:
       requests:
         storage: 4Gi
     accessModes:
     - ReadWriteOnce
  emqxTemplate:
    image: emqx/emqx-ee:4.4.6
    serviceTemplate:
      spec:
        type: LoadBalancer
EOF

查看集群状态

$ kubectl get pods  
NAME              READY   STATUS    RESTARTS   AGE  
emqx-ee-0   2/2     Running   0          22m  
emqx-ee-1   2/2     Running   0          22m  
emqx-ee-2   2/2     Running   0          22m  

$ kubectl exec -it emqx-ee-0 -c emqx -- emqx_ctl status  
Node 'emqx-ee@emqx-ee-0.emqx-ee-headless.default.svc.cluster.local' 4.4.7 is started  

$ kubectl exec -it emqx-ee-0 -c emqx -- emqx_ctl cluster status  
Cluster status: #{running_nodes =>
                   ['emqx-ee@emqx-ee-0.emqx-ee-headless.default.svc.cluster.local',
                    'emqx-ee@emqx-ee-1.emqx-ee-headless.default.svc.cluster.local',
                    'emqx-ee@emqx-ee-2.emqx-ee-headless.default.svc.cluster.local'],
               stopped_nodes => []}

EMQX Operator 和 EMQX 集群安装参考

关于 LoadBalancer 终结 TLS

由于 Azure LoadBalancer 不支持 TCP 证书,所以请参考这篇文档解决 TCP 证书终结问题:LB 终结 mTLS 方案

结语

至此,我们完成了在 Azure AKS 上部署 EMQX 集群的全部流程。EMQX Operator 可以帮助用户在 Kubernetes 环境上快速创建和管理 EMQX 集群,不仅极大简化部署和管理流程,也降低了管理和配置的专业技能要求,是用户快速体验云原生的最佳选择。

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

原文链接:https://www.emqx.com/zh/blog/deploying-mqtt-cluster-on-azure-aks

相关实践学习
快速体验阿里云云消息队列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月前
|
弹性计算 安全 Linux
使用阿里云服务器安装Z-Blog博客网站流程,新手一键部署教程
本教程教你如何在阿里云99元服务器上,通过宝塔Linux面板一键部署Z-Blog博客。基于CentOS 7.9系统,从远程连接、安装宝塔面板、开放端口到部署Z-Blog全流程详解,操作简单,新手也能轻松搭建个人博客网站。
310 13
|
1月前
|
弹性计算 Kubernetes jenkins
如何在 ECS/EKS 集群中有效使用 Jenkins
本文探讨了如何将 Jenkins 与 AWS ECS 和 EKS 集群集成,以构建高效、灵活且具备自动扩缩容能力的 CI/CD 流水线,提升软件交付效率并优化资源成本。
437 0
|
1月前
|
弹性计算 Devops Shell
用阿里云 DevOps Flow 实现 ECS 部署自动化:从准备到落地的完整指南
阿里云 DevOps Flow 是一款助力开发者实现自动化部署的高效工具,支持代码流水线构建、测试与部署至ECS实例,显著提升交付效率与稳定性。本文详解如何通过 Flow 自动部署 Bash 脚本至 ECS,涵盖环境准备、流水线搭建、源码接入、部署流程设计及结果验证,助你快速上手云上自动化运维。
155 0
监控 安全 Linux
63 0
|
2月前
|
监控 Java Linux
Apache NiFi项目的编译与部署于CentOS服务器
总而言之,Apache NiFi的编译和部署虽然涉及多个步骤,但这些操作步骤简明扼要,即使是不太熟悉Java或Maven的用户也能跟随指南完成。通过遵循上述步骤,您将能够在CentOS服务器上成功部署Apache NiFi,为您的数据流处理任务建立一个功能强大的平台。
190 16
|
2月前
|
资源调度 负载均衡 JavaScript
使用PM2工具部署Vue.js应用于服务器
以上步骤完成之后,你就成功利⽤ PM⼆工具将 Vuejs 应⽰程序部署至服 务 器,并且配合反向代理实现了高效稳定访问及负载均衡功能。
118 0
|
2月前
|
运维 数据可视化 数据库
一小时搞定服务器软件部署:资深工程师实测方案
本文分享了一位运维工程师在短时间内将30个不同软件部署到新服务器上的实战经验。面对全新 Rocky Linux 系统,传统手工部署方式效率低下且容易出错。作者尝试多种自动化方案后,最终选择使用自动化部署工具,通过其内置的 Docker Compose 模板和可视化界面,实现快速、批量部署,大幅提升效率,30个应用仅用约1小时完成,显著节省时间和人力成本。
|
2月前
|
Java 关系型数据库 应用服务中间件
零基础服务器搭建教程:30分钟快速部署你的第一台服务器
入职小白突遭“下马威”,首周被要求搭建包含 Odoo ERP、NGINX、MySQL 和 Java 应用的服务器,却从零基础开始摸索,历经系统配置、软件安装、服务部署等重重难关。在时间紧、技术难的困境中,意外发现一键部署工具 ,借助其自动化能力快速完成任务,不仅赢得老板认可,也开启了自主学习之路:从 systemd 到 NGINX 配置,从 Odoo 结构到 Shell 脚本编写,逐步成长为“能搭服务器的人”。
零基础服务器搭建教程:30分钟快速部署你的第一台服务器

热门文章

最新文章