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

MinIO Documentation

MinIO Custom Resource Definition

MinIO Operator 安装了一个Custom Resource Definition (CRD)描述 MinIO Tenant 对象的定义。 Operator 使用此 CRD 在 Kubernetes 集群中配置和管理 Tenant 资源。

本页记录了用于自定义 Operator 部署的租户的 CRD 参考文档。 本文档假定您已熟悉所有引用的 Kubernetes 概念、工具和操作流程。

Operator CRD v2 参考文档

Package v2 - 本页面为 MinIO Operator 提供快速自动生成的参考文档Operator CRD v2 ReferenceCRD。有关 MinIO Operator CRD 更完整的文档,请参阅MinIO Kubernetes Documentation.

TheOperator CRD v2 ReferenceAPI 随 v4.0.0 MinIO Operator 版本发布。 MinIO Operator 会自动转换使用该版本的现有租户。/v1API 到/v2.

Bucket 描述了默认创建的存储桶

字段 描述

name 字符串

region 字符串

objectLock boolean

CertificateConfig

CertificateConfig (certConfig) 定义控制属性 与 Operator 在租户创建过程中自动生成的任何 TLS 证书相关联。如果以下情况发生,这些字段将不产生任何效果:spec.autoCert: false.

字段 描述

commonName 字符串

可选

TheCommonName or CN属性关联到自动生成的TLS证书。

organizationName 字符串数组

可选

指定一个或多个OrganizationName or O自动生成的TLS证书关联属性。

dnsNames 字符串数组

可选

指定一个或多个 x.509 主题备用名称 (SAN) 以关联到自动生成的 TLS 证书。MinIO Server Pod 使用 SNI 根据请求的主机名确定要响应的证书。

CertificateStatus

CertificateStatus 用于跟踪由操作员管理的所有证书的状态

字段 描述

autoCertEnabled boolean

AutoCertEnabled 用于记录我们是否知晓租户已启用自动证书功能

customCertificates CustomCertificates

提供client, minio,以及手动添加到 Operator 的 `minioCAs` 自定义 TLS 证书。

CustomCertificateConfig

CustomCertificateConfig (自定义证书配置)customCertificateConfig) 提供与手动添加到 Operator 的 TLS 证书相关的属性,这些证书是租户创建过程的一部分。如果没有自定义 TLS 证书,这些字段将不包含任何数据。

字段 描述

certName 字符串

可选

输出一个或多个CertName与手动提供的 TLS 证书关联的属性

domains 字符串数组

可选

输出一个或多个Domains与手动提供的 TLS 证书关联的属性

expiry 字符串

可选

输出一个或多个Expiry与手动提供的 TLS 证书关联的属性。

expiresIn 字符串

可选

输出一个或多个ExpiresIn与手动提供的 TLS 证书关联的属性

serialNo 字符串

可选

输出一个或多个SerialNo与手动提供的 TLS 证书关联的属性

CustomCertificates

CustomCertificates (自定义证书)customCertificates) 提供作为租户创建过程的一部分手动添加到 Operator 的 TLS 证书分组。 如果没有自定义 TLS 证书,这些字段将不包含任何数据。

字段 描述

client CustomCertificateConfig数组

可选

客户端

minio CustomCertificateConfig数组

可选

Minio

minioCAs CustomCertificateConfig数组

可选

证书颁发机构

ExposeServices

ExposeServices (exposeServices) 定义了 MinIO 对象存储和 Console 服务的暴露方式。

字段 描述

minio boolean

可选

指示 Operator 暴露 MinIO 服务。默认为false.

console boolean

可选

指示 Operator 暴露 MinIO 控制台服务。默认为false.

功能特性

Features (features) - 描述要在 MinIO 租户中启用/禁用哪些 MinIO 功能的对象。

字段 描述

bucketDNS boolean

可选

指定true允许客户端使用 DNS 路径访问存储桶<bucket>.minio.default.svc.cluster.local默认值为false.

domains TenantDomains

可选

指定用于访问 MinIO 和 Console 的域名列表。

enableSFTP boolean

可选

启动支持 SFTP 的 minio 服务器

HealthStatus (string)

HealthStatus 表示租户的健康状态,包括服务降级或离线状态

KESConfig

