minio笔记3--基于k8s搭建minio集群

介绍

笔者在 ​​minio笔记01–部署与测试minio​​​ 和 ​​minio笔记02–基于swarm搭建minio集群​​​ 中介绍了minio 的集群搭建步骤和基础使用方法,本文继上述两篇文章介绍k8s下的minio搭建过程。其实很早就准备写一份基于k8s的集群搭建方式,但是由于各种原因耽搁很久了,最近再次发了些时间完成了k8s下的minio部署,将步骤分享在此处以供有需要的小伙伴们学习!
后续也会在此处继续更新 k8s下minio的部署和常见注意事项!

安装单个节点

  1. 部署服务
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 \
  1. 测试
    集群deployment 和 svc
  2. minio笔记3--基于k8s搭建minio集群_基于k8s搭建minio集群

  3. web 界面:
  4. minio笔记3--基于k8s搭建minio集群_基于k8s搭建minio集群_02


  5. minio笔记3--基于k8s搭建minio集群_minio_03

安装 minio 集群

  1. 部署服务
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 \
  1. 测试
    集群statefulset、svc 和 endpoints
    kubectl -n minio get statefulset,svc,endpoints minio
  2. minio笔记3--基于k8s搭建minio集群_对象存储_04

  3. web 界面:
    新建bucket test01,test02,并各自上传一个文件
  4. minio笔记3--基于k8s搭建minio集群_对象存储_05

  5. mc 命令查看集群信息
    mc alias set local http://192.168.2.131:32000 minio minio123
    mc ls local 查看文件信息
  6. minio笔记3--基于k8s搭建minio集群_k8s_06

  7. mc admin info local 查看集群信息
  8. minio笔记3--基于k8s搭建minio集群_对象存储_07

  9. 由此可见,已经部署了一个4节点的minio集群。

注意事项

  1. 本文主要是用于测试,由此使用容器的临时存储,如果在生产上使用者需要指定动态存储类,可以使用 nfs、longhorn、ceph 等持久化存储。
    更多持久化存储见:​​​k8s storage-classes​​ 笔者新建nfs-client 存储类后,通过nfs动态分配存储空间,从而实现了minio 的持久化存储。
  2. 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

说明

  1. 软件环境
    k8s 版本: 1.19.4
    helm chart 版本: minio/minio:minio-8.0.10
    minio镜像版本:minio/minio:RELEASE.2021-02-14T04-01-33Z
  2. 参考文档
    ​​​1 minio 高性能 Kubernetes 原生对象存储​​​​2 kubernetes部署minio对象存储​​​​3 minio 官方文档​​​​4 k8s中创建nfs存储类(公共盘)​