0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Helm部署MinIO集群

马哥Linux运维 来源:马哥Linux运维 2023-12-03 09:44 次阅读

添加Helm仓库


[root@node1 ~]
[root@node1 ~]




[root@node1 minio]
"minio" has been added to your repositories
[root@node1 minio]

搜索并下载MinIO Chart


[root@node1 minio]
NAME            CHART VERSION   APP VERSION     DESCRIPTION                                       
bitnami/minio   12.8.6          2023.9.16       MinIO(R) is an object storage server, compatibl...
minio/minio     8.0.10          master          High Performance, Kubernetes Native Object Storage
stable/minio    0.5.5                           Distributed object storage server built for clo...






[root@node1 minio]
[root@node1 minio]
minio-8.0.10.tgz






[root@node1 minio]
[root@node1 minio]
minio  minio-8.0.10.tgz
[root@node1 minio]

查看目录结构


[root@node1 minio]




[root@node1 minio]
Chart.yaml  ci  README.md  templates  values.yaml

创建名称空间

后面将MinIO集群部署到该名称空间下


[root@node1 ~]
namespace/minio created

创建一个Secret


[root@node1 cert]
secret/tls-ssl-minio created




[root@node1 cert]
NAME            TYPE     DATA   AGE
tls-ssl-minio   Opaque   2      10s

修改value.yaml中的一些变量值


nameOverride: ""






fullnameOverride: ""






clusterDomain: cluster.local






image:
  repository: minio/minio
  tag: RELEASE.2021-02-14T04-01-33Z
  pullPolicy: IfNotPresent








mcImage:
  repository: minio/mc
  tag: RELEASE.2021-02-14T04-28-06Z
  pullPolicy: IfNotPresent








helmKubectlJqImage:
  repository: bskim45/helm-kubectl-jq
  tag: 3.1.0
  pullPolicy: IfNotPresent








mode: distributed  




additionalLabels: []




additionalAnnotations: []




extraArgs: []




DeploymentUpdate:
  type: RollingUpdate
  maxUnavailable: 0
  maxSurge: 100%




StatefulSetUpdate:
  updateStrategy: RollingUpdate








priorityClassName: ""












accessKey: "admin"   
secretKey: "minio123456"  
certsPath: "/etc/minio/certs/"
configPathmc: "/etc/minio/mc/"
mountPath: "/export"
































existingSecret: ""








bucketRoot: ""




drivesPerNode: 1


replicas: 4


zones: 1




tls:
  enabled: false
  
  certSecret: ""
  publicCrt: public.crt
  privateKey: private.key










trustedCertsSecret: ""








persistence:
  enabled: true


  
  
  
  existingClaim: ""


  
  
  
  
  
  
  
  
  
  storageClass: "rook-ceph-block"  
  VolumeName: ""
  accessMode: ReadWriteOnce
  size: 10Gi  


  
  
  
  subPath: ""












service:
  type: NodePort    
  clusterIP: ~
  port: 9000
  nodePort: 32100   


  
  
  
  externalIPs: []
  


  annotations: {}
    
    
    








imagePullSecrets: []




ingress:
  enabled: false
  labels: {}
    


  annotations: {}
    
    
    
    
    
    
    
  path: /
  hosts:
    - chart-example.local
  tls: []
  
  
  








nodeSelector: {}
tolerations: []
affinity: {}






securityContext:
  enabled: true
  runAsUser: 1000
  runAsGroup: 1000
  fsGroup: 1000




podAnnotations: {}




podLabels: {}








resources:
  requests:
    memory: 4Gi






defaultBucket:
  enabled: false
  
  name: bucket
  
  policy: none
  
  purge: false
  
  








buckets: []
  
  
  
  
  
  




makeBucketJob:
  podAnnotations:
  annotations:
  securityContext:
    enabled: false
    runAsUser: 1000
    runAsGroup: 1000
    fsGroup: 1000
  resources:
    requests:
      memory: 128Mi




updatePrometheusJob:
  podAnnotations:
  annotations:
  securityContext:
    enabled: false
    runAsUser: 1000
    runAsGroup: 1000
    fsGroup: 1000


s3gateway:
  enabled: false
  replicas: 4
  serviceEndpoint: ""
  accessKey: ""
  secretKey: ""






azuregateway:
  enabled: false
  
  replicas: 4








gcsgateway:
  enabled: false
  
  replicas: 4
  
  gcsKeyJson: ""
  
  projectId: ""








nasgateway:
  enabled: false
  
  replicas: 4
  
  
  pv: ~






environment: {}
  
  
  


networkPolicy:
  enabled: false
  allowExternal: true








podDisruptionBudget:
  enabled: false
  maxUnavailable: 1






