0
点赞
收藏
分享

微信扫一扫

k8s部署企业版emqx集群

说明

测试环境我们可能使用压缩包docker方式以单节点的形式启动服务,但在生产环境需要一个更加简单和稳定的方式去部署我们的EMQX企业版服务。

部署架构

EMQX 集群可作为物联网接入服务(IoT Hub)部署,目前 EMQ 在青云、阿里云、AWS 等云服务提供商上均提供开箱即用的免费软件镜像,对于特殊硬件平台和系统版本如树莓派、Linux ARM,可使用源码编译安装。

典型部署架构:

LB (负载均衡)

LB (负载均衡器) 负责分发设备的 MQTT 连接与消息到 EMQX 集群,LB 提高 EMQX 集群可用性、实现负载平衡以及动态扩容。

部署架构推荐在 LB 终结 SSL 连接。设备与 LB 之间 TLS 安全连接,LB 与 EMQX 之间普通 TCP 连接。这种部署模式下 EMQX 单集群可轻松支持 100 万设备。

这里我们使用私有部署 LB 服务器:nginx

EMQX 集群

EMQX 默认开启的 MQTT 服务 TCP 端口:

端口 说明
1883 MQTT 协议端口
8883 MQTT/SSL 端口
8083 MQTT/WebSocket 端口
8084 MQTT/WebSocket/SSL 端口
8081 管理 API 端口
18083 Dashboard 端口

防火墙根据使用的 MQTT 接入方式,开启上述端口的访问权限。

EMQX 节点集群使用的 TCP 端口:

端口 说明
4369 集群节点发现端口 (EPMD 模式)
4370 集群节点发现端口
5370 集群节点 PRC 通道

集群节点间如有防护墙,需开启上述 TCP 端口互访权限。

部署 EMQX 集群

## 创建 emqx 的账号和权限
kubectl apply -f yamls-ee/emqx-rbac.yaml
## 创建 emqx 环境变量配置文件
kubectl apply -f yamls-ee/emqx-config.yaml
## 创建 emqx 和 nginx 所用到的配置和证书文件
kubectl apply -f yamls-ee/emqx-conf.yaml
## 创建 emqx 服务配置文件
kubectl apply -f yamls-ee/emqx-service.yaml
## 创建 emqx 集群
kubectl apply -f yamls/emqx-statefulset.yaml

部署 nginx 服务

## 部署 nginx 服务
kubectl apply -f yamls/emqx-nginx.yaml

访问服务

这里你可以使用NodePort服务暴露方式,也可以服务应用路由,方式有很多,这里提供一个参考。

参考文档

k8s部署企业版emqx集群.md

举报

相关推荐

k8s 部署 emqx

K8S集群部署

k8s集群部署

安装部署k8s集群

k8s 部署Redis集群

K8S集群化部署

0 条评论