minio笔记3--基于k8s搭建minio集群
介绍
笔者在 minio笔记01–部署与测试minio 和 minio笔记02–基于swarm搭建minio集群 中介绍了minio 的集群搭建步骤和基础使用方法,本文继上述两篇文章介绍k8s下的minio搭建过程。其实很早就准备写一份基于k8s的集群搭建方式,但是由于各种原因耽搁很久了,最近再次发了些时间完成了k8s下的minio部署,将步骤分享在此处以供有需要的小伙伴们学习!
后续也会在此处继续更新 k8s下minio的部署和常见注意事项!
安装单个节点
- 部署服务
1. 添加 helm 源 helm repo add minio https://helm.min.io/ 2. 下载chart压缩包 helm fetch minio/minio 3. 解压并按需更改values.yaml tar zxvf minio-8.0.10.tgz vim values.yaml resources: requests: memory: 256Mi 4. 部署实例 helm install minio \ --namespace minio \ --create-namespace \ --set accessKey=minio,secretKey=minio123 \ --set mode=standalone \ --set service.type=NodePort \ --set persistence.enabled=false \ --set persistence.size=10Gi \ -f minio-8.0.10/minio/values.yaml minio/minio
- 测试
集群deployment 和 svc
web 界面:
安装 minio 集群
- 部署服务
1. 添加 helm 源 helm repo add minio https://helm.min.io/ 2. 下载chart压缩包 helm fetch minio/minio 3. 解压并按需更改values.yaml tar zxvf minio-8.0.10.tgz vim values.yaml resources: requests: memory: 256Mi 4. 部署实例 helm install minio \ --namespace minio --create-namespace \ --set accessKey=minio,secretKey=minio123 \ --set mode=distributed \ --set replicas=4 \ --set service.type=NodePort \ --set persistence.enabled=false \ --set persistence.size=10Gi \ -f minio-8.0.10/minio/values.yaml minio/minio
- 测试
集群statefulset、svc 和 endpoints
kubectl -n minio get statefulset,svc,endpoints minio
web 界面:
新建bucket test01,test02,并各自上传一个文件
mc 命令查看集群信息
mc alias set local http://192.168.2.131:32000 minio minio123
mc ls local 查看文件信息
mc admin info local 查看集群信息
由此可见,已经部署了一个4节点的minio集群。
注意事项
- 本文主要是用于测试,由此使用容器的临时存储,如果在生产上使用者需要指定动态存储类,可以使用 nfs、longhorn、ceph 等持久化存储。
更多持久化存储见: k8s storage-classes
笔者新建nfs-client 存储类后,通过nfs动态分配存储空间,从而实现了minio 的持久化存储。helm install minio \ --namespace minio --create-namespace \ --set accessKey=minio,secretKey=minio123 \ --set mode=distributed \ --set replicas=4 \ --set service.type=NodePort \ --set persistence.enabled=true \ --set persistence.size=500Mi \ --set persistence.storageClass=nfs-client \ minio-8.0.10/minio 存储路径如下: /data/nfs$ ls minio-export-minio-0-pvc-6878e732-f577-491e-8545-ba69dc5471f4 minio-export-minio-1-pvc-90fc0d1d-cab5-40e1-bb68-45ec1362d233 minio-export-minio-2-pvc-8e527781-7f45-47b5-b5c4-62ce4a666f08 minio-export-minio-3-pvc-5374587c-d38c-4006-abc3-5ab2aa41fbec test-nfs
说明
- 软件环境
k8s 版本: 1.19.4
helm chart 版本: minio/minio:minio-8.0.10
minio镜像版本:minio/minio:RELEASE.2021-02-14T04-01-33Z - 参考文档
1 minio 高性能 Kubernetes 原生对象存储
2 kubernetes部署minio对象存储
3 minio 官方文档
4 k8s中创建nfs存储类(公共盘)