serviceAccount:
  create: true
  
  
  name:


metrics:
  
  serviceMonitor:
    enabled: false
    additionalLabels: {}
    relabelConfigs: {}
    
    
    






etcd:
  endpoints: []
  pathPrefix: ""
  corednsPathPrefix: ""
  clientCert: ""
  clientCertKey: ""

使用Helm安装


[root@node1 minio]
[root@node1 minio]
NAME: minio
LAST DEPLOYED: Fri Sep 22 13:03:56 2023
NAMESPACE: minio
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
Minio can be accessed via port 9000 on the following DNS name from within your cluster:
minio.minio.svc.cluster.local


To access Minio from localhost, run the below commands:


  1. export POD_NAME=$(kubectl get pods --namespace minio -l "release=minio" -o jsonpath="{.items[0].metadata.name}")


  2. kubectl port-forward $POD_NAME 9000 --namespace minio


Read more about port forwarding here: http://kubernetes.io/docs/user-guide/kubectl/kubectl_port-forward/


You can now access Minio server on http://localhost:9000. Follow the below steps to connect to Minio server with mc client:


  1. Download the Minio mc client - https://docs.minio.io/docs/minio-client-quickstart-guide


  2. Get the ACCESS_KEY=$(kubectl get secret minio -o jsonpath="{.data.accesskey}" | base64 --decode) and the SECRET_KEY=$(kubectl get secret minio -o jsonpath="{.data.secretkey}" | base64 --decode)


  3. mc alias set minio-local http://localhost:9000 "$ACCESS_KEY" "$SECRET_KEY" --api s3v4


  4. mc ls minio-local


Alternately, you can use your browser or the Minio SDK to access the server - https://docs.minio.io/categories/17

查看pod运行情况


[root@node1 ~]
NAME      READY   STATUS    RESTARTS   AGE
minio-0   1/1     Running   0          3m50s
minio-1   1/1     Running   0          3m50s
minio-2   1/1     Running   0          3m50s
minio-3   1/1     Running   0          3m49s






[root@node1 minio]
NAME             STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS      AGE
export-minio-0   Bound    pvc-a70a5caa-2bad-40ab-bf19-dbbfccd3d151   10Gi       RWO            rook-ceph-block   28s
export-minio-1   Bound    pvc-c3c1a8c5-d429-47e4-acf6-a57da3bacd5a   10Gi       RWO            rook-ceph-block   28s
export-minio-2   Bound    pvc-15ed67b3-7ea0-4f06-ba46-93137480066c   10Gi       RWO            rook-ceph-block   28s
export-minio-3   Bound    pvc-a58ceb7f-dac0-4ee7-9a34-473c8f336d28   10Gi       RWO            rook-ceph-block   2
8s

查看Service地址


[root@node1 ~]
NAME        TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)          AGE
minio       NodePort    10.98.63.2           9000:32100/TCP   8m25s
minio-svc   ClusterIP   None                 9000/TCP         8m25s

登陆网页端上传文件验证

9f1143bc-90f6-11ee-939d-92fbcf53809c.jpg

命令行方式访问测试


curl https://dl.min.io/client/mc/release/linux-amd64/mc 
  --create-dirs 
  -o $HOME/minio-binaries/mc


chmod +x $HOME/minio-binaries/mc
export PATH=$PATH:$HOME/minio-binaries/






[root@node1 minio]


NAME:                                                       
  mc - MinIO Client for object storage and filesystems.     
                                                            
USAGE:                                                      
  mc [FLAGS] COMMAND [COMMAND FLAGS | -h] [ARGUMENTS...]    
                                                            
COMMANDS:                                                   
  alias      manage server credentials in configuration file
  ls         list buckets and objects                       
  mb         make a bucket                                  
  rb         remove a bucket                                
  cp         copy objects                                   
  mv         move objects                                   
  rm         remove object(s)                               
  mirror     synchronize object(s) to a remote site         
  cat        display object contents                        
  head       display first 'n' lines of an object           
  pipe       stream STDIN to an object                      
  find       search for objects                             
  sql        run sql queries on objects                     
  stat       show object metadata                           
  tree       list buckets and objects in a tree format      
  du         summarize disk usage recursively               
  retention  set retention for object(s)                    
  legalhold  manage legal hold for object(s)                
  support    support related commands                       
  license    license related commands                       
  share      generate URL for temporary access to an object 
  version    manage bucket versioning                       
  ilm        manage bucket lifecycle                        
  quota      manage bucket quota                            
  encrypt    manage bucket encryption config                
  event      manage object notifications  

访问MinIO中存储的文件


[root@node1 minio]
[root@node1 minio]
admin
[root@node1 minio]
[root@node1 minio]
minio123456






