Logo

文档基于2025-10-10日社区最终版构建     
切换到英文版    进入演示系统    进入交流社区

MinIO Kubernetes Plugin

概述

当前稳定版本是 4.4.16

此参考文档反映了 4.4.16 版本的 MinIO Kubernetes Operator 和kubectl minioplugin.

Thekubectl minioplugin brings native support for deploying MinIO tenants to Kubernetes clusters using the 插件为在Kubernetes集群上部署MinIO租户提供了原生支持kubectlCLI。您可以使用kubectl minio要部署一个MinIO租户,几乎无需交互即可完成YAML配置文件。

Kubernetes Orchestration with the MinIO Operator facilitates automated deployment of MinIO clusters.

安装kubectl minio意味着安装MinIO Kubernetes Operator.

安装

MinIO Kubernetes 插件需要 Kubernetes 1.19.0 或更高版本:

以下代码下载 MinIO Kubernetes 插件的最新稳定版本 4.4.16 并将其安装到系统中$PATH:

wget https://github.com/minio/operator/releases/download/v4.4.16/kubectl-minio_4.4.16_linux_amd64 -O kubectl-minio
chmod +x kubectl-minio
mv kubectl-minio /usr/local/bin/

您可以通过以下方式访问该插件:kubectl minio命令。运行以下命令来验证插件的安装:

kubectl minio version

MinIO Kubernetes Plugin Syntax

创建 MinIO Operator

kubectl minio init

初始化 MinIO Operator。kubectl minio需要该运算符来实现核心功能。

该命令具有以下语法:

kubectl minio init [FLAGS]

该命令支持以下参数:

--image

用于部署操作员的镜像。 默认为operator 的最新版本.

--namespace

部署 Operator 的命名空间。

默认为minio-operator.

--cluster-domain

配置操作员 DNS 主机名时使用的域名。默认为cluster.local.

--namespace-to-watch

该操作员监视 MinIO 租户的命名空间。

默认为"" or 所有命名空间.

--image-pull-secret

用于拉取操作的密钥--image.

MinIO托管的minio/k8s-operatorimage is密码保护。 此选项仅适用于非 MinIO 镜像源且受密码保护的情况。

--console-image

部署时使用的镜像MinIO Console在 Operator 模式下,管理员可以通过图形用户界面创建和管理 MinIO 租户。

默认为minio/console:v0.7.4.

--default-minio-image

默认minio创建新 MinIO 租户时使用的镜像。默认为minio/minio:RELEASE.2021-06-07T21-40-51Z.

--default-console-image

默认MinIO Console创建新 MinIO 租户时使用的镜像。默认为minio/console:v0.7.4.

--default-kes-image

默认咳嗽创建新 MinIO 租户时使用的镜像。默认为minio/kes:v0.14.0.

--output

执行试运行并将生成的YAML输出到STDOUT使用此选项自定义 YAML 并手动应用它kubectl apply -f <FILE>.

删除 MinIO Operator

kubectl minio 删除

删除 MinIO Operator 及其所有相关资源, 包括所有 MinIO Tenant 实例watched namespace.

警告

如果底层持久卷(Persistent Volumes)PV) 创建时的回收策略为recycle or delete删除 MinIO Tenant 将导致该租户上存储的所有对象完全丢失。

在删除 MinIO 租户上的任何数据之前,请务必完成所有必要的尽职调查以确认数据安全性。

该命令具有以下语法:

kubectl minio delete [FLAGS]

该命令接受以下参数:

--namespace

要删除的 MinIO operator 的命名空间。

默认为minio-operator.

访问 MinIO Operator 控制台

Command Requires MinIO Operator

在运行此命令前,请使用以下命令验证运算符是否在线且可用:

kubectl get deployments -A --field-selector metadata.name=minio-operator

发出kubectl minio init启动 operator 的命令(如果它尚未在 Kubernetes 集群中运行)。

kubectl minio 代理

创建一个临时代理,将流量从本地主机转发到 MinIO Operator Console。Operator Console 提供了一个丰富的用户界面,用于部署和管理 MinIO Tenants。

此命令是配置 Ingress 授予 Operator Console Pod 访问权限的替代方案。

该命令具有以下语法:

kubectl minio proxy

创建 MinIO 租户 MinIO 租户是在 MinIO 多租户环境中运行的独立对象存储实例。以下是创建 MinIO 租户的步骤: ### 前提条件 -

Command Requires MinIO Operator

在运行此命令前,请使用以下命令验证运算符是否在线且可用:

kubectl get deployments -A --field-selector metadata.name=minio-operator

发出kubectl minio init启动 operator 的命令(如果它尚未在 Kubernetes 集群中运行)。

kubectl minio 租户 创建

在 Kubernetes 集群中创建包含以下资源的 MinIO 租户。create始终使用 最新稳定版本的MinIO ServerMinIO Console.

该命令具有以下语法:

kubectl minio tenant create TENANT_NAME FLAGS [ FLAGS ]

以下示例创建一个 MinIO 租户,该租户包含 4 个 MinIO 服务器,每个服务器有 8 个驱动器,总容量为 32Ti:

