一个计算机技术爱好者与学习者

0%

好好学Sealos:Sealos制作RabbitMQ集群镜像

1. 前言

本文中,我们会基于sealos制作一个MinIO集群镜像。
使用这个集群镜像,我们能够在sealos拉起的K8S集群中,一键部署RabbitMQ 3.11.5。

参考文档:

2. 前置条件

安装sealos4.2.0,拉起K8S 1.24.8集群(同时安装helm),具体方法参考《sealos入门篇》

3. 制作RabbitMQ集群镜像

1、添加chart仓库

1
2
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo update

2、下载chart

1
2
3
mkdir rabbitmq && cd rabbitmq
helm search repo bitnami/rabbitmq -l
helm fetch bitnami/rabbitmq --version 11.3.0

这里下载 chart 11.3.0 版本,对应 rabbitmq 3.11.5 版本。
下载的文件名为:rabbitmq-11.3.0.tgz

3、修改chart

1
2
3
4
tar -xzvf rabbitmq-11.3.0.tgz
vim rabbitmq/values.yaml
tar -czvf rabbitmq-11.3.0-custom.tgz rabbitmq
rm rabbitmq -rf

修改chart的values.yaml,给一些默认值,然后重新打包chart,后续Dockerfile中的CMD中可以少填一些参数。

如下修改:

  • global.storageClass 不变,使用默认的storageclass
  • auth.username 不变,默认为user
  • auth.password 修改为 rabbitmq123
  • persistence.size 改为 200Gi
  • service.type 改为 NodePort

3、添加镜像列表

1
2
mkdir -p images/shim/
vim images/shim/rabbitmq-images.txt

内容为:

1
docker.io/bitnami/rabbitmq:3.11.5-debian-11-r2

4、编写Dockerfile

1
2
3
4
FROM scratch
COPY ../rabbitmq .
CMD ["helm install rabbitmq rabbitmq-11.3.0-custom.tgz \
-n rabbitmq --create-namespace"]

5、构建集群镜像

1
2
sealos build -f Dockerfile -t docker.io/voidking/rabbitmq:v3.11.5 .
sealos inspect docker.io/voidking/rabbitmq:v3.11.5

4. 使用RabbitMQ集群镜像

4.1. 自定义安装RabbitMQ

1
2
3
4
5
6
7
sealos run docker.io/voidking/rabbitmq:v3.11.5 --cmd="helm install rabbitmq rabbitmq-11.3.0-custom.tgz \
-n rabbitmq --create-namespace \
--set auth.username=user \
--set auth.password=rabbitmq123 \
--set service.type=NodePort"

kubectl get all -n rabbitmq

4.2. 上传集群镜像

上传到公共镜像仓库

1
2
3
4
sealos push docker.io/voidking/rabbitmq:v3.11.5
sealos tag docker.io/voidking/rabbitmq:v3.11.5 hub.sealos.cn/voidking/rabbitmq:v3.11.5
sealos login -k config.yml hub.sealos.cn
sealos push hub.sealos.cn/voidking/rabbitmq:v3.11.5

上传到私有镜像仓库

1
2
3
sealos tag docker.io/voidking/rabbitmq:v3.11.5 harbor.voidking.com/sealos/rabbitmq:v3.11.5
sealos login harbor.voidking.com
sealos push harbor.voidking.com/sealos/rabbitmq:v3.11.5