[root@node1 minio]
Added `my-minio` successfully.






[root@node1 minio]
[2023-09-22 1956 CST]     0B books/
[root@node1 minio]
[2023-09-22 1919 CST] 5.7MiB STANDARD 植物 鲜花.jpg

遇到的问题

问题一


[root@node1 minio]
Error: INSTALLATION FAILED: create: failed to create: Secret "sh.helm.release.v1.minio.v1" is invalid: data: Too long: must have at most 1048576 bytes

由于我在minio chart的解压目录新创建了一个cert文件夹,并生成了一些证书文件,导致了该错误的产生

解决办法:删除除了minio Chart 包中以外的文件包括文件夹,重新执行安装。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 存储
    +关注

    关注

    12

    文章

    3859

    浏览量

    84669
  • 集群
    +关注

    关注

    0

    文章

    79

    浏览量

    17102
  • 文件
    +关注

    关注

    1

    文章

    540

    浏览量

    24402

原文标题:Helm部署MinIO集群

文章出处:【微信号:magedu-Linux,微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    MinIO的基础概念和环境部署

    MinIO Client (mc) 为 UNIX 命令(如 ls、cat、cp、mirror、diff、find 等)提供了现代替代方案。它支持文件系统和兼容 Amazon S3 的云存储服务(AWS Signature v2 和 v4)。
    的头像 发表于 08-29 10:07 3332次阅读

    使用Helm 在容器服务k8s集群一键部署wordpress

    摘要: Helm 是啥? 微服务和容器化给复杂应用部署与管理带来了极大的挑战。Helm是目前Kubernetes服务编排领域的唯一开源子项目,做为Kubernetes应用的一个包管理工具,可理解
    发表于 03-29 13:38

    Hadoop的集群环境部署说明

    或者是相同,指令多、步骤繁琐。有的时候觉得不免觉得很奇怪,这些发行商为什么不对hadoop的集群环境部署做一下优化呢?幸运的是总算是让我找到了一个hadoop发行版集群环境搭建简单易用。这里使用的是一款
    发表于 10-12 15:51

    Flink集群部署方法

    Flink集群部署详细步骤
    发表于 04-23 11:45

    如何在集群部署时实现分布式session?

    集群部署时的分布式 session 如何实现?
    发表于 07-17 06:57

    redis集群的如何部署

    redis集群部署(伪分布式)
    发表于 05-29 17:13

    Docker部署Redis服务器集群的方法

    Docker部署Redis服务器集群
    发表于 06-13 09:12

    请问鸿蒙系统上可以部署kubernetes集群吗?

    鸿蒙系统上可以部署kubernetes集群
    发表于 06-08 11:16

    如何部署基于Mesos的Kubernetes集群

    的内核。把Kubernetes运行在Mesos集群之上,可以和其他的框架共享集群资源,提高集群资源的利用率。 本文是Kubernetes和Mesos集成指南系列文章第一篇:实战部署
    发表于 10-09 18:04 0次下载
    如何<b class='flag-5'>部署</b>基于Mesos的Kubernetes<b class='flag-5'>集群</b>

    Helm Kubernetes包管理器

    helm.zip
    发表于 04-27 14:25 2次下载
    <b class='flag-5'>Helm</b> Kubernetes包管理器

    高性能对象存储MinIO的基本概念和环境部署

    MinIO 是在 GNU Affero 通用公共许可证 v3.0 下发布的高性能对象存储。它与 Amazon S3 云存储服务 API 兼容。使用 MinIO 为机器学习、分析和应用程序数据工作负载构建高性能基础架构。
    发表于 08-29 10:54 2841次阅读

    Kubernetes的集群部署

    Kubeadm是一种Kubernetes集群部署工具,通过kubeadm init命令创建master节点,通过 kubeadm join命令把node节点加入到集群
    的头像 发表于 02-15 10:35 978次阅读

    如何开发一个helm chart

    使用helmfile时,我们首先得了解helm的使用,以及如何开发一个helm chart。
    的头像 发表于 05-16 09:28 439次阅读

    Helm的一些概念及用法

    应用,使用 Helm (https://helm.sh)是一个很不错的选择,它具备如下的能力: 简化部署 :Helm允许使用单个命令轻松部署
    的头像 发表于 05-30 09:51 716次阅读
    <b class='flag-5'>Helm</b>的一些概念及用法

    请问如何使用Helm在K8s上集成Prometheus呢?

    ArtifactHub 为 Helm Chart 提供了公共和私有资源库。我们将使用这些 Helm Chart 来设置 Kubernetes 集群中的 pod 和服务。
    的头像 发表于 01-10 17:24 244次阅读
    请问如何使用<b class='flag-5'>Helm</b>在K8s上集成Prometheus呢?