MinIO对象存储 OpenShift
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.0 和 MinIO商业许可证. 通过 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环
执行步骤
下载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
字段,以满足更具体的要求。应用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
临时访问 MinIO S3 API 和控制台
使用
kubectl port-forward
命令用于将流量从 MinIO pod 临时转发到本地机器:kubectl port-forward pod/minio 9000 9090 -n minio-dev
- 这个命令转发的端口为
9000
和9090
将其连接到本地机器上相应的端口,同时在Shell中保持活动状态。 kubectl port-forward
此命令仅在 shell 会话中处于活动状态时才有效。
终止会话会关闭本地机器上的端口。
备注
以下步骤假定了一个活跃的过程
kubectl port-forward
命令.要长期访问该Pod,需要进行配置 Ingress 或者在 Kubernetes 内部使用类似的网络控制组件来路由进出 Pod 的流量。配置 Ingress 不在本文档的讨论范围内。
- 这个命令转发的端口为
通过浏览器访问你的MinIO服务器r
在本地的电脑上通过浏览器访问 minio-console 可以在网址栏上输入
http://127.0.0.1:9090
打开MinIO控制台.登录MinIO控制台的账号密码默认为
minioadmin | minioadmin
. 在这里有关于默认凭证信息的说明 MinIO超级管理员.