KESConfig (kes) 定义了MinIO 密钥加密服务(KES) StatefulSet 作为 MinIO Tenant 的一部分部署。KES 支持使用外部密钥管理服务(KMS)对对象进行服务器端加密。

字段 描述

replicas 整数

可选

指定要在租户中部署的 KES 副本 Pod 数量。 默认为2.

image 字符串

可选

imagePullPolicy PullPolicy

可选

MinIO Docker 镜像的拉取策略。请指定以下选项之一:

  • Always

  • Never

  • IfNotPresent(默认)

请参阅 Kubernetes 文档了解详情https://kubernetes.io/docs/concepts/containers/images#updating-images

serviceAccountName 字符串

可选

TheKubernetes Service Account用于运行作为租户一部分创建的 MinIO KES Pod。

kesSecret LocalObjectReference

必需

指定一个Kubernetes 不透明密钥其中包含用于设置 MinIO KES 服务的环境变量。

查看MinIO Operatorconsole-secret.yaml举个例子。

externalCertSecret LocalCertificateReference

可选

在租户中的每个 MinIO KES Pod 上启用支持 SNI 的 TLS。如果externalCertSecret被省略 spec.requestAutoCert设置为falseMinIO KES pods 部署没有TLS 已启用。

指定一个Kubernetes TLS secret. The MinIO Operator 将指定的证书复制到租户中的每个 MinIO pod。当 MinIO pod/service 响应 TLS 连接请求时,它使用 SNI 来选择具有匹配subjectAlternativeName.

指定一个包含以下字段的对象:

  • - name- 包含 TLS 证书的 Kubernetes secret 的名称。

  • - type- 指定kubernetes.io/tls

查看MinIO Operator CRD有关为 MinIO 租户配置 TLS 的示例和更完整文档,请参阅参考指南。

clientCertSecret LocalCertificateReference

可选

指定一个Kubernetes TLS secret包含一个自定义根证书颁发机构和x.509证书,用于与外部密钥管理服务(如Hashicorp Vault)执行mTLS身份验证。

指定一个包含以下字段的对象:

  • - name- 包含证书颁发机构和 x.509 证书的 Kubernetes 密钥名称。

  • - type- 指定kubernetes.io/tls

gcpCredentialSecretName 字符串

可选

Specify the GCP default credentials to be used for KES to authenticate to GCP key store

gcpWorkloadIdentityPool 字符串

可选

Specify the name of the workload identity pool (This is required for generating service account token)

annotations 对象 (键:字符串, 值:字符串)

可选

如果提供,请将这些注解用于 KES 对象元数据注解

labels 对象 (键:字符串, 值:字符串)

可选

如果提供,请将这些标签用于 KES 对象元数据标签

resources 资源需求

可选

用于指定CPU和内存的对象规范资源分配MinIO 租户中的资源限制。

nodeSelector 对象 (键:字符串, 值:字符串)

可选

Operator 在选择部署 MinIO KES Pod 的节点时应用的过滤器。Operator 仅选择标签与指定选择器匹配的节点。

请参阅 Kubernetes 文档中关于将 Pod 分配给节点欲了解更多信息。

tolerations 容忍度数组

可选

指定一个或多个Kubernetes 容忍度应用于 MinIO KES pod。

affinity 亲和性

可选

为 KES Pod 指定节点亲和性、Pod 亲和性和 Pod 反亲和性。

topologySpreadConstraints TopologySpreadConstraint数组

可选

指定一个或多个Kubernetes 拓扑分布约束应用于在 MinIO 池中部署的 Pod。

keyName 字符串

可选

如果提供,请将此作为 KES 在 KMS 后端创建的密钥名称

securityContext PodSecurityContext

指定Security ContextMinIO KES pod 的。Operator 仅支持以下 pod 安全字段:

  • fsGroup

  • fsGroupChangePolicy

  • runAsGroup

  • runAsNonRoot

  • runAsUser

  • seLinuxOptions

containerSecurityContext SecurityContext

指定Security ContextMinIO KES pod 的数量。

env EnvVar数组

可选

如果提供,MinIO Operator 在部署 KES 资源时会添加指定的环境变量。

LocalCertificateReference

