一、前言¶
本文主要以两种方式介绍安装RabbitMQ集群:
- StatefulSet安装RabbitMQ集群
- 编写Chart一键安装RabbitMQ集群
二、StatefulSet安装RabbitMQ集群¶
说明:下面安装未涉及持久性,但是生产环境必须要持久化
1.下载基本文件
[root@k8s-master01 ~]# git clone https://gitee.com/jeckjohn/stateful-set-rabbit-mq.git
2.检查之前是否安装过rabbitmq,若没有,可直接略过
[root@k8s-master01 ~]# kubectl get po -n public-service
No resources found in public-service namespace.
[root@k8s-master01 ~]# kubectl get svc,deployment -n public-service
No resources found in public-service namespace.
如果存在,进行删除
[root@k8s-master01 ~]# kubectl delete svc rabbitmq -n public-service
[root@k8s-master01 ~]# kubectl delete deploy rabbitmq -n public-service
3.一键部署RabbitMQ集群
[root@k8s-master01 ~]# kubectl create ns public-service
[root@k8s-master01 ~]# cd stateful-set-rabbit-mq
[root@k8s-master01 stateful-set-rabbit-mq]# kubectl apply -f . -n public-service
4.查看Pod及service建立情况
[root@k8s-master01 ~]# kubectl get po -n public-service
NAME READY STATUS RESTARTS AGE
rmq-cluster-0 1/1 Running 0 25m
rmq-cluster-1 1/1 Running 0 24m
rmq-cluster-2 1/1 Running 0 22m
[root@k8s-master01 stateful-set-rabbit-mq]# kubectl get svc -n public-service
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
rmq-cluster ClusterIP None <none> 5672/TCP 29m
rmq-cluster-balancer NodePort 10.0.3.116 <none> 15672:31372/TCP,5672:32359/TCP 29m
5.打开浏览器输入节点IP:32359页面测试访问,其中用户名是RABBITMQ_USER,用户密码是RABBITMQ_PASS

6.卸载安装的集群
[root@k8s-master01 ~]# cd stateful-set-rabbit-mq
[root@k8s-master01 stateful-set-rabbit-mq]# kubectl delete -f . -n public-service
三、编写Chart一键安装RabbitMQ集群¶
1.下载文件
[root@k8s-master01 ~]# git clone https://gitee.com/jeckjohn/chart-rabbitmq.git
[root@k8s-master01 ~]# cd chart-rabbitmq/
[root@k8s-master01 chart-rabbitmq]# ls
Chart.yaml templates values.yaml
上面文件说明:
Chart.yaml 文件包含了该chart的描述。你可以从模板中访问它
apiVersion:Chart的apiVersion,目前默认都是v2name:Chart的名称description:Chart描述信息type:图表的类型version:Chart自己的版本号appVersion:Chart内应用的版本号
templates/ 目录:包括了模板文件。当Helm评估chart时,会通过模板渲染引擎将所有文件发送到templates/目录中。 然后收集模板的结果并发送给Kubernetes
values.yaml 文件也导入到了模板。这个文件包含了chart的默认值。这些值会在用户执行helm install 或 helm upgrade时被覆盖,一般配置全局变量或者一些参数,其中优先级为values.yaml最低,--set参数最高
2.开始安装
[root@k8s-master01 ~]# cd chart-rabbitmq/
[root@k8s-master01 rabbitmq-cluster]# helm install rabbitmq . -n public-service
3.查看pod及svc
[root@k8s-master01 ~]# kubectl get po -n public-service
NAME READY STATUS RESTARTS AGE
rabbitmq-0 1/1 Running 0 4m8s
rabbitmq-1 1/1 Running 0 2m46s
rabbitmq-2 1/1 Running 0 85s
[root@k8s-master01 ~]# kubectl get svc -n public-service
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
rmq-cluster-headless ClusterIP None <none> 5672/TCP 4m10s
rmq-cluster-loadbalancer NodePort 10.0.213.185 <none> 15672:32470/TCP,5672:31664/TCP 4m10s
4.打开浏览器输入节点IP:32470页面测试访问,其中用户名是user,用户密码是pass

5.卸载安装的集群
[root@k8s-master01 ~]# cd chart-rabbitmq/
[root@k8s-master01 rabbitmq-cluster]# helm uninstall rabbitmq -n public-service