TH小破站

  • 首页
  • 容器
    • 认识Docker
    • DockerFile详解
  • k8s
    • 认识Kubernetes
    • Kubernetes部署--(kubeadm方式)
    • kubeasz部署k8s集群
    • Ansible-binary部署k8s集群-1.31.2
  • Ceph
    • 认识分布式存储
    • CPEH部署
  • CI/CD
    • DevOps认识
    • 部署--Gitlab
  • ELK
    • ELK简介
    • Elasticsearch
    • Kibana部署
    • Logstash
    • ELK--收集 tomcat 日志(实战)
  • HD
    • 认识--大数据
    • Hadoop-单机部署
    • Hadoop-伪分布部署
    • Hadoop-完全分布部署
    • Hadoop-(HA)完全分布部署
    • Ambari自动部署--Hadoop
  • Nginx
    • Nginx功能介绍
    • Nginx安全选项
    • Nginx配置文件简单介绍
    • 网站服务器部署
  • 监控
    • ZABBIX-部署(yum)
    • ZABBIX-编译安装
  • 云计算
    • KVM 概述
    • OpenStack企业级部署(T版)
    • OpenStack之dashboard部署
    • OpenStack-controller的高可用
    • openstack(Caracal版_ubuntu版本)部署
  • 数据库
    • mariadb与mysql
    • mysql主从
    • MySQL--冷备(实战)
    • MySQL--热备(dump表)
    • MySQL--热备(dump库)
    • 数据恢复实战案例
    • Xtrabackup实现MySql8.x全量备份
    • MyCat实现数据库读写分离
    • MHA实现数据库高可用
    • Percona XtraDB(PXC)实现数据库集群高可用
    • 数据库压力测试
    • PostgreSQL 基操
    • PostgreSQL备份恢复
    • PostgreSQL高可用
    • MongDB安装配置基础使用
    • MongoDB实现复制集
    • MongoDB备份还原
  • 自动化
    • ssh远程服务原理及配置
    • Ansible剧本文件应用
    • Ansible管理服务介绍
    • Ansible自动化部署node_exporter(包含升级,回滚)
    • Saltstack-部署安装
  • 脚本
    • 一键查看服务器资源利用率
    • 一键生成SSL证书
    • 保存指定数量的文件/目录
    • 初始化服务器
    • 扫描可用IP
    • 批量分发SSH密钥
    • 监控多主机磁盘脚本
    • 一键安装MySQL8.x脚本
    • Python脚本监控ES集群
    • 资源巡检脚本
    • 查看各用户使用的cpu占比
热衷于分享
架构师成长之路 !!!
  1. 首页
  2. Kubernetes
  3. 正文

通过helm在k8s中创建rabbitmq集群

2024年2月19日 1093点热度 0人点赞 0条评论

用helm创建rabbitmq集群

创建一个chart

[root@k8s-master helm_soft]# helm search repo rabbitmq-ha --versions
NAME                    CHART VERSION   APP VERSION DESCRIPTION    
.......
kaiyuanshe/rabbitmq-ha  1.37.0          3.8.0       Highly available RabbitMQ cluster, the open sou...
kaiyuanshe/rabbitmq-ha  1.36.5          3.8.0       Highly available RabbitMQ cluster, the open sou...
kaiyuanshe/rabbitmq-ha  1.36.4          3.8.0       Highly available RabbitMQ cluster, the open sou...
kaiyuanshe/rabbitmq-ha  1.36.3          3.8.0       Highly available RabbitMQ cluster, the open sou...
kaiyuanshe/rabbitmq-ha  1.36.2          3.8.0       Highly available RabbitMQ cluster, the open sou...
kaiyuanshe/rabbitmq-ha  1.36.1          3.8.0       Highly available RabbitMQ cluster, the open sou...
kaiyuanshe/rabbitmq-ha  1.36.0          3.8.0       Highly available RabbitMQ cluster, the open sou...
kaiyuanshe/rabbitmq-ha  1.35.0          3.8.0       Highly available RabbitMQ cluster, the open sou...
kaiyuanshe/rabbitmq-ha  1.34.1          3.7.19      Highly available RabbitMQ cluster, the open sou..
........
[root@k8s-master helm_soft]#  helm pull kaiyuanshe/rabbitmq-ha --version=1.34.1
[root@k8s-master helm_soft]# tar xf rabbitmq-ha-1.34.1.tgz 