LocalCertificateReference (externalCertSecret, externalCaCertSecret,clientCertSecret) 包含一个 Kubernetes secret, 其中包含 TLS 证书或证书颁发机构文件,用于在 MinIO 租户中启用 TLS。

字段 描述

name 字符串

必需

包含 TLS 证书或证书颁发机构文件的 Kubernetes 密钥的名称。

type 字符串

必需

Kubernetes secret 的类型。请指定kubernetes.io/tls

日志记录

Logging 描述了 MinIO 租户的日志记录功能。

字段 描述

json boolean

anonymous boolean

quiet boolean

池 (pools) 在租户上定义一个 MinIO 服务器池。每个池 由一组 MinIO 服务器 Pod 组成,这些 Pod 将其存储资源 "池化"以支持对象存储和检索请求。每个 服务器池都独立于其他所有池,并支持 MinIO 租户中 可用存储资源的水平扩展。

查看MinIO Operator CRDreference for thepools用于示例和更完整文档的对象。

字段 描述

name 字符串

必需指定池的名称。如果省略此字段,Operator 将自动生成池名称。

servers 整数

必需

要在池中部署的 MinIO 服务器 Pod 数量。最小值为2.

MinIO Operator 至少需要4每个池的卷数。具体来说,结果是pools.servers X pools.volumesPerServer必须大于4.

volumesPerServer 整数

必需

为池中每个 MinIO 服务器 Pod 生成的持久卷声明数量。

MinIO Operator 至少需要4每个池的卷数。具体来说,结果是pools.servers X pools.volumesPerServer必须大于4.

volumeClaimTemplate PersistentVolumeClaim

必需

指定 MinIO Operator 在生成 MinIO 租户的持久卷声明时使用的配置选项。

resources 资源需求

可选

用于指定CPU和内存的对象规范资源分配MinIO 租户中的资源限制。

nodeSelector 对象 (键:字符串, 值:字符串)

可选

Operator 在选择池中部署 Pod 的节点时应用的筛选器。Operator 仅选择标签与指定选择器匹配的节点。

请参阅 Kubernetes 文档中关于将 Pod 分配给节点欲了解更多信息。

affinity 亲和性

可选

为 MinIO 池中的 Pod 指定节点亲和性、Pod 亲和性和 Pod 反亲和性。

tolerations 容忍度数组

可选

指定一个或多个Kubernetes 容忍度应用于在 MinIO 池中部署的 Pod。

topologySpreadConstraints TopologySpreadConstraint数组

可选

指定一个或多个Kubernetes 拓扑分布约束应用于在 MinIO 池中部署的 Pod。

securityContext PodSecurityContext

可选

指定Security Context池中 Pod 的数量。Operator 仅支持以下 Pod 安全字段:

  • fsGroup

  • fsGroupChangePolicy

  • runAsGroup

  • runAsNonRoot

  • runAsUser

containerSecurityContext SecurityContext

指定Security Context池中容器的数量。Operator 仅支持以下容器安全字段:

  • runAsGroup

  • runAsNonRoot

  • runAsUser

annotations 对象 (键:字符串, 值:字符串)

可选

指定要附加到池的自定义标签和注解。可选

如果提供,请将这些注解用于池对象元注解(StatefulSet 和 Pod 模板)

labels 对象 (键:字符串, 值:字符串)

可选

如果提供,请将这些标签用于 Pool 对象元注解 (Statefulset 和 Pod 模板)

runtimeClassName 字符串

可选

如果提供,StatefulSet 中的每个 Pod 都将使用指定的 RuntimeClassName 运行,更多信息请参考https://kubernetes.io/docs/concepts/containers/runtime-class/

PoolState (string)

PoolState 表示池的状态

PoolStatus

PoolStatus 用于跟踪所有池及其当前状态

字段 描述

ssName 字符串

state PoolState

legacySecurityContext boolean

LegacySecurityContext 代表传统安全上下文。它表示这些池是在 v4.2.3 版本之前创建的,当时我们引入了默认的非 root 安全上下文,因此我们应该继续在没有安全上下文的情况下运行此池。

PoolsMetadata

PoolsMetadata (poolsMetadata) 为 MinIO 池有状态集/容器组定义自定义标签和注解。

字段 描述

labels 对象 (键:字符串, 值:字符串)

可选

如果提供,将这些标签附加到 MinIO StatefulSet / Pods