kubectl minio tenant create minio-tenant-1 \
  --servers          4                     \
  --volumes          8                     \
  --capacity         32Ti                  \
  --namespace        minio-tenant-1        \
  --storage-class local-storage

成功时,该命令返回以下内容:

  • 租户的管理员用户名和密码。请将这些凭据存储在安全位置,例如受密码保护的密钥管理器。MinIO不会再次显示这些凭据。

  • 用于连接到 MinIO 控制台的服务。该控制台支持对租户执行管理操作,例如配置身份和访问管理(IAM)和存储桶配置。

  • 为连接到 MinIO 租户而创建的服务。应用程序应使用此服务来对 MinIO 租户执行操作。

该命令支持以下参数:

TENANT_NAME

必需

命令创建的 MinIO 租户的名称。该必须保持独特性namespace.

--servers

必需

The number ofminio要在Kubernetes集群上部署的服务器。

确保指定的数量--serversdoes超过 Kubernetes 集群中的节点数量。MinIO 强烈建议将集群规模设置为每个 MinIO 服务器对应一个节点。

--volumes

必需

MinIO 租户中的卷数量。kubectl minio tenant create生成一个Persistent Volume Claim (PVC)对于每个 卷。

卷数会影响每个卷的请求存储量PVC 数量PVC关联到集群中每个 MinIO Pod:

该命令会生成每个PVC使用特定于 Pod 的选择器,使得 每个 Pod 仅使用PV那些本地附加到运行该 Pod 的节点上的

如果指定的卷数超过未绑定的卷数PV在集群上可用,kubectl minio tenant create挂起并等待直到所需的PV存在。

--capacity

必需

MinIO租户的总容量。kubectl minio将容量除以数量--volumes确定resources.requests.storage为每个 Persistent Volume Claim (PVC) 设置PVC).

如果没有持久卷(Persistent Volumes)PV) 可以满足请求的存储需求,kubectl minio tenant create挂起并等待,直到所需的存储存在。

--storage-class

可选

Kubernetes 的名称存储类to use 当创建持久卷声明(Persistent Volume Claims)时PVC) 用于 MinIO Tenant。指定的--storage-class 必须匹配storage-class持久化卷(Persistent Volumes)的PVs对此,PVCs应该绑定。

MinIO 强烈建议创建一个与租户部署的主机上本地附加卷相对应的存储类。这确保每个 Pod 都能使用本地附加存储以获得最佳性能和吞吐量。请参阅部署一个 MinIO 租户有关为 MinIO 租户创建存储类的指导教程

默认为default.

--namespace

可选

要在其中创建 MinIO 租户及其关联资源的命名空间。

MinIO 支持完全一致的每个命名空间一个MinIO租户。为部署到集群中的每个MinIO租户创建一个唯一的命名空间。

默认为minio.

--kes-config

包含 MinIO 密钥加密服务(KES)配置的 Kubernetes Secret 名称。启用对象服务器端加密(SSE-S3)时必须配置此项。

--output, --o

输出生成的内容YAML格式化的规范对象STDOUT如需进一步自定义。

--outputdoes创建 MinIO 租户。使用kubectl apply -f <FILE>手动使用生成的文件创建 MinIO 租户。

扩展 MinIO 租户

Command Requires MinIO Operator

在运行此命令前,请使用以下命令验证运算符是否在线且可用:

kubectl get deployments -A --field-selector metadata.name=minio-operator

发出kubectl minio init启动 operator 的命令(如果它尚未在 Kubernetes 集群中运行)。

kubectl minio 租户 扩展

扩展 MinIO 租户的总容量,通过添加新的存储池实现。每个存储池由一组独立运行的 MinIO 服务器和 MinIO 控制台 Pod 组成。新存储池使用的 MinIO 服务器和控制台 Docker 镜像与现有租户保持一致。

该命令具有以下语法:

kubectl minio tenant expand TENANT_NAME --REQ_FLAGS [OPT_FLAGS]

以下示例扩展了一个 MinIO 租户,新增一个包含 4 个 MinIO 服务器的存储池,每个服务器配备 8 个驱动器, 总容量增加 32Ti:

kubectl minio tenant expand minio-tenant-1 \
  --servers          4                     \
  --volumes          8                     \
  --capacity         32Ti                  \
  --namespace        minio-tenant-1        \
  --storage-class local-storage

该命令支持以下参数:

TENANT_NAME

必需

该命令扩展的 MinIO 租户名称。

--servers

必需

The number ofminio要在新的 MinIO 租户池中部署的服务器。

确保指定的数量--serversdoes超过 Kubernetes 集群中可用节点的数量。

--volumes

必需

新 MinIO 租户池中的卷数量。kubectl minio生成一个持久卷声明(PVC) 对于 每个卷。

卷数会影响每个卷的请求存储量PVC 数量PVC关联到新池中的每个 MinIO Pod:

该命令会生成每个PVC使用特定于 Pod 的选择器,使得 每个 Pod 仅使用PV那些本地附加到运行该 Pod 的节点上的

如果指定的卷数超过未绑定的卷数PV在集群中可用,kubectl minio tenant expand挂起并等待直到所需的PV存在。