创建namespaces

[root@k8s-master rabbitmq-ha]# kubectl create ns stj-ns

拉取的镜像地址

[root@k8s-master rabbitmq-ha]# crictl pull rabbitmq:3.7.19-alpine

部署rabbitmq

`修改自己的domian`
[root@k8s-master rabbitmq-ha]# vim values.yaml 
.....
## Kubernetes Cluster Domain
clusterDomain: stangjedu.local
.....
[root@k8s-master rabbitmq-ha]# helm install rabbitmq-cluster --namespace stj-ns --set rabbitmqUsername=stj,rabbitmqPassword=rabbitmq,managementPassword=rabbitmq,rabbitmqErlangCookie=secretcookie .

验证pod状态

[root@k8s-master rabbitmq-ha]# kubectl get pod -n stj-ns
NAME                             READY   STATUS    RESTARTS   AGE
rabbitmq-cluster-rabbitmq-ha-0   1/1     Running   0          3m18s
rabbitmq-cluster-rabbitmq-ha-1   1/1     Running   0          2m38s
rabbitmq-cluster-rabbitmq-ha-2   1/1     Running   0          47s
[root@k8s-master rabbitmq-ha]# kubectl get svc -n stj-ns
NAME                                     TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)                       AGE
rabbitmq-cluster-rabbitmq-ha             ClusterIP   None         <none>        15672/TCP,5672/TCP,4369/TCP   12m
rabbitmq-cluster-rabbitmq-ha-discovery   ClusterIP   None         <none>        15672/TCP,5672/TCP,4369/TCP   12m

通过helm查看

[root@k8s-master rabbitmq-ha]# helm list -n stj-ns
NAME                NAMESPACE   REVISION    UPDATED                                 STATUS      CHART               APP VERSION
rabbitmq-cluster    stj-ns      1           2024-02-19 15:17:42.050864816 +0800 CST deployed    rabbitmq-ha-1.34.1  3.7
​
​
helm install rabbitmq-cluster --namespace stj-ns --set ingress.enabled=true,ingress.hostName=rabbitmq.stj.net --set rabbitmqUsername=aka,rabbitmqPassword=rabbitmq,managementPassword=rabbitmq,rabbitmqErlangCookie=secretcookie .

注意因为这里service用的ClusterIP外界不能访问k8s内部资源

通过ingress访问rabbitmq

修改helm的ingree配置

[root@k8s-master rabbitmq-ha]# cat templates/ingress.yaml 
{{- if .Values.ingress.enabled }}
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: {{ template "rabbitmq-ha.fullname" . }}
  namespace: {{ .Release.Namespace }}
  labels:
    app: {{ template "rabbitmq-ha.name" . }}
    chart: {{ template "rabbitmq-ha.chart" . }}
    release: {{ .Release.Name }}
    heritage: {{ .Release.Service }}
  annotations:
    {{- range $key, $value := .Values.ingress.annotations }}
    {{ $key }}: {{ $value | quote }}
    {{- end }}
spec:
  ingressClassName: nginx
  rules:
    {{- if .Values.ingress.hostName }}
    - host: {{ .Values.ingress.hostName }}
      http:
    {{- else }}
    - http:
    {{- end }}
        paths:
        - pathType: Prefix
          path: {{ .Values.ingress.path }}
          backend:
            service:
              name: {{ template "rabbitmq-ha.fullname" . }}
              port:
                number: {{ .Values.rabbitmqManagerPort }}
{{- if .Values.ingress.tls }}
  tls:
    - secretName: {{  .Values.ingress.tlsSecret }}
      {{- if .Values.ingress.hostName }}
      hosts:
        - {{ .Values.ingress.hostName }}
      {{- end }}
{{- end }}
{{- end }}

重新部署rabbitmq

