k8s 部署 emqx

安装cert-manager

使用Helm安装

复制代码
helm repo add jetstack https://charts.jetstack.io
helm repo update
helm upgrade --install cert-manager jetstack/cert-manager \
  --namespace cert-manager \
  --create-namespace \
  --set installCRDs=true

如果通过helm命令安装失败,可以先下载,再按照

复制代码
wget https://charts.jetstack.io/charts/cert-manager-v1.16.1.tgz

k8s原生安装

参考https://cert-manager.io/docs/installation/

复制代码
kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.16.1/cert-manager.yaml

安装EMQX Operator

复制代码
helm repo add emqx https://repos.emqx.io/charts
helm repo update
helm upgrade --install emqx-operator emqx/emqx-operator \
  --namespace emqx-operator-system \
  --create-namespace

安装后,查下安装结果

复制代码
kubectl get all -n emqx-operator-system

出现下载镜像失败ImagePullBackOff的状态,说明下载不到国外的镜像,需要寻找国内镜像源。使用以下命令查询具体是哪些镜像下载失败

复制代码
kubectl describe pod emqx-operator-controller-manager-6d6d5f9684-rhd7f  -n emqx-operator-system

下载镜像,并上传到k8s的各个节点后,再次执行helm安装命令

复制代码
docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/emqx/emqx-operator-controller:2.2.25
docker tag swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/emqx/emqx-operator-controller:2.2.25 emqx/emqx-operator-controller:2.2.25
docker save -o emqx.tar emqx/emqx-operator-controller:2.2.25
scp emqx.tar root@10.0.2.12:/root
ssh root@10.0.2.12
docker load -i emqx.tar

等待 EMQX Operator 就绪

复制代码
kubectl wait --for=condition=Ready pods -l "control-plane=controller-manager" -n emqx-operator-system

#输出
pod/emqx-operator-controller-manager-6d6d5f9684-rhd7f condition met

安装 EMQX

复制代码
apiVersion: v1
kind: Namespace
metadata:
  name: ns-emqx
  
--- 
apiVersion: apps.emqx.io/v2beta1
kind: EMQX
metadata:
   name: emqx
   namespace: ns-emqx
spec:
   image: swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/emqx/emqx:5.8.1

查看 EMQX 的 k8s service

复制代码
kubectl get svc -n ns-emqx 

上面这种方式部署的一个无头服务的EMQX。下面通过 LoadBalancer 访问 EMQX 集群

复制代码
apiVersion: v1
kind: Namespace
metadata:
  name: ns-emqx

--- 
apiVersion: apps.emqx.io/v2beta1
kind: EMQX
metadata:
  name: emqx
  namespace: ns-emqx
spec:
  image: swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/emqx/emqx:5.8.1
  listenersServiceTemplate:
    spec:
      type: LoadBalancer
  dashboardServiceTemplate:
    spec:
      type: LoadBalancer

再次查看 EMQX 的 k8s service

复制代码
kubectl get svc -n ns-emqx 

结果

复制代码
NAME             TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)                                                       AGE
emqx-dashboard   NodePort    10.100.118.67    <none>        18083:31321/TCP                                               19s
emqx-headless    ClusterIP   None             <none>        4370/TCP,5369/TCP                                             40s
emqx-listeners   NodePort    10.101.198.122   <none>        8883:31407/TCP,1883:31263/TCP,8083:31433/TCP,8084:32283/TCP   19s

EMQX Operator 会创建两个 EMQX Service 资源,一个是 emqx-dashboard,一个是 emqx-listeners,分别对应 EMQX 控制台和 EMQX 监听端口。

通过 NodeIP + 端口 就可以访问EMQX的控制台。这里是http://127.0.0.1:31321;用户和密码:admin/public

相关推荐
徐子童20 小时前
网络协议---TCP协议
网络·网络协议·tcp/ip·面试题·1024程序员节
扫地的小何尚2 天前
NVIDIA RTX PC开源AI工具升级:加速LLM和扩散模型的性能革命
人工智能·python·算法·开源·nvidia·1024程序员节
数据皮皮侠AI3 天前
上市公司股票名称相似度(1990-2025)
大数据·人工智能·笔记·区块链·能源·1024程序员节
开开心心就好4 天前
系统清理工具清理缓存日志,启动卸载管理
linux·运维·服务器·神经网络·cnn·pdf·1024程序员节
Evan东少6 天前
[踩坑]笔记本Ubuntu20.04+NvidiaRTX5060驱动+cuda+Pytorch+ROS/Python实现人脸追踪(环境准备)
1024程序员节
不爱编程的小陈8 天前
C/C++每日面试题
面试·职场和发展·1024程序员节
开开心心就好8 天前
右键菜单管理工具,添加程序自定义名称位置
linux·运维·服务器·ci/cd·docker·pdf·1024程序员节
码农三叔9 天前
(4-2-05)Python SDK仓库:MCP服务器端(5)Streamable HTTP传输+Streamable HTTP传输
开发语言·python·http·大模型·1024程序员节·mcp·mcp sdk
西幻凌云13 天前
初始——正则表达式
c++·正则表达式·1024程序员节
启芯硬件13 天前
电源XL6009E1的dieshot细节分析-芯片设计干货
大数据·经验分享·硬件工程·1024程序员节