0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Helm部署MinIO集群

馬哥Linux運(yùn)維 ? 來(lái)源:馬哥Linux運(yùn)維 ? 2023-12-03 09:44 ? 次閱讀

添加Helm倉(cāng)庫(kù)


[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]

查看目錄結(jié)構(gòu)


[root@node1 minio]




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

創(chuàng)建名稱(chēng)空間

后面將MinIO集群部署到該名稱(chēng)空間下


[root@node1 ~]
namespace/minio created

創(chuàng)建一個(gè)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運(yùn)行情況


[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

登陸網(wǎng)頁(yè)端上傳文件驗(yàn)證

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

命令行方式訪(fǎng)問(wèn)測(cè)試


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  

訪(fǎng)問(wèn)MinIO中存儲(chǔ)的文件


[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

遇到的問(wèn)題

問(wèn)題一


[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的解壓目錄新創(chuàng)建了一個(gè)cert文件夾,并生成了一些證書(shū)文件,導(dǎo)致了該錯(cuò)誤的產(chǎn)生

解決辦法:刪除除了minio Chart 包中以外的文件包括文件夾,重新執(zhí)行安裝。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 存儲(chǔ)
    +關(guān)注

    關(guān)注

    13

    文章

    4122

    瀏覽量

    85271
  • 集群
    +關(guān)注

    關(guān)注

    0

    文章

    83

    瀏覽量

    17134
  • 文件
    +關(guān)注

    關(guān)注

    1

    文章

    551

    瀏覽量

    24559

原文標(biāo)題:Helm部署MinIO集群

文章出處:【微信號(hào):magedu-Linux,微信公眾號(hào):馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    MinIO的基礎(chǔ)概念和環(huán)境部署

    MinIO Client (mc) 為 UNIX 命令(如 ls、cat、cp、mirror、diff、find 等)提供了現(xiàn)代替代方案。它支持文件系統(tǒng)和兼容 Amazon S3 的云存儲(chǔ)服務(wù)(AWS Signature v2 和 v4)。
    的頭像 發(fā)表于 08-29 10:07 ?3589次閱讀

    使用Helm 在容器服務(wù)k8s集群一鍵部署wordpress

    摘要: Helm 是啥? 微服務(wù)和容器化給復(fù)雜應(yīng)用部署與管理帶來(lái)了極大的挑戰(zhàn)。Helm是目前Kubernetes服務(wù)編排領(lǐng)域的唯一開(kāi)源子項(xiàng)目,做為Kubernetes應(yīng)用的一個(gè)包管理工具,可理解
    發(fā)表于 03-29 13:38

    Hadoop的集群環(huán)境部署說(shuō)明

    或者是相同,指令多、步驟繁瑣。有的時(shí)候覺(jué)得不免覺(jué)得很奇怪,這些發(fā)行商為什么不對(duì)hadoop的集群環(huán)境部署做一下優(yōu)化呢?幸運(yùn)的是總算是讓我找到了一個(gè)hadoop發(fā)行版集群環(huán)境搭建簡(jiǎn)單易用。這里使用的是一款
    發(fā)表于 10-12 15:51

    Flink集群部署方法

    Flink集群部署詳細(xì)步驟
    發(fā)表于 04-23 11:45

    如何在集群部署時(shí)實(shí)現(xiàn)分布式session?

    集群部署時(shí)的分布式 session 如何實(shí)現(xiàn)?
    發(fā)表于 07-17 06:57

    redis集群的如何部署

    redis集群部署(偽分布式)
    發(fā)表于 05-29 17:13

    Docker部署Redis服務(wù)器集群的方法

    Docker部署Redis服務(wù)器集群
    發(fā)表于 06-13 09:12

    請(qǐng)問(wèn)鴻蒙系統(tǒng)上可以部署kubernetes集群嗎?

    鴻蒙系統(tǒng)上可以部署kubernetes集群
    發(fā)表于 06-08 11:16

    如何部署基于Mesos的Kubernetes集群

    的內(nèi)核。把Kubernetes運(yùn)行在Mesos集群之上,可以和其他的框架共享集群資源,提高集群資源的利用率。 本文是Kubernetes和Mesos集成指南系列文章第一篇:實(shí)戰(zhàn)部署。
    發(fā)表于 10-09 18:04 ?0次下載
    如何<b class='flag-5'>部署</b>基于Mesos的Kubernetes<b class='flag-5'>集群</b>

    Helm Kubernetes包管理器

    helm.zip
    發(fā)表于 04-27 14:25 ?2次下載
    <b class='flag-5'>Helm</b> Kubernetes包管理器

    高性能對(duì)象存儲(chǔ)MinIO的基本概念和環(huán)境部署

    MinIO 是在 GNU Affero 通用公共許可證 v3.0 下發(fā)布的高性能對(duì)象存儲(chǔ)。它與 Amazon S3 云存儲(chǔ)服務(wù) API 兼容。使用 MinIO 為機(jī)器學(xué)習(xí)、分析和應(yīng)用程序數(shù)據(jù)工作負(fù)載構(gòu)建高性能基礎(chǔ)架構(gòu)。
    發(fā)表于 08-29 10:54 ?3106次閱讀

    Kubernetes的集群部署

    Kubeadm是一種Kubernetes集群部署工具,通過(guò)kubeadm init命令創(chuàng)建master節(jié)點(diǎn),通過(guò) kubeadm join命令把node節(jié)點(diǎn)加入到集群
    的頭像 發(fā)表于 02-15 10:35 ?1521次閱讀

    如何開(kāi)發(fā)一個(gè)helm chart

    使用helmfile時(shí),我們首先得了解helm的使用,以及如何開(kāi)發(fā)一個(gè)helm chart。
    的頭像 發(fā)表于 05-16 09:28 ?578次閱讀

    Helm的一些概念及用法

    應(yīng)用,使用?Helm?(https://helm.sh)是一個(gè)很不錯(cuò)的選擇,它具備如下的能力: 簡(jiǎn)化部署?:Helm允許使用單個(gè)命令輕松部署
    的頭像 發(fā)表于 05-30 09:51 ?975次閱讀
    <b class='flag-5'>Helm</b>的一些概念及用法

    請(qǐng)問(wèn)如何使用Helm在K8s上集成Prometheus呢?

    ArtifactHub 為 Helm Chart 提供了公共和私有資源庫(kù)。我們將使用這些 Helm Chart 來(lái)設(shè)置 Kubernetes 集群中的 pod 和服務(wù)。
    的頭像 發(fā)表于 01-10 17:24 ?498次閱讀
    請(qǐng)問(wèn)如何使用<b class='flag-5'>Helm</b>在K8s上集成Prometheus呢?