1. 前言
本文中,我们会基于sealos制作一个MinIO集群镜像。
使用这个集群镜像,我们能够在sealos拉起的K8S集群中,一键部署MinIO 2023.3.24。
参考文档:
- 构建一个 Ingress 集群镜像
- 《K8S中安装配置MinIO》
- MinIO官网
- MinIO中文网
- artifacthub - helm/bitnami/minio
- What is MinIO and How to Configure It in Kubernetes
- MinIO Download Page
- MinIO中国加速镜像
2. 前置条件
安装sealos4.2.0,拉起K8S 1.24.8集群(同时安装helm),具体方法参考《sealos入门篇》。
3. 制作MinIO集群镜像
1、添加chart仓库
1 | helm repo add bitnami https://charts.bitnami.com/bitnami |
2、下载chart
1 | mkdir minio && cd minio |
这里下载 chart12.2.5 版本,对应 minio2023.3.24 版本(minio以日期作为版本号,也是很有意思)。
下载的文件名为:minio-12.2.5.tgz
3、修改chart
1 | tar -xzvf minio-12.2.5.tgz |
修改chart的values.yaml,给一些默认值,然后重新打包chart,后续Dockerfile中的CMD中可以少填一些参数。
如下修改:
- global.storageClass 不变,使用默认的storageclass
- mode 建议保持standalone,单机部署;可选改为 distributed,分布式部署
- statefulset.replicaCount 分布式部署时,修改为 4(分布式部署要求>=4)
- auth.rootUser 不变,默认 admin
- auth.rootPassword 修改minio密码 minio123
- resources.limits.cpu 修改为 1
- resources.limits.memory 修改为 2Gi
- tls.enabled 不变,默认 false
- service.type 修改为NodePort
- persistence.enabled 不变,默认 true
- persistence.storageClass 不变,使用默认的storageclass
- persistence.size 修改为 500Gi
- metrics.serviceMonitor.enabled 修改为 true
- metrics.serviceMonitor.namespace 修改为 Prometheus 所在的namespace
3、添加镜像列表
1 | mkdir -p images/shim/ |
内容为:
1 | docker.io/bitnami/minio:2023.3.24-debian-11-r6 |
4、编写Dockerfile
1 | FROM scratch |
5、构建集群镜像
1 | sealos build -f Dockerfile -t docker.io/voidking/minio:2023.3.24 . |
4. 使用MinIO集群镜像
4.1. 自定义安装MinIO
1 | sealos run docker.io/voidking/minio:2023.3.24 --cmd="helm install minio minio-12.2.5-custom.tgz \ |
使用9001端口对应的NodePort,可以通过浏览器外部访问minio控制台。
4.2. 上传集群镜像
上传到公共镜像仓库
1 | sealos push docker.io/voidking/minio:2023.3.24 |
上传到私有镜像仓库
1 | sealos tag docker.io/voidking/minio:2023.3.24 harbor.voidking.com/sealos/minio:2023.3.24 |