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

介绍

笔者在 minio笔记01–部署与测试miniominio笔记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 \ 
    -f minio-8.0.10/minio/values.yaml  minio/minio
    
  2. 测试
    集群deployment 和 svc
    在这里插入图片描述
    web 界面:
    在这里插入图片描述
    在这里插入图片描述

安装 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 \
      -f minio-8.0.10/minio/values.yaml minio/minio
    
  2. 测试
    集群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集群。

注意事项

  1. 本文主要是用于测试,由此使用容器的临时存储,如果在生产上使用者需要指定动态存储类,可以使用 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
    

说明

  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存储类(公共盘)
Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