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 描述了默认创建的存储桶
| 字段 | 描述 |
|---|---|
|
|
|
|
|
CertificateConfig
CertificateConfig (certConfig) 定义控制属性
与 Operator 在租户创建过程中自动生成的任何 TLS 证书相关联。如果以下情况发生,这些字段将不产生任何效果:spec.autoCert: false.
| 字段 | 描述 |
|---|---|
|
可选 The |
|
可选 指定一个或多个 |
|
可选 指定一个或多个 x.509 主题备用名称 (SAN) 以关联到自动生成的 TLS 证书。MinIO Server Pod 使用 SNI 根据请求的主机名确定要响应的证书。 |
CertificateStatus
CertificateStatus 用于跟踪由操作员管理的所有证书的状态
| 字段 | 描述 |
|---|---|
|
AutoCertEnabled 用于记录我们是否知晓租户已启用自动证书功能 |
|
提供 |
CustomCertificateConfig
CustomCertificateConfig (自定义证书配置)customCertificateConfig) 提供与手动添加到 Operator 的 TLS 证书相关的属性,这些证书是租户创建过程的一部分。如果没有自定义 TLS 证书,这些字段将不包含任何数据。
| 字段 | 描述 |
|---|---|
|
可选 输出一个或多个 |
|
可选 输出一个或多个 |
|
可选 输出一个或多个 |
|
可选 输出一个或多个 |
|
可选 输出一个或多个 |
CustomCertificates
CustomCertificates (自定义证书)customCertificates) 提供作为租户创建过程的一部分手动添加到 Operator 的 TLS 证书分组。
如果没有自定义 TLS 证书,这些字段将不包含任何数据。
| 字段 | 描述 |
|---|---|
|
可选 客户端 |
|
可选 Minio |
|
可选 证书颁发机构 |
ExposeServices
ExposeServices (exposeServices) 定义了 MinIO 对象存储和 Console 服务的暴露方式。
| 字段 | 描述 |
|---|---|
|
可选 指示 Operator 暴露 MinIO 服务。默认为 |
|
可选 指示 Operator 暴露 MinIO 控制台服务。默认为 |
功能特性
Features (features) - 描述要在 MinIO 租户中启用/禁用哪些 MinIO 功能的对象。
| 字段 | 描述 |
|---|---|
|
可选 指定 |
|
可选 指定用于访问 MinIO 和 Console 的域名列表。 |
|
可选 启动支持 SFTP 的 minio 服务器 |
HealthStatus (string)
HealthStatus 表示租户的健康状态,包括服务降级或离线状态
KESConfig
KESConfig (kes) 定义了MinIO 密钥加密服务(KES) StatefulSet 作为 MinIO Tenant 的一部分部署。KES 支持使用外部密钥管理服务(KMS)对对象进行服务器端加密。
| 字段 | 描述 |
|---|---|
|
可选 指定要在租户中部署的 KES 副本 Pod 数量。
默认为 |
|
可选 |
|
可选 MinIO Docker 镜像的拉取策略。请指定以下选项之一:
请参阅 Kubernetes 文档了解详情https://kubernetes.io/docs/concepts/containers/images#updating-images |
|
可选 TheKubernetes
Service Account用于运行作为租户一部分创建的 MinIO KES Pod。 |
|
必需 指定一个Kubernetes
不透明密钥其中包含用于设置 MinIO KES 服务的环境变量。 |
|
可选 在租户中的每个 MinIO KES Pod 上启用支持 SNI 的 TLS。如果 指定一个Kubernetes
TLS secret. The MinIO Operator 将指定的证书复制到租户中的每个 MinIO pod。当 MinIO pod/service 响应 TLS 连接请求时,它使用 SNI 来选择具有匹配 指定一个包含以下字段的对象:
查看MinIO Operator CRD有关为 MinIO 租户配置 TLS 的示例和更完整文档,请参阅参考指南。 |
|
可选 指定一个Kubernetes
TLS secret包含一个自定义根证书颁发机构和x.509证书,用于与外部密钥管理服务(如Hashicorp Vault)执行mTLS身份验证。 指定一个包含以下字段的对象:
|
|
可选 |
|
可选 |
|
可选 如果提供,请将这些注解用于 KES 对象元数据注解 |
|
可选 如果提供,请将这些标签用于 KES 对象元数据标签 |
|
可选 用于指定CPU和内存的对象规范资源分配MinIO 租户中的资源限制。 |
|
可选 Operator 在选择部署 MinIO KES Pod 的节点时应用的过滤器。Operator 仅选择标签与指定选择器匹配的节点。 请参阅 Kubernetes 文档中关于将 Pod 分配给节点欲了解更多信息。 |
|
可选 指定一个或多个Kubernetes 容忍度应用于 MinIO KES pod。 |
|
可选 为 KES Pod 指定节点亲和性、Pod 亲和性和 Pod 反亲和性。 |
|
可选 指定一个或多个Kubernetes 拓扑分布约束应用于在 MinIO 池中部署的 Pod。 |
|
可选 如果提供,请将此作为 KES 在 KMS 后端创建的密钥名称 |
|
指定Security
ContextMinIO KES pod 的。Operator 仅支持以下
pod 安全字段:
|
|
指定Security ContextMinIO KES pod 的数量。 |
|
可选 如果提供,MinIO Operator 在部署 KES 资源时会添加指定的环境变量。 |
LocalCertificateReference
LocalCertificateReference (externalCertSecret,
externalCaCertSecret,clientCertSecret) 包含一个 Kubernetes secret,
其中包含 TLS 证书或证书颁发机构文件,用于在 MinIO 租户中启用 TLS。
| 字段 | 描述 |
|---|---|
|
必需 包含 TLS 证书或证书颁发机构文件的 Kubernetes 密钥的名称。 |
|
必需 Kubernetes secret 的类型。请指定 |
日志记录
Logging 描述了 MinIO 租户的日志记录功能。
| 字段 | 描述 |
|---|---|
|
|
|
|
|
池
池 (pools) 在租户上定义一个 MinIO 服务器池。每个池
由一组 MinIO 服务器 Pod 组成,这些 Pod 将其存储资源
"池化"以支持对象存储和检索请求。每个
服务器池都独立于其他所有池,并支持 MinIO 租户中
可用存储资源的水平扩展。
查看MinIO Operator CRDreference for thepools用于示例和更完整文档的对象。
| 字段 | 描述 |
|---|---|
|
必需指定池的名称。如果省略此字段,Operator 将自动生成池名称。 |
|
必需 要在池中部署的 MinIO 服务器 Pod 数量。最小值为 MinIO Operator 至少需要 |
|
必需 为池中每个 MinIO 服务器 Pod 生成的持久卷声明数量。 MinIO Operator 至少需要 |
|
必需 指定 MinIO Operator 在生成 MinIO 租户的持久卷声明时使用的配置选项。 |
|
可选 用于指定CPU和内存的对象规范资源分配MinIO 租户中的资源限制。 |
|
可选 Operator 在选择池中部署 Pod 的节点时应用的筛选器。Operator 仅选择标签与指定选择器匹配的节点。 请参阅 Kubernetes 文档中关于将 Pod 分配给节点欲了解更多信息。 |
|
可选 为 MinIO 池中的 Pod 指定节点亲和性、Pod 亲和性和 Pod 反亲和性。 |
|
可选 指定一个或多个Kubernetes 容忍度应用于在 MinIO 池中部署的 Pod。 |
|
可选 指定一个或多个Kubernetes 拓扑分布约束应用于在 MinIO 池中部署的 Pod。 |
|
可选 指定Security
Context池中 Pod 的数量。Operator 仅支持以下 Pod 安全字段:
|
|
指定Security
Context池中容器的数量。Operator 仅支持以下容器安全字段:
|
|
可选 指定要附加到池的自定义标签和注解。可选 如果提供,请将这些注解用于池对象元注解(StatefulSet 和 Pod 模板) |
|
可选 如果提供,请将这些标签用于 Pool 对象元注解 (Statefulset 和 Pod 模板) |
|
可选 如果提供,StatefulSet 中的每个 Pod 都将使用指定的 RuntimeClassName 运行,更多信息请参考https://kubernetes.io/docs/concepts/containers/runtime-class/ |
PoolState (string)
PoolState 表示池的状态
PoolStatus
PoolStatus 用于跟踪所有池及其当前状态
| 字段 | 描述 |
|---|---|
|
|
|
|
|
LegacySecurityContext 代表传统安全上下文。它表示这些池是在 v4.2.3 版本之前创建的,当时我们引入了默认的非 root 安全上下文,因此我们应该继续在没有安全上下文的情况下运行此池。 |
PoolsMetadata
PoolsMetadata (poolsMetadata) 为 MinIO 池有状态集/容器组定义自定义标签和注解。
| 字段 | 描述 |
|---|---|
|
可选 如果提供,将这些标签附加到 MinIO StatefulSet / Pods |
|
可选 如果提供,将这些注解附加到 MinIO StatefulSet / Pod |
ServiceMetadata
ServiceMetadata (serviceMetadata) 为 MinIO 对象存储服务和/或 MinIO 控制台服务定义自定义标签和注解。
| 字段 | 描述 |
|---|---|
|
可选 如果提供,将这些标签附加到 MinIO 服务 |
|
可选 如果提供,将这些注解附加到 MinIO 服务 |
|
可选 如果提供,将这些标签附加到控制台服务 |
|
可选 如果提供,将这些注解附加到 Console 服务 |
|
可选 如果提供,将这些标签附加到 KES 服务 |
|
可选 如果提供,将这些注解附加到 KES 服务 |
SideCars
SideCars (边车)sidecars) 定义了一个容器列表,Operator 会将其附加到每个 MinIO 服务器 Pod 中pool.
| 字段 | 描述 |
|---|---|
|
可选 Pod 内部运行的容器列表 |
|
可选 volumeClaimTemplates 是一个允许 Pod 引用的声明列表。StatefulSet 控制器负责以维护 Pod 身份的方式将网络标识映射到声明。此列表中的每个声明必须至少在模板的一个容器中具有一个与之匹配(通过名称)的 volumeMount。此列表中的声明优先于模板中具有相同名称的任何卷。 |
|
可选 属于 Pod 的容器可以挂载的卷列表。更多信息:https://kubernetes.io/docs/concepts/storage/volumes |
|
可选 如果设置了 sidecar 的 Resource,initcontainer 将使用该设置。 |
租户
Tenant 是一个Kubernetes 对象描述一个 MinIO 租户。
| 字段 | 描述 |
|---|---|
|
|
|
|
|
请参阅 Kubernetes API 文档
了解字段详情 |
|
|
|
必需 MinIO租户对象的根字段。 |
TenantDomains
TenantDomains (domains) - 用于从 Kubernetes 集群外部访问租户的域名列表。这将仅配置 MinIO 以支持所列域名,但仍需进行外部 DNS 配置。所列域名应包含协议和端口(如有使用),例如:https://minio.domain.com:8123
| 字段 | 描述 |
|---|---|
|
MinIO 使用的域名列表。这将支持通过 DNS 风格访问对象存储,其中存储桶名称从域名的子域名推断得出。 |
|
用于暴露 MinIO Console 的域名,这将配置浏览器访问时的 MinIO 重定向。如果 Console 通过子路径暴露,域名应包含该子路径,例如:https://console.domain.com:8123/subpath/ |
TenantScheduler
TenantScheduler (scheduler) - 描述用于部署 MinIO 租户的 Kubernetes 调度程序的对象。
| 字段 | 描述 |
|---|---|
|
可选 指定名称Kubernetes 调度器用于调度租户 Pod |
TenantSpec
TenantSpec (spec) 定义 MinIO 租户对象的配置。
以下参数特定于Operator CRD v2 ReferenceMinIO CRD
APIspec作为 MinIO Operator v4.0.0 的一部分添加的定义。
有关此对象的更完整文档,请参阅MinIO Kubernetes Documentation.
| 字段 | 描述 |
|---|---|
|
必需 描述 MinIO 租户中部署的每个 MinIO 服务器池的对象数组。每个池由一组 MinIO 服务器 Pod 组成,这些 Pod 将其存储资源"池化"以支持对象存储和检索请求。每个服务器池都独立于其他所有池,并支持 MinIO 租户中可用存储资源的水平扩展。 MinIO 租户 查看MinIO
Operator CRDreference for the |
|
可选 |
|
可选 指定用于从私有 Docker 仓库拉取镜像的密钥。 |
|
可选 StatefulSet 创建的 Pod 管理策略 |
|
可选 如果提供,MinIO Operator 在部署租户资源时会添加指定的环境变量。 |
|
可选 在每个租户的 MinIO Pod 上启用支持 SNI 的 TLS。如果 指定一个数组Kubernetes
TLS secrets. The MinIO Operator 将指定的证书复制到租户中的每个 MinIO 服务器 Pod。当 MinIO Pod/服务响应 TLS 连接请求时,它会使用 SNI 来选择匹配的证书 数组中的每个元素
查看MinIO Operator CRD有关为 MinIO 租户配置 TLS 的示例和更完整文档,请参阅参考指南。 |
|
可选 允许 MinIO 服务器 Pod 验证由不在 Pod 信任存储中的证书颁发机构签名的客户端 TLS 证书。 指定一个数组Kubernetes
TLS secretsMinIO Operator 会将指定证书复制到租户中的每个 MinIO 服务器 Pod。 数组中的每个元素
查看MinIO Operator CRD有关为 MinIO 租户配置 TLS 的示例和更完整文档,请参阅参考指南。 |
|
可选 在 MinIO 租户 Pod 之间启用 mTLS 身份验证MinIO KES.
必需用于启用 MinIO 租户与 MinIO KES 之间的连接。 指定一个Kubernetes
TLS secrets. The MinIO Operator 将指定的证书复制到
租户中的每个 MinIO 服务器 Pod。该 Secret必须包含以下字段:
指定的证书必须对应 KES 服务器上的一个身份。请参阅KES
Wiki有关 KES 身份的更多信息。 如果使用 MinIO Operator 部署 KES,请将证书的哈希值作为 查看MinIO Operator CRD有关为 MinIO 租户配置 TLS 的示例和更完整文档,请参阅参考指南。 |
|
可选 为 MinIO 租户 Pod 提供挂载额外客户端证书的支持
多个客户端证书将使用以下文件夹结构进行挂载:
指定一个Kubernetes
TLS secrets. The MinIO Operator 将指定的证书复制到租户中的每个 MinIO 服务器 pod,之后可以通过环境变量引用该证书。该 secret必须包含以下字段:
|
|
可选 MinIO 卷(PV)的挂载路径。默认为 |
|
可选 挂载路径内的子路径。这是 MinIO 存储数据的目录。默认为 |
|
可选 启用使用基于Kubernetes的
TLS证书生成以及为 MinIO 租户中的 Pod 和服务进行签名。
If 查看MinIO Operator CRD有关为 MinIO 租户配置 TLS 的示例和更完整文档,请参阅参考指南。 |
|
CertExpiryAlertThreshold 是证书过期警报触发前距离到期日的最短天数。 |
|
容器存活探针。 如果探针失败,容器将被重启。 |
|
容器就绪探针 readiness。如果探针失败,容器将从服务端点中移除。 |
|
Startup Probe 允许配置 Pod 在接收流量前的最大启动宽限期。 |
|
容器的生命周期钩子。 |
|
S3相关功能可以禁用或启用,例如 |
|
可选 允许设置 |
|
可选 指示 MinIO Operator 部署MinIO 密钥加密服务(KES) 使用指定配置。MinIO KES 支持在 MinIO 租户上执行对象服务端加密。 |
|
可选 指示 MinIO Operator 使用 Prometheus Operator。 租户抓取配置将被添加到由 prometheus-operator 管理的 Prometheus 中。 |
|
可选 TheKubernetes
Service Account用于运行作为租户一部分创建的 MinIO Pod。 |
|
可选 表示 Pod 的优先级,从而体现 Pod 相对于集群中其他 Pod 的重要性。此配置仅适用于 MinIO Pod。 参考 KubernetesPriority 类文档获取更完整的文档。 |
|
可选 MinIO Docker 镜像的拉取策略。请指定以下选项之一:
请参阅 Kubernetes 文档了解详情https://kubernetes.io/docs/concepts/containers/images#updating-images |
|
可选 在租户中部署的每个 MinIO Pod 中作为边车运行的容器列表。 |
|
可选 指示 Operator 暴露 MinIO 和/或 Console 服务。 |
|
可选 为 MinIO 服务和/或 Console 服务指定要附加的自定义标签和注解。 |
|
可选 为所有池的有状态集和 Pod 指定要附加的自定义标签和注解。 |
|
可选 一个数组Kubernetes
不透明密钥用于在租户配置期间生成 MinIO 用户。 数组中的每个元素都是一个由键值对组成的对象 每个引用的 Kubernetes secret 必须包含以下字段:
操作员创建每个用户时 |
|
可选 创建新租户时创建存储桶。如果具有指定名称的存储桶已存在,则跳过 |
|
可选 为 MinIO 租户启用 JSON 格式的匿名日志记录。 |
|
可选 指定一个包含要用于 MinIO 池的额外环境变量配置的密钥。该密钥应包含一个名为 config.env 的键,其中包含 MinIO 的所有导出环境变量。 |
|
可选 为 StatefulSet 添加自定义 initContainers |
|
可选 如果提供,statefulset 将添加这些卷。您应该设置相应卷和卷挂载的规则。我们不会测试此规则,k8s 将显示结果。 |
|
可选 如果提供,statefulset 将添加这些卷。您应该设置相应卷和卷挂载的规则。我们不会测试此规则,k8s 将显示结果。 |
租户使用情况
TenantUsage 是关于租户使用情况和容量的指标
| 字段 | 描述 |
|---|---|
|
Capacity 该租户的使用容量,单位为字节。 |
|
Capacity 此租户的原始容量,单位为字节。 |
|
Usage 是指 MinIO 所管理的数据量,单位为字节。 |
|
Usage 是磁盘上的原始使用量,单位为字节。 |
|
Tiers 包括租户中各个层级的使用 |
TierUsage
TierUsage 表示由租户设置的层级的用量
| 字段 | 描述 |
|---|---|
|
层级名称 |
|
层级类型 |
|
层级的总大小使用情况 |