分布式存储方案MinIO的离线k8s容器化部署,超简单!!!

一、前言

分布式文件存储系统,作为一个码农,多多少少会听说大名鼎鼎 hadoop 的文件系统 HDFS 和 FastDFS。这个两个在文件存储各有优劣,但是对于现在流行的k8s容器化部署来说,这两个部署都过于麻烦,而且官网也没有明确提出部署方法。

下面就要说到我们的主角

提供官网 http://www.minio.org.cn/

二、Minio

说到 minio,我们最关心的两点,一点是是否开源,其次是好不好用。

从官网看出,是绝对开源的。还有用户遍布很广。

三、k8s容器化部署

官网提供两个方式

  1. MinIO Helm Chart通过一个简单的命令即可提供自定义而且简单的MinIO部署。更多关于MinIO Helm部署的资料,请访问这里.

  2. 你也可以浏览Kubernetes MinIO示例 ,通过.yaml文件来部署MinIO。

Helm 需要联网,这个对于没有网络的服务器,简直是噩耗。

所以,我们准备用最传统的yaml的方式进行部署

参考官网:

下载 —> kubernetes —> kubernetes CLI

在这里插入图片描述
注意:
账号密码 root123/adminadmin
集群方式部署
最少的节点为:4
存储节点为 50 GB

完整的yml

apiVersion: v1
kind: Service
metadata:
  name: minio
  labels:
    app: minio
spec:
  clusterIP: None
  ports:
    - port: 9000
      name: minio
  selector:
    app: minio
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: minio
spec:
  serviceName: minio
  replicas: 4
  template:
    metadata:
      labels:
        app: minio
    spec:
      containers:
      - name: minio
        env:
        - name: MINIO_ACCESS_KEY
          value: "root123"
        - name: MINIO_SECRET_KEY
          value: "adminadmin"
        image: minio/minio
        args:
        - server
        - http://minio-{0...3}.minio.default.svc.cluster.local/data
        ports:
        - containerPort: 9000
        # These volume mounts are persistent. Each pod in the PetSet
        # gets a volume mounted based on this field.
        volumeMounts:
        - name: data
          mountPath: /data
  # These are converted to volume claims by the controller
  # and mounted at the paths mentioned above.
  volumeClaimTemplates:
  - metadata:
      name: data
    spec:
      accessModes:
        - ReadWriteOnce
      resources:
        requests:
          storage: 50Gi
      # Uncomment and add storageClass specific to your requirements below. Read more https://kubernetes.io/docs/concepts/storage/persistent-volumes/#class-1
      #storageClassName:
---
apiVersion: v1
kind: Service
metadata:
  name: minio-service
spec:
  type: LoadBalancer
  ports:
    - port: 9000
      targetPort: 9000
      protocol: TCP
  selector:
    app: minio

以上镜像为 minio/minio
需要设置储存卷的名字 storageClassName

有了完整的yaml,部署就是简简单单的

如果看了上面的yml还不会部署,可以在留言,一天内回复!!!!

猜你喜欢

转载自blog.csdn.net/qq_34168515/article/details/109500762
今日推荐