中文文档

MinIO对象存储 OpenShift

重要

最新的汉化工作正在紧张推进中,若需要商业技术支持和授权购买请联系4008-566-339。

对MinIO有更多建议,您可以联系:sales@minio.org.cn.

MinIO是一个对象存储解决方案,它提供了与Amazon Web Services S3兼容的API,并支持所有核心S3功能。 MinIO有能力在任何地方部署 - 公有云或私有云,裸金属基础设施,编排环境,以及边缘基础设施。

这个网站记录了在OpenShift 4.7+上部署MinIO的运维和开发操作,通过 Red Hat® OpenShift® 容器管理平台 4.7+ for the latest stable version of the MinIO Operator: 7.1.1.

重要

2024 年删除了对通过 RedHat Marketplace 或 OperatorHub 部署 MinIO 操作器的支持。 MinIO AIStor 完全支持通过 Marketplace 和 OperatorHub 安装到企业级 RedHat Kubernetes 发行版,如 OpenShift Container Platform (OCP)。 MinIO SUBNET 客户可以打开一个问题,进一步了解迁移到 AIStor 的说明。

MinIO在双重许可证下发布,一个是 AGPL v3.0MinIO商业许可证. 通过 MinIO SUBNET 部署和注册的商业许可证的用户,可以免除AGPL v3.0许可限制,还可以购买技术服务和获取商业授权获得7 x 24小时的商业服务,在中国您可以拔打4008-566-339与我们联系。

如果你需要马上体验,你可以直接使用 minio-console 和我们的 演示服务器 https://play.minio.org.cn,快速体验MinIO。 MinIO演示服务器 是一个 公开 运行了MinIO集群的测试服务器. 任何上传到 MinIO演示服务器 的文件是公开的,您需要注意在演示和测试期间不要上传重要文件和隐私文件,因为其他人可以访问并且我们会定期删除测试数据。 要了解更多如何连接到 MinIO演示服务器 的内容, 请查看 MinIO控制台登录的相关知识.

这是一个部署单节点单磁盘MinIO服务器的步骤,在 Kubernetes 的步骤,主要用于早期快速开发和评估MinIO存储服务器在S3存储层API的兼容性。

同时,还可以使用 MinIO操作员 在Kubernetes上部署和管理MinIO的多租户。

先决条件

  • 已有的Kubernetes部署,至少有一个工作节点配备了 最新版 本地连接的驱动器。

  • 本地 kubectl 安装配置,用于在目标Kubernetes部署上创建和访问资源。

  • 熟悉Kubernetes环境

  • 熟悉使用终端或Shell环