`删除helm部署的rabbitmq`
[root@k8s-master rabbitmq-ha]# helm list -n stj-ns
NAME                NAMESPACE   REVISION    UPDATED                                 STATUS      CHART  APP VERSION
rabbitmq-cluster    stj-ns      1           2024-02-19 16:57:46.182486272 +0800 CST deployed    rabbitmq-ha-1.34.1
[root@k8s-master rabbitmq-ha]# helm uninstall rabbitmq-cluster -n stj-ns
[root@k8s-master rabbitmq-ha]# helm install rabbitmq-cluster --namespace stj-ns --set ingress.enabled=true,ingress.hostName=rabbitmq.stj.net --set rabbitmqUsername=stj,rabbitmqPassword=rabbitmq,managementUsername=admin,managementPassword=rabbitmq123,rabbitmqErlangCookie=secretcookie .

查看部署情况

[root@k8s-master rabbitmq-ha]# kubectl get pod,svc,ingress -n stj-ns
NAME                                 READY   STATUS    RESTARTS   AGE
pod/rabbitmq-cluster-rabbitmq-ha-0   1/1     Running   0          119s
pod/rabbitmq-cluster-rabbitmq-ha-1   1/1     Running   0          99s
pod/rabbitmq-cluster-rabbitmq-ha-2   1/1     Running   0          73s
​
NAME                                             TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)                       AGE
service/rabbitmq-cluster-rabbitmq-ha             ClusterIP   None         <none>        15672/TCP,5672/TCP,4369/TCP   119s
service/rabbitmq-cluster-rabbitmq-ha-discovery   ClusterIP   None         <none>        15672/TCP,5672/TCP,4369/TCP   119s
​
NAME                                                     CLASS   HOSTS              ADDRESS          PORTS   AGE
ingress.networking.k8s.io/rabbitmq-cluster-rabbitmq-ha   nginx   rabbitmq.stj.net   192.168.139.33   80      119s

配置window的hosts文件

通过web验证rabbitmq

可以看到三个节点加入到了集群

扩容rabbitmq

[root@k8s-master rabbitmq-ha]# vim values.yaml 
# 修改副本数为4
....
replicaCount: 4
....

更新升级rabbitmq

[root@k8s-master rabbitmq-ha]# helm upgrade rabbitmq-cluster -n stj-ns .

验证

[root@k8s-master rabbitmq-ha]# kubectl get pod,svc,ingress -n stj-ns
NAME                                 READY   STATUS    RESTARTS   AGE
pod/rabbitmq-cluster-rabbitmq-ha-0   1/1     Running   0          10m
pod/rabbitmq-cluster-rabbitmq-ha-1   1/1     Running   0          10m
pod/rabbitmq-cluster-rabbitmq-ha-2   1/1     Running   0          10m
pod/rabbitmq-cluster-rabbitmq-ha-3   1/1     Running   0          75s
​
NAME                                             TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)                       AGE
service/rabbitmq-cluster-rabbitmq-ha             ClusterIP   None         <none>        15672/TCP,5672/TCP,4369/TCP   10m
service/rabbitmq-cluster-rabbitmq-ha-discovery   ClusterIP   None         <none>        15672/TCP,5672/TCP,4369/TCP   10m
​
NAME                                                     CLASS   HOSTS              ADDRESS          PORTS   AGE
ingress.networking.k8s.io/rabbitmq-cluster-rabbitmq-ha   nginx   rabbitmq.stj.net   192.168.139.33   80      10m

我这里没有考虑rabbitmq数据持久化,如果有需要在values.yaml 文件配置即可,如果你对go语言比较熟悉,更改起来更加容易

标签: 暂无
最后更新:2024年2月19日

tanghao946

这个人很懒,什么都没留下

点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复
文章目录
  • 用helm创建rabbitmq集群
    • 创建一个chart
    • 创建namespaces
    • 拉取的镜像地址
    • 部署rabbitmq
    • 验证pod状态
    • 通过helm查看
  • 通过ingress访问rabbitmq
    • 修改helm的ingree配置
    • 重新部署rabbitmq
    • 查看部署情况
    • 配置window的hosts文件
    • 通过web验证rabbitmq
    • 扩容rabbitmq
    • 更新升级rabbitmq
    • 验证

COPYRIGHT © 2025 TH小破站. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

渝ICP备2023013789号

渝公网安备50011702500926号