annotations 对象 (键:字符串, 值:字符串)

可选

如果提供,将这些注解附加到 MinIO StatefulSet / Pod

ServiceMetadata

ServiceMetadata (serviceMetadata) 为 MinIO 对象存储服务和/或 MinIO 控制台服务定义自定义标签和注解。

字段 描述

minioServiceLabels 对象 (键:字符串, 值:字符串)

可选

如果提供,将这些标签附加到 MinIO 服务

minioServiceAnnotations 对象 (键:字符串, 值:字符串)

可选

如果提供,将这些注解附加到 MinIO 服务

consoleServiceLabels 对象 (键:字符串, 值:字符串)

可选

如果提供,将这些标签附加到控制台服务

consoleServiceAnnotations 对象 (键:字符串, 值:字符串)

可选

如果提供,将这些注解附加到 Console 服务

kesServiceLabels 对象 (键:字符串, 值:字符串)

可选

如果提供,将这些标签附加到 KES 服务

kesServiceAnnotations 对象 (键:字符串, 值:字符串)

可选

如果提供,将这些注解附加到 KES 服务

SideCars

SideCars (边车)sidecars) 定义了一个容器列表,Operator 会将其附加到每个 MinIO 服务器 Pod 中pool.

字段 描述

containers 容器数组

可选

Pod 内部运行的容器列表

volumeClaimTemplates PersistentVolumeClaim数组

可选

volumeClaimTemplates 是一个允许 Pod 引用的声明列表。StatefulSet 控制器负责以维护 Pod 身份的方式将网络标识映射到声明。此列表中的每个声明必须至少在模板的一个容器中具有一个与之匹配(通过名称)的 volumeMount。此列表中的声明优先于模板中具有相同名称的任何卷。

volumes Volume数组

可选

属于 Pod 的容器可以挂载的卷列表。更多信息:https://kubernetes.io/docs/concepts/storage/volumes

resources 资源需求

可选

如果设置了 sidecar 的 Resource,initcontainer 将使用该设置。

租户

Tenant 是一个Kubernetes 对象描述一个 MinIO 租户。

字段 描述

apiVersion 字符串

Operator CRD v2 Reference

kind 字符串

Tenant

metadata ObjectMeta

请参阅 Kubernetes API 文档 了解字段详情metadata.

scheduler TenantScheduler

spec TenantSpec

必需

MinIO租户对象的根字段。

TenantDomains

TenantDomains (domains) - 用于从 Kubernetes 集群外部访问租户的域名列表。这将仅配置 MinIO 以支持所列域名,但仍需进行外部 DNS 配置。所列域名应包含协议和端口(如有使用),例如:https://minio.domain.com:8123

字段 描述

minio 字符串数组

MinIO 使用的域名列表。这将支持通过 DNS 风格访问对象存储,其中存储桶名称从域名的子域名推断得出。

console 字符串

用于暴露 MinIO Console 的域名,这将配置浏览器访问时的 MinIO 重定向。如果 Console 通过子路径暴露,域名应包含该子路径,例如:https://console.domain.com:8123/subpath/

TenantScheduler

TenantScheduler (scheduler) - 描述用于部署 MinIO 租户的 Kubernetes 调度程序的对象。

字段 描述

name 字符串

可选

指定名称Kubernetes 调度器用于调度租户 Pod

TenantSpec

TenantSpec (spec) 定义 MinIO 租户对象的配置。

以下参数特定于Operator CRD v2 ReferenceMinIO CRD APIspec作为 MinIO Operator v4.0.0 的一部分添加的定义。

有关此对象的更完整文档,请参阅MinIO Kubernetes Documentation.

字段 描述

pools 数组

必需

描述 MinIO 租户中部署的每个 MinIO 服务器池的对象数组。每个池由一组 MinIO 服务器 Pod 组成,这些 Pod 将其存储资源"池化"以支持对象存储和检索请求。每个服务器池都独立于其他所有池,并支持 MinIO 租户中可用存储资源的水平扩展。

MinIO 租户spec 必须具备至少元素在pools数组。

查看MinIO Operator CRDreference for thepools对象用于 示例和更完整的文档。

image 字符串

可选

imagePullSecret LocalObjectReference

可选

