首页 > 其他分享 >k8s 部署 emqx

k8s 部署 emqx

时间:2024-10-27 09:32:38浏览次数:5  
标签:部署 manager io EMQX operator emqx k8s

安装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 [email protected]:/root
ssh [email protected]
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

标签:部署,manager,io,EMQX,operator,emqx,k8s
From: https://www.cnblogs.com/happyhuangjinjin/p/18507880

相关文章

  • k8s部署metallb实现service的LoadBalancer模式
    开启ipvs并开启严格ARP模式参考https://metallb.io/installation/kubectleditconfigmap-nkube-systemkube-proxy源mode:""ipvs:strictARP:false改成mode:"ipvs"ipvs:strictARP:truek8s原生部署metallb下载wgethttps://raw.githubus......
  • 详解 helm 部署 traefik
    安装helm下载地址https://github.com/helm/helm/releases安装wgethttps://get.helm.sh/helm-v3.16.2-linux-amd64.tar.gztar-zxvfhelm-v3.16.2-linux-amd64.tar.gzcdlinux-amd64/chmod755helmmvhelm/usr/local/bin/helmversion添加traefik的helm源helmrep......
  • 详解 helm 部署 ingress-nginx
    使用Helm安装参考文档:https://kubernetes.github.io/ingress-nginx/deploy/添加ingress-nginx官方helm仓库helmrepoaddingress-nginxhttps://kubernetes.github.io/ingress-nginxhelmrepoupdate下载Chart包#查找所有的版本helmsearchrepoingress-nginx/ingress-n......
  • 基于SpringBoot+Vue+uniapp的学生知识成果展示与交流的详细设计和实现(源码+lw+部署文
    文章目录前言详细视频演示具体实现截图技术栈后端框架SpringBoot前端框架Vue持久层框架MyBaitsPlus系统测试系统测试目的系统功能测试系统测试结论为什么选择我代码参考数据库参考源码获取前言......
  • Docker部署MySQL主从复制
    1.主从复制概念及优势1.1概念MySQL主从复制是一种数据库复制技术,它允许将一个数据库服务器(主服务器)上的数据更改复制到一个或多个数据库服务器(从服务器)。这种技术在数据库管理和维护中扮演着重要的角色,尤其是在需要数据冗余、负载均衡和高可用性的场景中。主从复制的概念......
  • 在K8S中,如何简化容器化部署?
    在Kubernetes(K8S)中,简化容器化应用的部署可以通过多种方式实现。以下是一些常见的方法和技术,可以帮助您更高效地管理容器化应用:使用Helm:Helm是一个Kubernetes的包管理器,类似于APT或YUM。它允许您定义、安装和管理Kubernetes应用程序的发布。Helm使用一种称为......
  • 在K8S中,Iptables 四表五链有哪些?
    在K8S中,iptables四表五链具体如下:四表:filter表:主要用于过滤数据包。它根据系统管理员预定义的一组规则对进入和离开系统的网络流量进行过滤。对于防火墙而言,主要利用在filter表中指定的规则来实现对数据包的过滤。Filter表是默认的表,如果没有指定哪个表,iptables就默认使......
  • 在K8S中,kube-apiserver和kube-scheduler的作用是什么?
    在Kubernetes(K8s)中,kube-apiserver和kube-scheduler是两个至关重要的组件,它们各自承担着不同的职责,共同协作以确保集群的正常运行。1.kube-apiserver的作用提供API接口:kube-apiserver是KubernetesAPI的入口,提供了RESTful风格的API接口,支持JSON和YAML格式的数据交互。集群内......
  • 在K8S中,主节点的作用是什么?
    在Kubernetes(K8S)集群中,主节点(MasterNode)扮演着至关重要的角色。主节点负责集群的整体管理和协调工作。以下是主节点的一些关键作用:集群状态管理:主节点负责维护整个集群的状态信息。这些信息存储在etcd数据库中,包括节点列表、Pods、Services、ConfigMaps、Secrets等所有......
  • 在K8S中,体系结构有哪些不同的组成部分?
    Kubernetes(简称K8s)的体系结构是一个复杂但高度组织化的系统,它包含多个不同的组成部分,这些部分协同工作以实现容器化应用程序的自动化部署、扩展和管理。以下是K8s体系结构的详细组成部分:1.控制平面(ControlPlane)控制平面是K8s集群的管理核心,负责整体的集群管理和控制。它包含以......