helm 安装 MinIO 集群
目录
资源清单
本文安装
EFK
依赖K8S集群
、helm
,本文不提供K8S集群
和helm
安装方式
使用此文档部署,需要自行解决 storageClass 问题 ( NFS, ceph, openebs等 )
软件 | 版本 |
---|---|
chart | 11.6.5 |
minio | 2022.6.2-debian-10-r0 |
kubernetes | v1.19.3 |
helm | v3.8.1 |
helm
安装 minio
集群
1. 添加 minio
的仓库
$ helm repo add bitnami https://charts.bitnami.com/bitnami
2. 查询 minio
资源
$ helm repo update
$ helm search repo minio
NAME CHART VERSION APP VERSION DESCRIPTION
bitnami/minio 11.6.6 2022.6.2 MinIO(R) is an object storage server, compatibl...
3. 拉取 minio chart
到本地
$ mkdir -p /root/minio/ && cd /root/minio/
# 拉取 chart 到本地 /root/minio/ 目录
$ helm pull bitnami/minio --version 11.6.5
$ tar -zxvf minio-11.6.5.tgz
$ cp minio/values.yaml ./values-test.yaml
# 查看当前目录层级
$ tree -L 2
.
├── minio
│ ├── Chart.lock
│ ├── charts
│ ├── Chart.yaml
│ ├── README.md
│ ├── templates
│ └── values.yaml
├── minio-11.6.5.tgz
└── values-test.yaml
4. 对本地 values-test.yaml
修改
- 查看集群
storageclasses
$ kubectl get storageclasses.storage.k8s.io
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE
openebs-jiva-default jiva.csi.openebs.io Delete Immediate true 33d
- 修改配置
$ cat values-test.yaml
# 定义全局变量,定义全局 storageClass
global:
storageClass: "openebs-jiva-default"
# 定义服务名称
fullnameOverride: "minio"
# 服务使用镜像
image:
registry: docker.io
repository: bitnami/minio
tag: 2022.6.2-debian-10-r0
pullPolicy: IfNotPresent
# minio 部署模式 (`standalone` or `distributed`)
mode: distributed
# minio 认证账户,web登陆账户
auth:
rootUser: admin
rootPassword: "minio"
# 创建的默认桶
defaultBuckets: "evescn"
# distributed 模式下,服务部署数量,必须大于4个
statefulset:
## @param statefulset.replicaCount Number of pods per zone (only for MinIO® distributed mode). Should be even and `>= 4`
##
replicaCount: 4
# 容器端口 api 端口和 console 端口
containerPorts:
api: 9000
console: 9001
nodeSelector: {}
# svc 定义
service:
type: ClusterIP
ports:
api: 9000
console: 9001
# console 端口 ingress 定义,web访问 Minio
ingress:
enabled: false
ingressClassName: "nginx"
hostname: minio.evescn.com
path: /
pathType: ImplementationSpecific
servicePort: minio-console
# api 接口 ingress 定义,代码访问 MInio
apiIngress:
enabled: true
ingressClassName: "nginx"
hostname: minio-api.evescn.com
path: /
pathType: ImplementationSpecific
servicePort: minio-api
# pvc 定义
persistence:
enabled: true
mountPath: /data
accessModes:
- ReadWriteOnce
size: 200Gi
5. 安装 minio
集群
# 创建 test-middleware 名称空间
$ kubectl create ns test-middleware
# 安装 minio 集群
$ helm -n test-middleware install minio minio -f values-test.yaml | tee test.log
## helm -n NAMESAPCE install SERVER_NAME FILE_NAME -f CONFIG_FILE
-n 指定 kubernetes 集群名称空间
-f 指定使用的配置文件,文件中定义的配置可以覆盖 minio/values.yaml 文件中配置
NAME: minio
LAST DEPLOYED: Fri Jun 3 21:35:42 2022
NAMESPACE: test-middleware
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
CHART NAME: minio
CHART VERSION: 11.6.5
APP VERSION: 2022.6.2
** Please be patient while the chart is being deployed **
MinIO® can be accessed via port on the following DNS name from within your cluster:
minio.test-middleware.svc.cluster.local
To get your credentials run:
export ROOT_USER=$(kubectl get secret --namespace test-middleware minio -o jsonpath="{.data.root-user}" | base64 -d)
export ROOT_PASSWORD=$(kubectl get secret --namespace test-middleware minio -o jsonpath="{.data.root-password}" | base64 -d)
To connect to your MinIO® server using a client:
- Run a MinIO® Client pod and append the desired command (e.g. 'admin info'):
kubectl run --namespace test-middleware minio-client \
--rm --tty -i --restart='Never' \
--env MINIO_SERVER_ROOT_USER=$ROOT_USER \
--env MINIO_SERVER_ROOT_PASSWORD=$ROOT_PASSWORD \
--env MINIO_SERVER_HOST=minio \
--image docker.io/bitnami/minio-client:2022.5.9-debian-10-r22 -- admin info minio
To access the MinIO® web UI:
- Get the MinIO® URL:
echo "MinIO® web URL: http://127.0.0.1:9001/minio"
kubectl port-forward --namespace test-middleware svc/minio 9001:9001
6. 查看部署的 minio
集群
$ helm -n test-middleware list
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
minio test-middleware 1 2022-06-03 21:54:05.727412063 -0400 EDT deployed minio-11.6.5 2022.6.2
$ kubectl get pods --namespace=test-middleware
NAME READY STATUS RESTARTS AGE
minio-0 1/1 Running 1 11m
minio-1 1/1 Running 1 11m
minio-2 1/1 Running 1 11m
minio-3 1/1 Running 1 11m
- 查看 pvc
$ kubectl -n test-middleware get pvc
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
data-minio-0 Bound pvc-377709c8-ccc8-44e4-85c2-800f181d864f 200Gi RWO openebs-jiva-default 11m
data-minio-1 Bound pvc-1dd24e36-3fc8-43d1-afab-83dadc05d0ad 200Gi RWO openebs-jiva-default 11m
data-minio-2 Bound pvc-8033b763-c9c1-416e-b0ff-0c01b8d426b3 200Gi RWO openebs-jiva-default 11m
data-minio-3 Bound pvc-16ec8622-876e-4aa3-8bcb-44543f8b1032 200Gi RWO openebs-jiva-default 11m
- 查看ingress
$ kubectl -n test-middleware get ingress
NAME CLASS HOSTS ADDRESS PORTS AGE
minio nginx minio.evescn.com 80 11m
minio-api nginx minio-api.evescn.com 80 11m
7. 登陆web界面
8. MinIO
客户端 MC
命令使用
参考文档
https://artifacthub.io/packages/helm/bitnami/minio