指定用于从私有 Docker 仓库拉取镜像的密钥。

podManagementPolicy PodManagementPolicyType

可选

StatefulSet 创建的 Pod 管理策略

env EnvVar数组

可选

如果提供,MinIO Operator 在部署租户资源时会添加指定的环境变量。

externalCertSecret LocalCertificateReference数组

可选

在每个租户的 MinIO Pod 上启用支持 SNI 的 TLS。如果externalCertSecret被省略 requestAutoCert设置为falseMinIO 租户部署没有TLS 已启用。

指定一个数组Kubernetes TLS secrets. The MinIO Operator 将指定的证书复制到租户中的每个 MinIO 服务器 Pod。当 MinIO Pod/服务响应 TLS 连接请求时,它会使用 SNI 来选择匹配的证书subjectAlternativeName.

数组中的每个元素externalCertSecretarray 是一个包含以下字段的对象:

  • - name- 包含 TLS 证书的 Kubernetes secret 的名称。

  • - type- 指定kubernetes.io/tls

查看MinIO Operator CRD有关为 MinIO 租户配置 TLS 的示例和更完整文档,请参阅参考指南。

externalCaCertSecret LocalCertificateReference数组

可选

允许 MinIO 服务器 Pod 验证由不在 Pod 信任存储中的证书颁发机构签名的客户端 TLS 证书。

指定一个数组Kubernetes TLS secretsMinIO Operator 会将指定证书复制到租户中的每个 MinIO 服务器 Pod。

数组中的每个元素externalCertSecretarray 是一个包含以下字段的对象:

  • - name- 包含证书颁发机构的 Kubernetes Secret 名称。

  • - type- 指定kubernetes.io/tls.

查看MinIO Operator CRD有关为 MinIO 租户配置 TLS 的示例和更完整文档,请参阅参考指南。

externalClientCertSecret LocalCertificateReference

可选

在 MinIO 租户 Pod 之间启用 mTLS 身份验证MinIO KES. 必需用于启用 MinIO 租户与 MinIO KES 之间的连接。

指定一个Kubernetes TLS secrets. The MinIO Operator 将指定的证书复制到 租户中的每个 MinIO 服务器 Pod。该 Secret必须包含以下字段:

  • name- 包含 TLS 证书的 Kubernetes secret 的名称。

  • type- 指定kubernetes.io/tls

指定的证书必须对应 KES 服务器上的一个身份。请参阅KES Wiki有关 KES 身份的更多信息。

如果使用 MinIO Operator 部署 KES,请将证书的哈希值作为kes对象规范。

查看MinIO Operator CRD有关为 MinIO 租户配置 TLS 的示例和更完整文档,请参阅参考指南。

externalClientCertSecrets LocalCertificateReference数组

可选

为 MinIO 租户 Pod 提供挂载额外客户端证书的支持 多个客户端证书将使用以下文件夹结构进行挂载:

  • 证书

  • * client-0

  • * * client.crt

  • * * client.key

  • * client-1

  • * * client.crt

  • * * client.key

  • * * client-2

  • * client.crt

  • * * client.key

指定一个Kubernetes TLS secrets. The MinIO Operator 将指定的证书复制到租户中的每个 MinIO 服务器 pod,之后可以通过环境变量引用该证书。该 secret必须包含以下字段:

  • name- 包含 TLS 证书的 Kubernetes secret 的名称。

  • type- 指定kubernetes.io/tls

mountPath 字符串

可选

MinIO 卷(PV)的挂载路径。默认为/export

subPath 字符串

可选