执行步骤

  1. 下载MinIO相关的操作对象

    下载 minio-dev.yaml 到你操作的服务器上:

    curl https://raw.githubusercontent.com/minio/docs/master/source/extra/examples/minio-dev.yaml -O
    

    该文件描述了两种 Kubernetes 资源:

    • 一个新的命名空间 minio-dev , 和

    • 一个利用工作节点上的驱动器或卷来提供数据的 MinIO pod

    选择 MinIO 对象存储的 YAML 文件概览 去了解文件对象的详细定义。

    minio-dev.yaml 包含以下Kubernetes资源:

    # Deploys a new Namespace for the MinIO Pod
    apiVersion: v1
    kind: Namespace
    metadata:
      name: minio-dev # Change this value if you want a different namespace name
      labels:
        name: minio-dev # Change this value to match metadata.name
    ---
    # Deploys a new MinIO Pod into the metadata.namespace Kubernetes namespace
    #
    # The `spec.containers[0].args` contains the command run on the pod
    # The `/data` directory corresponds to the `spec.containers[0].volumeMounts[0].mountPath`
    # That mount path corresponds to a Kubernetes HostPath which binds `/data` to a local drive or volume on the worker node where the pod runs
    # 
    apiVersion: v1
    kind: Pod
    metadata:
      labels:
        app: minio
      name: minio
      namespace: minio-dev # Change this value to match the namespace metadata.name
    spec:
      containers:
      - name: minio
        image: quay.io/minio/minio:latest
        command:
        - /bin/bash
        - -c
        args: 
        - minio server /data --console-address :9001
        volumeMounts:
        - mountPath: /data
          name: localvolume # Corresponds to the `spec.volumes` Persistent Volume
      nodeSelector:
        kubernetes.io/hostname: kubealpha.local # Specify a node label associated to the Worker Node on which you want to deploy the pod.
      volumes:
      - name: localvolume
        hostPath: # MinIO generally recommends using locally-attached volumes
          path: /mnt/disk1/data # Specify a path to a local drive or volume on the Kubernetes worker node
          type: DirectoryOrCreate # The path to the last directory must exist
    

    该对象部署两个资源:

    • 一个新的命名空间 minio-dev , 和

    • 一个在Worker Node上使用驱动器或卷来提供数据服务的MinIO Pod

    MinIO资源定义使用Kubernetes 节点选择器和标签 将Pod限制为与主机名标签匹配的节点。 使用 kubectl get nodes --show-labels 命令查看集群中每个节点分配的所有标签。

    MinIO Pod使用 hostPath 卷来存储数据。此路径 必须 对应于Kubernetes工作节点上的本地驱动器或文件夹。

    熟悉Kubernetes调度和卷提供的用户可以修改 spec.nodeSelector , volumeMounts.name , 和 volumes 字段,以满足更具体的要求。

  2. 应用MinIO对象定义

    以下命令应用 minio-dev.yaml 配置并将对象部署到Kubernetes:

    kubectl apply -f minio-dev.yaml
    

    这个命令输出应类似于以下内容:

    namespace/minio-dev created
    pod/minio created
    

您可以通过运行以下命令来验证Pod的状态 kubectl get pods :

kubectl get pods -n minio-dev

输出应该类似于以下内容:

NAME    READY   STATUS    RESTARTS   AGE
minio   1/1     Running   0          77s

您也可以使用以下命令来检索 Pod 状态的详细信息:

kubectl describe pod/minio -n minio-dev

kubectl logs pod/minio -n minio-dev
  1. 临时访问 MinIO S3 API 和控制台

    使用 kubectl port-forward 命令用于将流量从 MinIO pod 临时转发到本地机器:

    kubectl port-forward pod/minio 9000 9090 -n minio-dev
    
    这个命令转发的端口为 90009090 将其连接到本地机器上相应的端口,同时在Shell中保持活动状态。

    kubectl port-forward 此命令仅在 shell 会话中处于活动状态时才有效。

    终止会话会关闭本地机器上的端口。

    备注

    以下步骤假定了一个活跃的过程 kubectl port-forward 命令.

    要长期访问该Pod,需要进行配置 Ingress 或者在 Kubernetes 内部使用类似的网络控制组件来路由进出 Pod 的流量。配置 Ingress 不在本文档的讨论范围内。

  2. 通过浏览器访问你的MinIO服务器r

    在本地的电脑上通过浏览器访问 minio-console 可以在网址栏上输入 http://127.0.0.1:9090 打开MinIO控制台.

    登录MinIO控制台的账号密码默认为 minioadmin | minioadmin . 在这里有关于默认凭证信息的说明 MinIO超级管理员.

    MinIO控制台显示登录界面

您可以使用MinIO控制台进行诸如身份和访问管理、指标和日志监控或服务器配置等一般管理任务。 每个MinIO服务器都包含其自带的嵌入式MinIO控制台。

MinIO控制台显示桶列表

获得更多技术细节,请访问 minio-console 文档.

  1. (选择性操作) 连接到MinIO客户端

    如果您当前使用的本地电脑拥有 mc installed, 可以使用 mc alias set 命令添加已经存在的MinIO服务器,并进行管理:

    mc alias set k8s-minio-dev http://127.0.0.1:9000 minioadmin minioadmin
    mc admin info k8s-minio-dev
    
    • 设置一个alias 别名

    • 添写MinIO服务器地址和IPO

    • 输入MinIO或其他S3服务器的access key AK用户信息

    • 输入MinIO或者其他S3服务器的secret key SK用户信息

下一步

Join Slack 商业支持购买咨询