关于物联网:在华为云-CCE-上部署-EMQX-MQTT-服务器集群

8次阅读

共计 2583 个字符,预计需要花费 7 分钟才能阅读完成。

云进入以「利用为核心」的云原生阶段,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://cert-manager.io/docs/…

部署 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:
  persistent:
    storageClassName: csi-disk
    resources:
      requests:
        storage: 1Gi
    accessModes:
    - ReadWriteOnce
  emqxTemplate:
    image: emqx/emqx-ee:4.4.6
    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": 5,"bandwidth_sharetype":"PER","eip_type":"5_bgp"}'
      spec:
        type: LoadBalancer
EOF

Load Balancer 参数阐明

  • bandwidth_chargemode

    带宽付费模式。bandwidth:按带宽计费 traffic:按流量计费 默认类型:bandwidth

  • bandwidth_size

    带宽大小,默认 1Mbit/s~2000Mbit/s,请依据 Region 带宽反对范畴设置。

  • bandwidth_sharetype

    带宽共享形式。PER:独享带宽

  • eip_type

    弹性公网 IP 类型 5_telcom:电信 5_union:联通 5_bgp:全动静 BGP 5_sbgp:动态 BGP

查看集群状态

$ 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 '[email protected]' 4.4.7 is started  

$ kubectl exec -it emqx-ee-0 -c emqx -- emqx_ctl cluster status  
Cluster status: #{running_nodes =>
                   ['[email protected]',
                    '[email protected]',
                    '[email protected]'],
               stopped_nodes => []}

对于 LoadBalancer 终结 TLS

结语

至此,咱们实现了在华为云 CCE 上部署 EMQX 集群的全副流程。EMQX Operator 能够帮忙用户在 Kubernetes 环境上疾速创立和治理 EMQX 集群,不仅极大简化部署和治理流程,也升高了治理和配置的专业技能要求,是用户疾速体验云原生的最佳抉择。

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

原文链接:https://www.emqx.com/zh/blog/category/emqx

正文完
 0