当前位置: 首页 > article >正文

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


http://www.kler.cn/news/368005.html

相关文章:

  • Python条形图 | 指标(特征)重要性图的绘制
  • 记录下docker部署gitlab-ce-17.5版本及客户端git拉取方式配置
  • 三种材料的金相图及金相图解析材料
  • android 添加USB网卡并配置DNS
  • 【C++】string类 (模拟实现详解 下)
  • 医疗实施-项目管理06-估算成本
  • NVR监测软件/设备EasyNVR多个NVR同时管理构建智慧城市的大数据解决方案
  • YAML格式校验API:免费工具的使用指南
  • 隨筆 20241023 Kafka 事务
  • C语言的三种链接方式
  • 人工智能的未来:从当下走向未知
  • 代码随想录算法训练营第十天|232用栈实现队列、225用队列实现栈、20有效的括号、1047删除字符串中的所有相邻重复项
  • 部署前后端分离若依项目--CentOS7宝塔版
  • 【NodeJS】NodeJS+mongoDB在线版开发简单RestfulAPI (八):API说明(暂时完结,后续考虑将在线版mongoDB变为本地版)
  • 多线程——Thread 类的基本用法
  • 安灯系统助力汽车零部件工厂快速解决生产异常
  • python 深度学习 项目调试 图像分割 detectron2
  • 32位的ARMlinux的4字节变量原子访问问题
  • sv标准研读第十九章-功能覆盖率
  • konva不透明度,查找,显示,隐藏
  • ThreadPoolExecutor可以创建哪是哪三种线程池呢?
  • linux网络编程4——WebSocket协议及服务器的简易实现
  • 苏州金龙技术创新赋能旅游新质生产力
  • Navicat导入Excel数据时数据被截断问题分析与解决方案
  • 论文阅读与写作入门
  • mit6824-03-GFS论文记录