使用helm chart在Kubernetes部署Minio-适用于生产环境的部署方案
Kubernetes部署部署Minio支持YAML和Helm Chart两种方式。本文将以Helm Chart为例,介绍如何在Kubernetes上部署Minio。
1. 前提条件
-
默认standalone模式下,需要开启Beta API的Kubernetes 1.4+。
-
distributed 模式,需要开启Beta API的Kubernetes 1.5+。
-
底层支持PV provisioner,准备可用的storage class。
-
K8s集群已经安装Helm。
2. 使用Helm Charm部署Minio
通过Helm Chart部署,支持单机(standalone)和分布式(distributed)模式的Minio。生产环境中建议使用分布式模式,以提高Minio的可用性和容错能力。
2.1 准备Minio Helm Chart
Minio Helm Chart位于bitnami/charts仓库中。
- 添加Minio Helm Chart仓库
# 添加仓库
]# helm repo add bitnami https://charts.bitnami.com/bitnami
# 更新仓库
]# helm repo update
- 拉取Minio Helm Chart
# 查询Minio Helm Chart可用的版本
]# helm search repo bitnami/minio
NAME CHART VERSION APP VERSION DESCRIPTION
bitnami/minio 14.7.7 2024.9.9 MinIO(R) is an object storage server, compatibl...
# 安装Minio Helm Chart
]# mkdir -p /root/minio && cd /root/minio
]# helm pull bitnami/minio --untar
- 配置Minio Helm Chart
Minio Helm Chart提供了许多可配置的参数。 可以修改values.yaml
文件来配置Minio,也可以通过--set key=value[,key=value]
给helm install
命令设置参数值。
常用配置参数:
image.registry
: Minio Docker镜像源。image.repository
:Minio Docker镜像仓库名。image.tag
:Minio Docker镜像版本。image.pullPolicy
:镜像拉取策略。mode
:Minio模式,可选standalone
或distributed
。auth.rootUser
:Minio root用户。auth.rootPassword
:Minio root密码。persistence.enabled
:是否开启持久化存储。persistence.storageClass
:存储类。默认为空,表示使用默认的storage class。persistence.size
:存储容量。默认8Gi,根据实际情况调整。resourcesPreset
: “micro”,用于设置CPU和内存资源限制。可选参数:none, nano, micro, small, medium, large, xlarge, 2xlarge。resouces
: CPU和内存资源限制。上面参数设置后,此处无需设置。
2.2 部署standdalone模式的Minio
helm chart默认部署standalone模式的Minio,使用deployment方式部署。
# 由openebs提供默认存储类
]# kubectl get sc
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE
openebs-h