挂载路径内的子路径。这是 MinIO 存储数据的目录。默认为""`(空)

requestAutoCert boolean

可选

启用使用基于Kubernetes的 TLS证书生成以及为 MinIO 租户中的 Pod 和服务进行签名。

  • 指定true显式启用自动证书生成(默认)。

  • 指定false禁用自动证书生成。

If requestAutoCert设置为false externalCertSecret被省略时, MinIO Tenant 会部署没有TLS 已启用。

查看MinIO Operator CRD有关为 MinIO 租户配置 TLS 的示例和更完整文档,请参阅参考指南。

certExpiryAlertThreshold 整数

CertExpiryAlertThreshold 是证书过期警报触发前距离到期日的最短天数。

liveness 探针

容器存活探针。 如果探针失败,容器将被重启。

readiness 探针

容器就绪探针 readiness。如果探针失败,容器将从服务端点中移除。

startup 探针

Startup Probe 允许配置 Pod 在接收流量前的最大启动宽限期。

lifecycle 生命周期

容器的生命周期钩子。

features 功能特性

S3相关功能可以禁用或启用,例如bucketDNS等等。

certConfig CertificateConfig

可选

允许设置CommonName, OrganizationdnsName所有由 Operator 自动生成的 TLS 证书的属性。如果配置此对象,则无效requestAutoCert is false.

kes KESConfig

可选

指示 MinIO Operator 部署MinIO 密钥加密服务(KES) 使用指定配置。MinIO KES 支持在 MinIO 租户上执行对象服务端加密。

prometheusOperator boolean

可选

指示 MinIO Operator 使用 Prometheus Operator。

租户抓取配置将被添加到由 prometheus-operator 管理的 Prometheus 中。

serviceAccountName 字符串

可选

TheKubernetes Service Account用于运行作为租户一部分创建的 MinIO Pod。

priorityClassName 字符串

可选

表示 Pod 的优先级,从而体现 Pod 相对于集群中其他 Pod 的重要性。此配置仅适用于 MinIO Pod。

参考 KubernetesPriority 类文档获取更完整的文档。

imagePullPolicy PullPolicy

可选

MinIO Docker 镜像的拉取策略。请指定以下选项之一:

  • Always

  • Never

  • IfNotPresent(默认)

请参阅 Kubernetes 文档了解详情https://kubernetes.io/docs/concepts/containers/images#updating-images

sideCars SideCars

可选

在租户中部署的每个 MinIO Pod 中作为边车运行的容器列表。

exposeServices ExposeServices

可选

指示 Operator 暴露 MinIO 和/或 Console 服务。

serviceMetadata ServiceMetadata

可选

为 MinIO 服务和/或 Console 服务指定要附加的自定义标签和注解。

poolsMetadata PoolsMetadata

可选

为所有池的有状态集和 Pod 指定要附加的自定义标签和注解。

users LocalObjectReference数组

可选

一个数组Kubernetes 不透明密钥用于在租户配置期间生成 MinIO 用户。

数组中的每个元素都是一个由键值对组成的对象name: <string>哪里,<string>引用一个不透明的 Kubernetes Secret。

每个引用的 Kubernetes secret 必须包含以下字段:

  • CONSOLE_ACCESS_KEY- MinIO 用户的"用户名"

  • CONSOLE_SECRET_KEY- MinIO 用户的 "Password"

操作员创建每个用户时consoleAdmin默认策略。您可以在租户启动后更改分配的策略。

buckets 数组

可选

创建新租户时创建存储桶。如果具有指定名称的存储桶已存在,则跳过

logging 日志记录

可选

为 MinIO 租户启用 JSON 格式的匿名日志记录。

configuration LocalObjectReference

可选

指定一个包含要用于 MinIO 池的额外环境变量配置的密钥。该密钥应包含一个名为 config.env 的键,其中包含 MinIO 的所有导出环境变量。

initContainers 容器数组

可选

为 StatefulSet 添加自定义 initContainers

additionalVolumes Volume数组

可选

如果提供,statefulset 将添加这些卷。您应该设置相应卷和卷挂载的规则。我们不会测试此规则,k8s 将显示结果。

additionalVolumeMounts VolumeMount数组

可选

如果提供,statefulset 将添加这些卷。您应该设置相应卷和卷挂载的规则。我们不会测试此规则,k8s 将显示结果。

租户使用情况

TenantUsage 是关于租户使用情况和容量的指标

字段 描述

capacity 整数

Capacity 该租户的使用容量,单位为字节。

rawCapacity 整数

Capacity 此租户的原始容量,单位为字节。

usage 整数

Usage 是指 MinIO 所管理的数据量,单位为字节。

rawUsage 整数

Usage 是磁盘上的原始使用量,单位为字节。

tiers TierUsage数组

Tiers 包括租户中各个层级的使用

TierUsage

TierUsage 表示由租户设置的层级的用量

字段 描述

Name 字符串

层级名称

Type 字符串

层级类型

totalSize 整数

层级的总大小使用情况