• 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 命令使用

    MinIO 客户端 MC 命令

    参考文档

    https://artifacthub.io/packages/helm/bitnami/minio
    
  • 相关阅读:
    Java匹马行天下之C国程序员的秃头原因
    Java匹马行天下之学编程的起点——高级语言大锅烩
    jdbc连接案例
    Java匹马行天下之学编程的起点——走进编程的殿堂
    Java匹马行天下之学编程的起点——编程常识知多少
    cookie、session和application超详解说
    匹马行天下之博客园五月纪念日——去你的写博无用论
    匹马行天下之高薪编程,品牌公司——人往高处走,作为程序员的你够格吗
    MySQL中boolean类型设置
    python使用rsa库做公钥解密(网上别处找不到)
  • 原文地址:https://www.cnblogs.com/evescn/p/16341349.html
Copyright © 2020-2023  润新知