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