如何在Kubernetes上部署EMQ X集群

发布时间:2021-09-04 15:01:19 作者:chen
来源:亿速云 阅读:346

本篇内容主要讲解“如何在Kubernetes上部署EMQ X集群”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何在Kubernetes上部署EMQ X集群”吧!

通过 Helm 在 Kubernetes 上快速部署 EMQ X 集群

通过 EMQ X 提供的 Helm chart 可以很简单地将 EMQ X 部署至 Kubernetes 平台。在开始之前,请确保遵循 Helm文档指南 来安装 Helm。

关于 Kubernetes

Kubernetes 是广泛应用的提供自动部署、扩展和运行应用程序开源容器编排平台。

使用 Kubernetes, 可以快速高效地响应客户需求:

Kubernetes 具有如下特点:

Kubernetes 项目由 Google 公司在 2014 年启动。Kubernetes 建立在 Google 公司超过十余年的运维经验基础之上,Google 所有的应用都运行在容器上, 再与社区中最好的想法和实践相结合,也许它是最受欢迎的容器平台。

关于 Helm

Helm 是一个 kubernetes 应用的包管理工具,用来管理 [charts] (https://github.com/kubernetes/charts)——预先配置好的安装包资源,有点类似于 Ubuntu 的 APT 和 CentOS 中的 yum 。

Helm chart 是用来封装 kubernetes 原生应用程序的 yaml 文件,可以在部署应用的时候自定义应用程序的一些metadata,便与应用程序的分发。

Helm 和 charts 的主要作用:

Setup

快速部署一个简单的 EMQ X 集群

部署一个持久化的 EMQ X 集群

EMQ X 通过 创建 PVC 资源挂载 /opt/emqx/data/mnesia 目录实现持久化 pods在部署 EMQ X 之前,用户需要部署 Haproxy 或 Nginx-PLUS 等负载均衡器,并自行在 Kubernetes 中创建 PV 资源或是 Storage Classes 资源

部署 EMQ X Edge 集群和 EMQ X 企业版集群

EMQ X Edge

部署 EMQ X Edge 集群指定 image=emqx/emqx-edge:v3.2.3 ,其他设置与部署 EMQ X 集群保持一致

$ helm install --devel --name my-emqx --set service.type=NodePort --set image=emqx/emqx-edge:v3.2.3 emqx/emqx
EMQ X EE

部署 EMQ X 企业版集群首先需要登陆 emqx.io 申请并下载 License 文件,并将 License 文件创建为 Secret 资源

$ kubectl create secret generic your-license-secret-name --from-file=/path/to/emqx.lic

然后在部署时指定 emqxLicneseSecretName=your-license-secret-nameimage=emqx/emqx-ee:v3.4.0,其他设置与部署 EMQ X 集群保持一致

helm install --devel --name my-emqx --set service.type=NodePort --set image=emqx/emqx-ee:v3.2.3 --set emqxLicneseSecretName=your-license-secret-name emqx/emqx

EMQ X Helm Chart 配置项

参数描述Default Value
apiserverKubernates API serverhttps://kubernetes.default.svc:443
namespacekubernetes namespacedefault
replicasEMQ X 节点数量,建议保持奇数个节点,不然脑裂后无法自动恢复3
imageEMQ X 镜像名称emqx/emqx:latest
imagePullPolicy获取镜像的策略IfNotPresent
persistence.enabled是否启用 PVCfalse
persistence.storageClassStorage class 名称nil
persistence.existingClaimPV 名称""
persistence.accessModePVC 访问模式ReadWriteOnce
persistence.sizePVC 容量20Mi
resourcesCPU/内存资源{}
service.typeEmqx 集群服务类型ClusterIP
service.mqttPortMQTT 协议端口1883
service.mqttsslPortMQTT/SSL 端口8883
service.mgmtPort管理API 端口8080
service.websocketPortMQTT/WebSocket 端口8083
service.wssPortMQTT/WebSocket/SSL 端口8084
service.dashboardPortDashboard 端口18083
emqxAddressType用于从k8s服务中获取EMQ X 节点 <br>可选值:ip、dns、hostname <br> 注意:hosename 仅支持 EMQ X v3.2.1 之后的版本ip
emqxConfigEMQ X 配置项,详情查看文档{}
emqxLicneseSecretNameEMQ X 企业版需要手动将 License 文件创建为 Secret 资源""

当需要设置复杂参数的时候,可以使用 Yaml 文件来记录参数

$ helm install --devel --name my-emqx -f values.yaml emqx/emqx

到此,相信大家对“如何在Kubernetes上部署EMQ X集群”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

推荐阅读:
  1. 如何在CentOS上安装Kubernetes集群
  2. 如何在Kubernetes上部署和伸缩Jenkins

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

headless

上一篇:Standalone cluster模式下怎么生成一个DriverDescription类型的消息

下一篇:MySQL中的隐藏列的具体查看方法

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》