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 证书关联的 |
|
可选 指定一个或多个要与自动生成的 TLS 证书关联的 x.509 主题替代名称 (SAN)。MinIO 服务器 Pod 使用 SNI 根据请求的主机名确定要响应哪个证书。 |
证书状态
CertificateStatus 跟踪运算符管理的所有证书
字段 | 描述 |
---|---|
|
AutoCertEnabled 注册我们是否知道租户是否启用了自动证书 |
|
提供手动添加到运算符的 |
自定义证书配置
CustomCertificateConfig (customCertificateConfig
) 提供了与手动添加到运算符作为租户创建一部分的 TLS 证书相关的属性。如果不存在自定义 TLS 证书,则这些字段不包含任何数据。
字段 | 描述 |
---|---|
|
可选 输出一个或多个与手动提供的 TLS 证书关联的 |
|
可选 输出一个或多个与手动提供的 TLS 证书关联的 |
|
可选 输出一个或多个与手动提供的 TLS 证书关联的 |
|
可选 输出一个或多个与手动提供的 TLS 证书关联的 |
|
可选 输出一个或多个与手动提供的 TLS 证书关联的 |
CustomCertificates
CustomCertificates(customCertificates
)提供作为租户创建的一部分手动添加到 Operator 的 TLS 证书的组合。如果不存在自定义 TLS 证书,则这些字段不包含任何数据。
字段 | 描述 |
---|---|
|
可选 客户端 |
|
可选 Minio |
|
可选 证书颁发机构 |
ExposeServices
ExposeServices(exposeServices
)定义 MinIO 对象存储和控制台服务的暴露。
字段 | 描述 |
---|---|
|
可选 指示 Operator 暴露 MinIO 服务。默认为 |
|
可选 指示 Operator 暴露 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 Operator 将指定的证书复制到租户中的每个 MinIO Pod。当 MinIO Pod/服务响应 TLS 连接请求时,它将使用 SNI 选择与 指定一个包含以下字段的对象:
请参阅 MinIO Operator CRD 参考以获取示例以及有关为 MinIO 租户配置 TLS 的更完整文档。 |
|
可选 指定一个 Kubernetes TLS 密钥,其中包含自定义根证书颁发机构和 x.509 证书,用于与外部密钥管理服务(例如 HashiCorp Vault)执行 mTLS 身份验证。 指定一个包含以下字段的对象:
|
|
可选
|
|
可选
|
|
可选 如果提供,则将这些注释用于 KES 对象元数据注释。 |
|
可选 如果提供,则将这些标签用于 KES 对象元数据标签。 |
|
可选 用于指定 MinIO 租户中 CPU 和内存 资源分配 或限制的对象规范。 |
|
可选 Operator 在选择要部署 MinIO KES Pod 的节点时应用的过滤器。Operator 仅选择其标签与指定选择器匹配的节点。 有关更多信息,请参阅 Kubernetes 文档中的 将 Pod 分配给节点。 |
|
可选 指定一个或多个要应用于 MinIO KES Pod 的 Kubernetes 容忍度。 |
|
可选 为 KES Pod 指定节点亲和性、Pod 亲和性和 Pod 反亲和性。 |
|
可选 指定一个或多个要应用于在 MinIO 池中部署的 Pod 的 Kubernetes 拓扑传播约束。 |
|
可选 如果提供,则将其用作 KES 在 KMS 后端创建的密钥的名称。 |
|
指定 MinIO KES Pod 的 安全上下文。Operator 仅支持以下 Pod 安全字段:
|
|
指定 MinIO KES Pod 的 安全上下文。 |
|
可选 如果提供,则 MinIO Operator 在部署 KES 资源时会添加指定的环境变量。 |
LocalCertificateReference
LocalCertificateReference(externalCertSecret
、externalCaCertSecret
、clientCertSecret
)包含一个 Kubernetes 密钥,其中包含 TLS 证书或证书颁发机构文件,用于在 MinIO 租户中启用 TLS。
字段 | 描述 |
---|---|
|
必需 包含 TLS 证书或证书颁发机构文件的 Kubernetes 密钥的名称。 |
|
必需 Kubernetes 密钥的类型。指定 |
Logging
Logging 描述 MinIO 租户的日志记录。
字段 | 描述 |
---|---|
|
|
|
|
|
Pool
Pool(pools
)定义租户上的 MinIO 服务器池。每个池都包含一组 MinIO 服务器 Pod,这些 Pod 将其存储资源“池化”以支持对象存储和检索请求。每个服务器池彼此独立,并支持 MinIO 租户中可用存储资源的水平扩展。
请参阅 MinIO Operator CRD 参考中的 pools
对象以获取示例以及更完整的文档。
字段 | 描述 |
---|---|
|
必需 指定池的名称。如果省略此字段,则 Operator 会自动生成池名称。 |
|
必需 在池中部署的 MinIO 服务器 Pod 的数量。最小值为 MinIO Operator 要求每个池至少有 |
|
必需 为池中每个 MinIO 服务器 Pod 生成的持久卷声明的数量。 MinIO Operator 要求每个池至少有 |
|
必需 指定 MinIO Operator 在为 MinIO 租户生成持久卷声明时使用的配置选项。 |
|
可选 用于指定 MinIO 租户中 CPU 和内存 资源分配 或限制的对象规范。 |
|
可选 Operator 在选择要部署池中 Pod 的节点时应用的过滤器。Operator 仅选择其标签与指定选择器匹配的节点。 有关更多信息,请参阅 Kubernetes 文档中的 将 Pod 分配给节点。 |
|
可选 为 MinIO 池中的 Pod 指定节点亲和性、Pod 亲和性和 Pod 反亲和性。 |
|
可选 指定一个或多个要应用于在 MinIO 池中部署的 Pod 的 Kubernetes 容忍度。 |
|
可选 指定一个或多个要应用于在 MinIO 池中部署的 Pod 的 Kubernetes 拓扑传播约束。 |
|
可选 指定池中 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 租户对象的配置。
以下参数特定于作为 MinIO Operator v4.0.0 的一部分添加的Operator CRD v2 Reference
MinIO CRD API spec
定义。
有关此对象的更完整文档,请参阅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 Operator 将指定的证书复制到租户中的每个 MinIO 服务器 Pod,稍后可以使用环境变量引用这些证书。密钥**必须**包含以下字段
|
|
可选 MinIO 卷(PV)的挂载路径。默认为 |
|
可选 挂载路径内的子路径。这是 MinIO 存储数据的目录。默认为 |
|
可选 启用使用基于 Kubernetes 的 TLS 证书生成和为 MinIO 租户中的 Pod 和服务签名。
如果 有关配置 MinIO 租户的 TLS 的示例和更完整文档,请参阅MinIO Operator CRD 参考。 |
|
CertExpiryAlertThreshold 是证书过期前触发过期证书警报的最小天数。 |
|
容器存活探测。如果探测失败,容器将被重启。 |
|
容器就绪探测。如果探测失败,容器将从服务端点中移除。 |
|
启动探测允许配置 Pod 在开始接收流量之前启动的最大宽限期。 |
|
容器的生命周期钩子。 |
|
可以禁用或启用与 S3 相关的特性,例如 |
|
可选 启用设置Operator自动生成的全部TLS证书的 |
|
可选 指示MinIO Operator使用指定的配置部署MinIO密钥加密服务(KES)。MinIO KES支持对MiNIO租户上的对象执行服务器端加密。 |
|
可选 指示MinIO Operator使用Prometheus Operator。 租户抓取配置将添加到由Prometheus Operator管理的Prometheus中。 |
|
可选 用于运行作为租户一部分创建的MinIO Pod的Kubernetes服务账户。 |
|
可选 指示Pod优先级,以及相对于集群中其他Pod的重要性。这仅适用于MinIO Pod。 有关更完整的文档,请参阅Kubernetes优先级类文档。 |
|
可选 MinIO Docker 镜像的拉取策略。指定以下选项之一:
有关详细信息,请参阅Kubernetes文档http://kubernetes.ac.cn/docs/concepts/containers/images#updating-images |
|
可选 要在租户中部署的每个MinIO Pod旁边运行的容器列表。 |
|
可选 指示Operator公开MinIO和/或控制台服务。 |
|
可选 指定要追加到MinIO服务和/或控制台服务的自定义标签和注释。 |
|
可选 用于在租户供应期间生成MinIO用户的Kubernetes不透明密钥数组。 数组中的每个元素都是一个由键值对 每个引用的Kubernetes密钥必须包含以下字段
默认情况下,Operator使用 |
|
可选 创建新租户时创建桶。如果已存在具有给定名称的桶,则跳过。 |
|
可选 为MinIO租户启用JSON、匿名日志记录。 |
|
可选 指定一个密钥,其中包含要用于MinIO池的额外环境变量配置。密钥应包含一个名为config.env的密钥,其中包含MinIO+的所有导出的环境变量。 |
|
可选 向StatefulSet添加自定义initContainers。 |
|
可选 如果提供,StatefulSet将添加这些卷。您应该为相应的卷和卷挂载设置规则。我们不会测试此规则,k8s将显示结果。 |
|
可选 如果提供,StatefulSet将添加这些卷。您应该为相应的卷和卷挂载设置规则。我们不会测试此规则,k8s将显示结果。 |
租户使用情况
租户使用情况是关于租户使用情况和容量的指标。
字段 | 描述 |
---|---|
|
此租户的使用容量(以字节为单位)。 |
|
此租户的原始容量(以字节为单位)。 |
|
使用情况是MinIO管理的数据量(以字节为单位)。 |
|
使用情况是磁盘上的原始使用情况(以字节为单位)。 |
|
层级包括租户中各个层级的使用情况。 |
层级使用情况
层级使用情况表示租户设置的层级的使用情况。
字段 | 描述 |
---|---|
|
层级的名称。 |
|
层级的类型。 |
|
层级的总使用量。 |