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


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

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

    本文章将以 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

    2

    其他根据需要配置

    3

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

    访问 Kubernetes 集群

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

    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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    查看该 StroageClass 是否创建成功

    kubectl get sc
    
    • 1

    5

    使用 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"
    
    • 1

    部署 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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    查看集群状态

    $ 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 => []}
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    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

  • 相关阅读:
    PostMan接口测试实用小点
    服务器崩溃前的数据拯救实践
    Oracle 19c RAC OS的准备检查阶段
    flutter 图片加载缓存机制深入源码解析
    数据结构day34
    VR 产品之初探
    SAP UI5 里的 Busy Dialog 控件使用概述
    Word格式处理控件Aspose.Words for .NET教程——使用DocumentBuilder将字段插入文档
    辉视智慧监狱电教系统,推动现代化文明监狱构建进程
    【产品经理修炼之道】- 从需求到功能的转化过程
  • 原文地址:https://blog.csdn.net/emqx_broker/article/details/127966115