--capacity

必需

新 MinIO 租户池的总容量。kubectl minio将容量除以数量--volumes确定resources.requests.storage为每个 Persistent Volume Claim (PVC) 设置PVC).

如果现有的持久卷(Persistent Volumes)PV) 可以满足请求的存储需求,kubectl minio tenant expand挂起并等待,直到所需的存储存在。

--namespace

要在其中创建新 MinIO 租户池的命名空间。该命名空间必须与正在扩展的 MinIO Tenant 的配置相匹配。

默认为minio.

--storage-class

可选

Kubernetes 的名称存储类to use 当创建持久卷声明(Persistent Volume Claims)时PVC) 用于新的 MinIO Tenant Pool。指定的--storage-class 必须匹配storage-class持久化卷(Persistent Volumes)的PVs对此,PVCs应该绑定。

MinIO 强烈建议创建一个与租户部署的主机上本地附加卷相对应的存储类。这确保每个 Pod 都能使用本地附加存储以获得最佳性能和吞吐量。请参阅部署一个 MinIO 租户有关为 MinIO 租户创建存储类的指导教程

--output

输出生成的内容YAML对象STDOUT用于进一步 自定义。

--outputdoes创建 新的 MinIO 租户池。使用kubectl apply -f <FILE>手动 使用生成的文件创建 MinIO 租户。

获取 MinIO 租户详细信息

Command Requires MinIO Operator

在运行此命令前,请使用以下命令验证运算符是否在线且可用:

kubectl get deployments -A --field-selector metadata.name=minio-operator

发出kubectl minio init启动 operator 的命令(如果它尚未在 Kubernetes 集群中运行)。

kubectl minio 租户 信息

显示有关 MinIO 租户的信息,包括但不限于:

  • 租户的总容量

  • 在租户上运行的 MinIO 服务器和 MinIO 控制台版本

  • 租户中每个池的配置。

该命令具有以下语法:

kubectl minio tenant info TENANT_NAME [ FLAGS ]

以下示例检索 MinIO 租户的信息minio-tenant-1在命名空间中minio-tenant-1.

kubectl minio tenant info minio-tenant-1 \
  --namespace minio-tenant-1

该命令支持以下参数:

TENANT_NAME

必需

该命令返回现有区域的 MinIO 租户名称。

--namespace

可选

在其中查找 MinIO 租户的命名空间。

默认为minio.

升级 MinIO 租户

Command Requires MinIO Operator

在运行此命令前,请使用以下命令验证运算符是否在线且可用:

kubectl get deployments -A --field-selector metadata.name=minio-operator

发出kubectl minio init启动 operator 的命令(如果它尚未在 Kubernetes 集群中运行)。

kubectl minio 租户 升级

升级minioMinIO 租户使用的服务器 Docker 镜像。

重要

MinIO 会同时升级租户中所有 Pod 使用的镜像。在升级过程完成之前,这可能会导致服务中断。

该命令具有以下语法:

kubectl minio tenant upgrade TENANT_NAME FLAGS [FLAGS]

以下示例将 MinIO Tenant 升级至使用最新稳定版本的 MinIO 服务器:

kubectl minio tenant upgrade minio-tenant-1 \
  --image  minio/minio

该命令支持以下参数:

TENANT_NAME

必需

命令要更新的 MinIO 租户的名称。

--image

必需

用于升级 MinIO 租户的 Docker 镜像。

--namespace

在其中查找 MinIO 租户的命名空间。

默认为minio.

--output

输出生成的内容YAML格式化的规范对象STDOUT如需进一步自定义。

--outputdoes升级 MinIO 租户。使用kubectl apply -f <FILE>手动使用生成的文件升级 MinIO 租户。

删除一个 MinIO 租户

Command Requires MinIO Operator

在运行此命令前,请使用以下命令验证运算符是否在线且可用:

kubectl get deployments -A --field-selector metadata.name=minio-operator

发出kubectl minio init启动 operator 的命令(如果它尚未在 Kubernetes 集群中运行)。

kubectl minio 租户 删除

删除 MinIO 租户及其关联资源。

每个 Persistent Volume Claims 的删除行为PVC) 由 租户依赖于回收策略其绑定的 持久卷 (Persistent VolumePV):

  • 对于recycle or delete策略,该命令将删除PVC.

  • 对于retain该命令保留了PVC.

底层数据的删除PV无论是自动还是手动,都会导致存储在 MinIO 租户上的所有对象丢失。请务必履行所有尽职调查,确保存储数据的安全。之前删除租户。

该命令具有以下语法:

kubectl minio tenant delete TENANT_NAME FLAGS [ FLAGS ]
kubectl minio tenant delete minio-tenant-1

–namespace minio-tenant-1

该命令包含一个确认提示,需要明确批准删除操作。

kubectl minio tenant delete --names TENANT_NAME [OPTIONAL_FLAGS]

该命令支持以下参数:

TENANT_NAME

必需

要删除的 MinIO 租户名称。

--namespace

可选

在其中查找 MinIO 租户的命名空间。

默认为minio.