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 是随 v4.0.0 MinIO 运算符发布的。MinIO 运算符会自动将使用 /v1
API 的现有租户转换为 /v2
。
存储桶
存储桶描述默认创建的存储桶
字段 | 描述 |
---|---|
|
|
|
|
|
证书配置
证书配置 (certConfig
) 定义与运算符在租户创建过程中自动生成的任何 TLS 证书相关的控制属性。如果 spec.autoCert: false
,则这些字段无效。
字段 | 描述 |
---|---|
|
可选 与自动生成的 TLS 证书关联的 |
|
可选 指定一个或多个 |
|
可选 指定一个或多个 x.509 主题备用名称 (SAN) 以关联到自动生成的 TLS 证书。MinIO 服务器 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 (字符串)
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 操作员 |
|
可选 在租户中的每个 MinIO KES Pod 上启用带有 SNI 支持的 TLS。如果省略了 指定一个 Kubernetes TLS 密钥。MinIO 操作员将指定的证书复制到租户中的每个 MinIO Pod。当 MinIO Pod/服务响应 TLS 连接请求时,它使用 SNI 选择具有匹配 指定包含以下字段的对象
有关示例和有关为 MinIO 租户配置 TLS 的更完整文档,请参阅 MinIO 操作员 CRD 参考。 |
|
可选 指定一个 Kubernetes TLS 密钥,其中包含用于对外部密钥管理服务(如 Hashicorp Vault)执行 mTLS 身份验证的自定义根证书颁发机构和 x.509 证书。 指定包含以下字段的对象
|
|
可选
|
|
可选
|
|
可选 如果提供,则将这些注释用于 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 密钥,其中包含 TLS 证书或证书颁发机构文件,用于在 MinIO 租户中启用 TLS。
字段 | 描述 |
---|---|
|
需要 包含 TLS 证书或证书颁发机构文件的 Kubernetes 密钥的名称。 |
|
需要 Kubernetes 密钥的类型。指定 |
日志记录
日志记录描述了 MinIO 租户的日志记录。
字段 | 描述 |
---|---|
|
|
|
|
|
池
池 (pools
) 定义了租户上的 MinIO 服务器池。每个池都包含一组 MinIO 服务器 Pod,这些 Pod 会“集中”它们的存储资源,以支持对象存储和检索请求。每个服务器池都独立于其他池,并且支持 MinIO 租户中可用存储资源的水平扩展。
有关 pools
对象的示例和更完整的文档,请参阅 MinIO 运算符 CRD 参考。
字段 | 描述 |
---|---|
|
必需 指定池的名称。如果省略此字段,运算符将自动生成池名称。 |
|
需要 要在池中部署的 MinIO 服务器 Pod 数量。最小值为 MinIO 运算符要求每个池至少有 |
|
需要 为池中每个 MinIO 服务器 Pod 生成的持久卷声明数量。 MinIO 运算符要求每个池至少有 |
|
需要 为 MinIO 运算符生成 MinIO 租户的持久卷声明时,请指定要使用的配置选项。 |
|
可选 用于指定 CPU 和内存 资源分配 或 MinIO 租户中限制的对象规范。 |
|
可选 运算符在选择要在其上部署池中 Pod 的节点时要应用的筛选器。运算符仅选择标签与指定选择器匹配的节点。 有关更多信息,请参阅 Kubernetes 文档 将 Pod 分配到节点。 |
|
可选 为 MinIO 池中的 Pod 指定节点亲和性、Pod 亲和性和 Pod 反亲和性。 |
|
可选 为部署在 MinIO 池中的 Pod 指定一个或多个 Kubernetes 容忍度。 |
|
可选 指定一个或多个 Kubernetes 拓扑传播约束 以应用于部署在 MinIO 池中的 Pod。 |
|
可选 指定池中 Pod 的 安全上下文。运算符仅支持以下 Pod 安全字段
|
|
指定池中容器的 安全上下文。运算符仅支持以下容器安全字段
|
|
可选 指定要追加到池的自定义标签和注释。可选 如果提供,请将这些注释用于池对象元注释(有状态集和 Pod 模板) |
|
可选 如果提供,请将这些标签用于池对象元注释(有状态集和 Pod 模板) |
|
可选 如果提供,有状态集上的每个 Pod 都将使用指定的 RuntimeClassName 运行,有关更多信息,请参阅 http://kubernetes.ac.cn/docs/concepts/containers/runtime-class/ |
池状态(字符串)
PoolState 表示池的状态
池状态
PoolStatus 跟踪所有池及其当前状态
字段 | 描述 |
---|---|
|
|
|
|
|
LegacySecurityContext 代表传统安全上下文。它表示这些池是在 v4.2.3 之前创建的,当时我们将默认安全上下文引入为非 root,因此我们应该继续运行此池而无需安全上下文 |
服务元数据
ServiceMetadata (serviceMetadata
) 为 MinIO 对象存储服务和/或 MinIO 控制台服务定义自定义标签和注释。
字段 | 描述 |
---|---|
|
可选 如果提供,请将这些标签追加到 MinIO 服务 |
|
可选 如果提供,请将这些注释追加到 MinIO 服务 |
|
可选 如果提供,请将这些标签追加到控制台服务 |
|
可选 如果提供,请将这些注释追加到控制台服务 |
边车
边车 (sidecars
) 定义运算符附加到 pool
中每个 MinIO 服务器 Pod 的容器列表。
字段 | 描述 |
---|---|
|
可选 要在 Pod 内运行的容器列表 |
|
可选 volumeClaimTemplates 是 Pod 允许引用的声明列表。有状态集控制器负责以维护 Pod 身份的方式将网络标识映射到声明。此列表中的每个声明都必须在模板中的一个容器中至少有一个匹配(按名称)的卷挂载。此列表中的声明优先于模板中的任何卷(具有相同的名称)。 |
|
可选 可以由属于 Pod 的容器挂载的卷列表。更多信息:http://kubernetes.ac.cn/docs/concepts/storage/volumes |
|
可选 边车资源、initcontainer 如果设置,将使用该资源。 |
租户
租户是 Kubernetes 对象,描述了 MinIO 租户。
字段 | 描述 |
---|---|
|
|
|
|
|
有关 |
|
|
|
需要 MinIO 租户对象的根字段。 |
租户域
TenantDomains (domains
) - 用于从 Kubernetes 集群外部访问租户的域列表。这只会将 MinIO 配置为列出的域,但仍需要外部 DNS 配置。列出的域应包括模式和端口(如果有),例如 https://minio.domain.com:8123
字段 | 描述 |
---|---|
|
MinIO 使用的域列表。这将启用对对象存储的 DNS 样式访问,其中存储桶名称是从域中的子域推断出来的。 |
|
用于公开 MinIO 控制台的域,这将在从浏览器访问时将重定向配置为 MinIO。如果控制台通过子路径公开,则域应包含该路径,例如 https://console.domain.com:8123/subpath/ |
租户调度程序
TenantScheduler (scheduler
) - 描述用于部署 MinIO 租户的 Kubernetes 调度程序的对象。
字段 | 描述 |
---|---|
|
可选 指定要用于调度租户 Pod 的 Kubernetes 调度程序 的名称 |
租户规格
TenantSpec (spec
) 定义了 MinIO 租户对象的配置。
以下参数特定于 Operator CRD v2 Reference
MinIO CRD API spec
定义,该定义是作为 MinIO 运算符 v4.0.0 的一部分添加的。
有关此对象的更完整文档,请参阅 MinIO Kubernetes 文档。
字段 | 描述 |
---|---|
|
需要 描述部署在 MinIO 租户中的每个 MinIO 服务器池的对象数组。每个池都包含一组 MinIO 服务器 Pod,这些 Pod 会“集中”它们的存储资源,以支持对象存储和检索请求。每个服务器池都独立于其他池,并且支持 MinIO 租户中可用存储资源的水平扩展。 MinIO 租户 有关 |
|
可选 |
|
可选 指定用于从私有 Docker 存储库中提取镜像的密钥。 |
|
可选 有状态集创建的 Pod 的 Pod 管理策略 |
|
可选 如果提供,MinIO 运算符将在部署租户资源时添加指定的环境变量。 |
|
可选 在租户中的每个 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 相对于集群中其他 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+ 的所有导出的环境变量。 |
|
可选 将自定义 initContainers 添加到 StatefulSet |
|
可选 如果提供,statefulset 将添加这些卷。您应该为相应的卷和卷安装设置规则。我们不会测试此规则,k8s 将显示结果。 |
|
可选 如果提供,statefulset 将添加这些卷。您应该为相应的卷和卷安装设置规则。我们不会测试此规则,k8s 将显示结果。 |
TenantUsage
TenantUsage 是有关租户使用情况和容量的指标
字段 | 描述 |
---|---|
|
此租户的使用容量(以字节为单位)。 |
|
此租户的原始容量(以字节为单位)。 |
|
Usage 是 MinIO 管理的数据量(以字节为单位)。 |
|
Usage 是磁盘上的原始使用量(以字节为单位)。 |
|
Tiers 包含租户中各个层级的使用情况 |
TierUsage
TierUsage 表示租户设置的层级的使用情况
字段 | 描述 |
---|---|
|
层级的名称 |
|
层级的类型 |
|
层级的 TotalSize 使用量 |