Docs 菜单
Docs 主页
/
MongoDB Enterprise Kubernetes Operator
/

MongoDB 数据库资源规范

在此页面上

  • 通用的资源设置
  • 必需
  • 可选的
  • Optional
  • 部署特定的资源设置
  • 独立的设置
  • 副本集设置
  • 分片集群设置
  • Prometheus 设置
  • 安全设置
  • 示例
  • StatefulSet 设置

注意

对于此页面上提到的所有 Ops Manager,您都可以将其替换为 Cloud Manager

MongoDB Enterprise Kubernetes Operator 根据您写入的规范文件创建Kubernetes StatefulSet。

Kubernetes Operator 在 Kubernetes 中创建 MongoDB 专用资源作为自定义资源。

要管理这些自定义资源,请使用以下进程:

  1. 创建或更新 MongoDB 资源规范。

  2. 指导 MongoDB Enterprise Kubernetes Operator 将其应用到您的 Kubernetes 环境。因此,Kubernetes Operator 执行以下操作:

    • 创建已定义的 StatefulSets、服务和其他 Kubernetes 资源。

    • 更新 Ops Manager 部署配置以反映更改。

部署类型
StatefulSet
StatefulSet 大小

独立运行的实例

1

副本集(Replica Set)

1

1Pod 每个成员

分片集群

<numberOfShards> + 2

1Pod 每个mongos 、分片或配置服务器成员

每个MongoDB资源都使用 YAML中的对象规范来定义 MongoDB 对象的特征和设置:独立运行、副本集分片集群。

每种资源类型都必须使用以下设置:

apiVersion

类型:字符串

MongoDB 资源模式的版本。

kind

类型:字符串

要创建的 MongoDB 资源的类型。将其设置为 MongoDB

metadata.name

类型:字符串

您创建的 MongoDB 资源的名称。

资源名称必须少于或等于 44 个字符。

spec.credentials

类型:字符串

必需。 密钥 的名称Kubernetes 您为 MongoDB Ops ManagerAPIKubernetesOperator 创建 的 作为 身份验证凭证,用于与Cloud Manager 或MongoDB Ops Manager 通信。

持有凭证的 Ops Manager Kubernetes Secret 对象必须与您要创建的资源位于同一个命名空间中。

重要

Operator 管理对密钥的更改

Kubernetes Operator 会跟踪该 Secret 的任何更改并协调 MongoDB 资源的状态。

spec.persistent

类型:布尔值

默认:真

警告: 授予容器写入 持久卷 的权限 。Kubernetes Operator 在 中设置fsGroup = 2000runAsUser = 2000runAsNonRoot = true securityContext。Kubernetes Operator 将fsgroup设置为等于runAsUser ,以使在容器中运行主进程的用户可写入该卷。 要学习;了解更多信息,请参阅 为 Pod 或容器配置安全上下文 以及相关 讨论 在Kubernetes文档中。如果重新部署资源无法解决持久卷的问题,请联系MongoDB支持部门

Disk UsageDisk IOPSAtlas Charts如果不使用Processes DeploymentMetrics持久卷 , 和 无法显示在 页面的 标签页中, 查看此部署的数据 时也无法显示在 页面中。

spec.type

类型:字符串

要创建的 MongoDB 资源的类型。接受的值为:

  • Standalone

  • ReplicaSet

  • ShardedCluster

spec.version

类型:字符串

您在此 MongoDB 资源上安装的 MongoDB 版本。

重要

请务必选择兼容的 MongoDB Server 版本

兼容版本因 MongoDB 数据库资源使用的基础图片而异。

注意

如果将此值更新为数据库资源的更高版本的 MongoDB,则特征兼容性版本 (FCV) 会自动更改为此版本,除非将spec.featureCompatibilityVersion设置为原始版本。 请考虑将spec.featureCompatibilityVersion设置为原始版本,以便自己可以在必要时选择降级。

每个资源必须使用以下设置之一

spec.opsManager.configMapRef.name

类型:字符串

ConfigMap 的名称 使用Cloud Manager 或MongoDB Ops Manager 连接配置。spec.cloudManager.configMapRef.name设置是此设置的别名,可以用来代替它。

此值必须与待创建的资源位于同一命名空间。

重要

Operator 管理对 ConfigMap 的更改

Kubernetes Operator 会跟踪该 ConfigMap 的任何更改并协调 MongoDB 资源的状态。

spec.cloudManager.configMapRef.name

类型:字符串

spec.opsManager.configMapRef.name的别名。

每种资源类型都可以使用以下设置:

metadata.annotations.mongodb.com/v1.architecture

类型:字符串

确定特定部署使用的容器架构:

接受的值为:

  • static

  • non-static

apiVersion: mongodb.com/v1
kind: MongoDB
metadata:
name: my-project
annotations:
mongodb.com/v1.architecture: "static"
spec.agent.backupAgent.logRotate

类型:对象

MongoDB Agent轮换备份日志的阈值。

spec.agent.backupAgent.logRotate.sizeThresholdMB

类型:整型

在MongoDB Agent轮换日志之前,备份日志文件的最大大小(以 MB 为单位)。

spec.agent.backupAgent.logRotate.timeThresholdHrs

类型:整型

MongoDB Agent轮换备份日志文件的小时数。

spec.agent.mongod.auditlogRotate

类型:对象

包含MongoDB进程的Atlas 审核日志轮换配置的对象。

spec.agent.mongod.auditlogRotate.sizeThresholdMB

类型:数字

在MongoDB Agent轮换日志之前,Atlas 审核日志文件的最大大小(以 MB 为单位)。

spec.agent.mongod.auditlogRotate.timeThresholdHrs

类型:整型

MongoDB Agent轮换Atlas 审核日志文件的小时数。

spec.agent.mongod.auditlogRotate.numUncompressed

类型:整型

未压缩的Atlas 审核日志文件总数的最大数量,包括当前日志文件。

spec.agent.mongod.auditlogRotate.numTotal

类型:整型

MongoDB Ops Manager保留的Atlas 审核日志文件总数。 如果不设立此值,则Atlas 审核日志文件的总数默认为0

spec.agent.mongod.auditlogRotate.percentOfDiskspace

类型:数字

Ops Manager 可用于存储日志文件的总磁盘空间的最大百分比,以十进制表示。如果超过此限制,Ops Manager 将删除压缩的日志文件,直到达到此限制。Ops Manager 首先删除最早的日志文件。

默认值为0.02

spec.agent.mongod.logRotate

类型:对象

MongoDB Ops Manager轮换进程的MongoDB日志的阈值。

spec.agent.mongod.logRotate.sizeThresholdMB

类型:整型

MongoDB Ops Manager轮换单个日志文件之前的最大大小(以 MB 为单位)。 MongoDB Ops Manager如果满足此sizeThresholdMB 或 中给定的值,spec.agent.mongod.logRotate.timeThresholdHrs 会立即轮换日志文件。

spec.agent.mongod.logRotate.timeThresholdHrs

类型:整型

下次轮换之前单个日志文件的最大持续时间(以小时为单位)。 自上次轮换以来的时间。

MongoDB Ops Manager一旦文件满足此timeThresholdHrs spec.agent.mongod.logRotate.sizeThresholdMB或 , 就会轮换日志文件。

spec.agent.monitoringAgent.logRotate

类型:对象

阈值,超过该阈值, MongoDB Agent会轮换监控日志。

spec.agent.monitoringAgent.logRotate.sizeThresholdMB

类型:整型

在MongoDB Agent轮换监控日志之前,单个日志文件的最大大小(以 MB 为单位)。

spec.agent.monitoringAgent.logRotate.timeThresholdHrs

类型:整型

MongoDB Agent轮换监控日志的小时数。

spec.agent.readinessProbe.environmentVariables

类型:对象

配置以下环境变量,用于控制就绪探针的日志文件:

apiVersion: mongodb.com/v1
kind: MongoDB
metadata:
name: my-project
spec:
agent:
readinessProbe:
environmentVariables:
READINESS_PROBE_LOGGER_BACKUPS: 1
READINESS_PROBE_LOGGER_MAX_SIZE: 10
READINESS_PROBE_LOGGER_MAX_AGE: 3
READINESS_PROBE_LOGGER_COMPRESS: true
MDB_WITH_AGENT_FILE_LOGGING: false
LOG_FILE_PATH: /var/log/mongodb-mms-automation/readiness.log
spec.featureCompatibilityVersion

类型:字符串

限制升级到新的主要版本时发生的数据更改。 这允许您降级到以前的主要版本。 要了解有关功能兼容性的更多信息,请参阅 MongoDB 手册中的setFeatureCompatibilityVersion

spec.clusterDomain

类型:字符串

默认值:cluster.local

部署 Kubernetes Operator 的 Kubernetes 集群的域名。当 Kubernetes 创建 StatefulSet 时,Kubernetes 会为每个 Pod 分配一个 FQDN。要更新 Cloud Manager 或 Ops Manager,Kubernetes Operator 使用提供的集群名称计算每个 PodFQDN。Kubernetes 不提供这些主机名查询用的 API

警告

如果 Kubernetes 集群具有spec.clusterDomain 默认域 ,则必须设置 除默认cluster.local 之外的其他值。如果既不使用默认值,也不设置spec.clusterDomain选项,Kubernetes Operator 可能无法按预期运行。

spec.clusterName

类型:字符串

默认值:cluster.local

重要

spec.clusterName 已弃用

请改用 spec.clusterDomain

部署 Kubernetes Operator 的 Kubernetes 集群的域名。当 Kubernetes 创建 StatefulSet 时,Kubernetes 会为每个 Pod 分配一个 FQDN。要更新 Cloud Manager 或 Ops Manager,Kubernetes Operator 使用提供的集群名称计算每个 PodFQDN。Kubernetes 不提供这些主机名查询用的 API

警告

如果 Kubernetes 集群具有spec.clusterDomain 默认域 ,则必须设置 除默认cluster.local 之外的其他值。如果既不使用默认值,也不设置spec.clusterDomain选项,Kubernetes Operator 可能无法按预期运行。

metadata.namespace

类型:字符串

Kubernetes 命名空间 创建MongoDB 资源和其他 对象 的位置

spec.service

类型:字符串

默认:<resource_name>+"-svc" 和 <resource_name>+"-svc-external"

重要

spec.service 已弃用

要为 StatefulSet 创建或用于 StatefulSet 的 Kubernetes 服务的名称。如果具有该名称的服务已存在,MongoDB Enterprise Kubernetes Operator 不会删除或重新创建该服务。该设置允许您创建自己的自定义服务,并让 Kubernetes Operator 重新使用这些服务。

spec.logLevel

类型:字符串

默认值:INFO

配置 Pod 内自动化代理日志记录的级别。接受的值包括:

  • DEBUG

  • INFO

  • WARN

  • ERROR

  • FATAL

spec.security.authentication.ignoreUnknownUsers

类型:布尔值

默认值false

确定是否可以修改未通过 Kubernetes Operator、Cloud Manager 或 Ops Manager 用户界面配置的数据库用户。

要直接通过mongodmongos管理数据库用户,请将此设置设为true

您可以且必须在 MongoDB 资源规范中使用的其他设置取决于您要创建的 MongoDB 部署项:

注意

所有独立设置也会应用于副本集资源。

spec.additionalMongodConfig

类型:集合

启动 MongoDB 进程时需要使用的其他配置选项

Kubernetes Operator 支持您通过 MongoDB 助手部署的 MongoDB 版本所支持的所有配置选项,但 Kubernetes Operator 会覆盖您为以下任何选项提供的值:

要详细了解 Kubernetes Operator 拥有的配置选项,请参阅 MongoDB Kubernetes Operator 独有设置

如需了解可以使用哪些配置选项,请参阅 Ops Manager 文档中的“MongoDB 部署高级选项”。

spec.agent

类型:集合

MongoDB 数据库资源的 MongoDB 助手配置设置。

spec.agent.startupOptions

类型:集合

您要用来启动 MongoDB 数据库资源的 MongoDB 助手设置。

您必须以键值对形式提供 MongoDB 助手设置。这些值必须是字符串。

有关支持的 MongoDB 助手设置列表,请参阅:

1---
2apiVersion: mongodb.com/v1
3kind: MongoDB
4metadata:
5 name: my-standalone
6spec:
7 version: "6.0.0-ent"
8 service: my-service
9
10 opsManager:
11 configMapRef:
12 name: my-project
13 credentials: my-credentials
14 type: Standalone
15
16 persistent: true
17 agent:
18 startupOptions:
19 maxLogFiles: "30"
20 dialTimeoutSeconds: "40"
21...
spec.podSpec

类型:对象

包含MongoDB CustomResourceDefinition 规范的对象 Pod。

spec.externalAccess

类型:集合

适用于外部连接的集群公开规范。要了解如何从 Kubernetes 集群外部连接到您的 MongoDB 资源,请参阅从 Kubernetes 外部连接到 MongoDB 数据库资源

如果您添加 spec.externalAccess,则 Kubernetes Operator 为副本集中的每个 Pod 创建一个外部服务。外部服务为集群中的每个 MongoDB 数据库 Pod 提供外部入口点。每个外部服务具有选择器,它将外部服务与特定 Pod 相匹配。

如果添加此设置时不带任何值,Kubernetes Operator 会创建具有以下默认值的外部服务:

字段
说明

Name

<pod-name>-svc-external

外部服务的名称。您无法更改此值。

Type

LoadBalancer

创建外部 LoadBalancer 服务。

Port

<Port Number>

mongod的端口。

publishNotReadyAddress

true

指定 DNS 记录 即使 Pod 尚未准备就绪,也会创建。对于任何数据库 Pod,请勿设置为false

注意

如果设置spec.externalAccess.externalDomain ,外部服务则会添加另一个端口 ( Port Number + 1 ) 用于备份。

spec.externalAccess.externalService

类型:集合

覆盖spec.externalAccess中默认值的规范。

当您设置spec.externalAccess设置时,Kubernetes Operator 会自动使用默认值创建外部负载均衡器服务。 您可以根据需要覆盖某些值或添加新值。 例如,如果您打算创建 NodePort 服务 并且不需要负载均衡器,您必须在 Kubernetes 规范中配置覆盖:

externalAccess:
externalService:
annotations:
# cloud-specific annotations for the service
spec:
type: NodePort # default is LoadBalancer
# you can specify other spec overrides if necessary

有关 Kubernetes 规范的更多信息,请参阅 Kubernetes 文档中的 ServiceSpec

spec.externalAccess.externalService.annotations

类型:集合

键值对,可让您将特定于云提供商的配置设置添加到部署中的所有集群。 要了解更多信息,请参阅 注解 以及 Kubernetes 云提供商的文档。

您可以使用 注解 指定 Kubernetes Operator 部署使用的外部服务的占位符值。Kubernetes Operator 会自动将这些值替换为正确的值,如下表所述。 使用占位符,您可以在每个服务中为特定 Pod 提供特定注释。

说明

{resourceName}

{namespace}

{podIndex}

StatefulSet 分配的 Pod 的索引 并以当前外部服务为目标。

{podName}

等于{resourceName}-{podIndex}

{statefulSetName}

StatefulSet 。等于{resourceName}

{externalServiceName}

根据指定的占位符值生成的外部服务名称。 等于{resourceName}-{podIndex}-svc-external

{mongodProcessDomain}

托管mongod进程的服务器的域名。等于spec.externalAccess.externalDomain (如果已指定)。否则,等于用于mongod 进程FQDN 的域。

例如,对于进程主机名mdb-rs-1.example.comexample.com是域名。

{mongodProcessFQDN}

自动化配置mongod 中设置的 进程主机名。

进程主机名取决于您的部署配置。如果已将部署为使用external domains ,则进程主机名将使用以下格式:

{resourceName}-{podIndex}.{mongodProcessDomain}

例如: mdb-rs-1.example.com

如果您的部署不使用外部域,则进程主机名将使用以下格式:

{resourceName}-{podIndex}.{resourceName}-{podIndex}-svc.{namespace}.svc.cluster.local

例如: mdb-rs-1.mdb-rs-1-svc.ns.svc.cluster.local

注意

您必须仅使用表中指定的已知占位符值,并确保占位符不使用空值或 null 值。 此外,您不能将特定于多 Kubernetes 集群部署的占位符用于单个MongoDB资源部署。

否则,Kubernetes Operator 将返回错误。 例如,您可能会遇到以下错误消息:

error replacing placeholders in map with key=external-dns.alpha.kubernetes.io/hostname, value={resourceName}-{podIndex}-{unknownPlaceholder}.{clusterName}-{clusterIndex}.example.com: missing values for the following placeholders: {clusterName}, {clusterIndex}, {unknownPlaceholder}``

例子

以下示例指定了{resourceName}{podIndex}{namespace}占位符:

apiVersion: mongodb.com/v1
kind: MongoDB
metadata:
name: mdb-rs
namespace: ns
spec:
replicas: 3
externalAccess:
externalService:
annotations:
external-dns.alpha.kubernetes.io/hostname: {resourceName}-{podIndex}-{namespace}.example.com

Kubernetes Operator 会根据每个占位符的正确值自动填充外部服务的注释。 例如:

mdb-rs-0-svc-external:
annotations:
external-dns.alpha.kubernetes.io/hostname: mdb-rs-0-ns.example.com
mdb-rs-1-svc-external:
annotations:
external-dns.alpha.kubernetes.io/hostname: mdb-rs-1-ns.example.com
mdb-rs-2-svc-external:
annotations:
external-dns.alpha.kubernetes.io/hostname: mdb-rs-2-ns.example.com
spec.externalAccess.externalService.spec

类型:集合

ServiceSpec 的配置 。要了解详情,请参阅spec.externalAccess.externalService

spec.podSpec.persistence.single

类型:集合

让 Kubernetes Operator 创建持久化卷声明,并将数据、事务日志与运行日志的所有三个目录挂载到同一个持久卷

注意

  • 如果spec.persistent : true ,则必须设置此集合中的值。

  • 您可以设置此集合或 persistence.multiple 集合,但不能同时设置两者。

标量
数据类型
说明

labelSelector

字符串

标记 用于将挂载的卷绑定到目录。

storage

字符串

应安装的永久卷的最小大小。此值以整数表示,后跟采用 JEDEC 表示法的存储单位。

默认值为 16Gi。

示例,如果独立运行部署需要60 GB 的存储空间,设立将该值设置为60Gi

storageClass

字符串

持久卷声明 中指定的存储类型 。您可以将此存储类型创建为 StorageClass 对象,然后在此 对象 中使用它 规范。

确保将 StorageClass 设置为reclaimPolicy 保留 。这可确保在 持久卷声明 时保留数据 已删除。

spec.podSpec.persistence.multiple.data

类型:集合

让 Kubernetes Operator 创建持久卷声明,并将数据目录挂载到自己的持久卷上。

注意

  • 如果spec.persistent : true ,则必须设置此集合中的值。

  • 您可以设置此集合或 persistence.single 集合,但不能同时设置这两个集合。

标量
数据类型
说明

labelSelector

字符串

标记 用于将挂载的卷绑定到目录。

storage

字符串

Kubernetes 节点在 Kubernetes 上托管独立部署所需的最小存储容量。该值以整数表示,后跟采用 JEDEC 表示法的存储单位。

默认值为 16Gi。

示例,如果此MongoDB资源需要60 GB 的存储空间,请将此值设立为60Gi

storageClass

字符串

独立运行部署所需的存储类型。 您可以将此存储类型创建为 StorageClass 对象,然后在此 对象 中使用它 规范。

确保将 StorageClass 设置为reclaimPolicy 保留 。这可确保在 持久卷声明 时保留数据 已删除。

spec.podSpec.persistence.multiple.journal

类型:集合

让 Kubernetes Operator 创建持久卷声明,并将日志目录挂载到自己的持久卷上。

注意

  • 如果spec.persistent : true ,则必须设置此集合中的值。

  • 您可以设置此集合或 persistence.single 集合,但不能同时设置这两个集合。

标量
数据类型
说明

labelSelector

字符串

标记 用于将挂载的卷绑定到目录。

storage

字符串

Kubernetes 节点在 Kubernetes 上托管独立部署所需的最小存储容量。该值以整数表示,后跟采用 JEDEC 表示法的存储单位。

默认值为 1 Gi。

示例,如果此MongoDB资源需要60 GB 的存储空间,请将此值设立为60Gi

storageClass

字符串

独立运行部署所需的存储类型。 您可以将此存储类型创建为 StorageClass 对象,然后在此 对象 中使用它 规范。

确保将 StorageClass 设置为reclaimPolicy 保留 。这可确保在 持久卷声明 时保留数据 已删除。

spec.podSpec.persistence.multiple.logs

类型:集合

让 Kubernetes Operator 创建持久卷声明,并将日志目录挂载到自己的持久卷上。

注意

  • 如果spec.persistent : true ,则必须设置此集合中的值。

  • 您可以设置此集合或 persistence.single 集合,但不能同时设置这两个集合。

标量
数据类型
说明

labelSelector

字符串

标记 用于将挂载的卷绑定到目录。

storage

字符串

Kubernetes 节点在 Kubernetes 上托管独立部署所需的最小存储容量。该值以整数表示,后跟采用 JEDEC 表示法的存储单位。

默认值为 3Gi。

示例,如果此MongoDB资源需要60 GB 的存储空间,请将此值设立为60Gi

storageClass

字符串

独立运行部署所需的存储类型。 您可以将此存储类型创建为 StorageClass 对象,然后在此 对象 中使用它 规范。

确保将 StorageClass 设置为reclaimPolicy 保留 。这可确保在 持久卷声明 时保留数据 已删除。

spec.podSpec.podTemplate.affinity.nodeAffinity

类型:结构

Kubernetes 规则 以放置 Pod 针对特定范围的 节点 上的 副本集 。

为了优化读写性能,请使用节点关联性规则来限制 Pod 在特定 节点 上运行 ,或者更愿意在特定 节点 上运行 。

spec.podSpec.podTemplate.affinity.podAffinity

类型:结构

Kubernetes 规则 以确定是否有多个MongoDB 资源 Pod 必须与其他 Pod 共处一地 。要了解有关用例的更多信息,请参阅 关联和反关联 在 Kubernetes 文档中。

spec.podSpec.podTemplate.affinity.podAntiAffinity

类型:结构

Default: kubernetes.io/hostname

设置 规则 MongoDB传播 Pod 将 资源托管到不同位置。位置可以是单个节点、机架或区域。 默认情况下,Kubernetes Operator 会尝试将 Pod 分布到不同的节点。

spec.podSpec.podTemplate.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.topologyKey

类型:结构

Default: kubernetes.io/hostname

该键定义了哪个 标签 用于确定属于哪个拓扑 域 节点属于。

spec.podSpec.podTemplate

类型:集合

模板 KubernetesMongoDBEnterprise Kubernetes Operator用于MongoDB database 资源创建的 Kubernetes Pod。

模板值优先于 spec.podSpec 中指定的值。

注意

Kubernetes Operator 不会验证您在 spec.podSpec.podTemplate 中提供的字段。

spec.podSpec.podTemplate.metadata

类型:集合

MongoDB Enterprise Kubernetes Operator 为 MongoDB 数据库资源创建的 Kubernetes Pod 的元数据。

要查看可以添加到spec.podSpec.podTemplate.metadata 的字段,请参阅 Kubernetes 文档。

spec.podSpec.podTemplate.spec

类型:集合

MongoDB Enterprise Kubernetes Operator 为 MongoDB 数据库资源创建的 Kubernetes Pod 的规范。

要查看哪些字段可以添加到spec.podSpec.podTemplate.spec ,请参阅Kubernetes PodSpec v1Core API 。

注意

在将容器添加到 spec.podSpec.podTemplate.spec.containers 时,Kubernetes Operator 将它们添加到 Kubernetes Pod 中。这些容器附加到 pod 中的 MongoDB 数据库资源容器。

使用此设置为每个 Pod 指定 CPU 和 RAM 分配。 相关示例请参阅 GitHub 上的示例。

注意

所有独立设置也会应用于副本集资源。

以下设置适用于副本集资源类型:

spec.backup

类型:集合

spec.backup.mode的集合容器,可实现 Kubernetes Operator 中 MongoDB 资源的连续备份。

spec.backup.assignmentLabels

类型:数组

以逗号分隔的标签列表,用于将备份守护程序、oplog 存储、块存储、S3 快照存储和文件系统存储分配给特定的项目或组。可以使用分配标签指定特定备份存储是否与特定项目相关联。

如果您使用 Kubernetes Operator 设置分配标签,您在 Kubernetes 配置文件中为分配标签设置的值将覆盖 Ops Manager 用户界面中定义的值。您未使用 Kubernetes Operator 设置的分配标签继续使用 Ops Manager 用户界面中设置的值。

注意

如果设置此参数,则与spec.credentials值链接的 API 密钥必须具有Global Owner角色。

spec.backup.mode

类型:字符串

为 MongoDB 资源启用连续备份。可能的值为 enableddisabledterminated

注意

spec.backup.mode设置依赖于 MongoDB Ops Managerspec.backup.enabled中启用的MongoDB Ops Manager 备份 true,并要求将 资源规范 中的 值设置为 。

使用spec.backup.mode为 MongoDB 资源启用连续备份后,您可以检查备份状态。

spec.backup.encryption

类型:对象

包含备份加密配置设置的对象。

spec.backup.encryption.kmip

类型:对象

包含 KMIP 备份加密配置设置的对象。要了解详情,请参阅为 Ops Manager 配置 KMIP 备份加密

spec.backup.encryption.kmip.client

类型:对象

包含 KMIP 备份加密客户端配置设置的对象。

spec.backup.encryption.kmip.client.clientCertificatePrefix

类型:字符串

spec.backup.snapshotSchedule

类型:集合

用于 Kubernetes Operator 中的 MongoDB 资源连续备份的快照计划设置的集合容器。

spec.backup.snapshotSchedule.snapshotIntervalHours

类型:数字

快照之间的小时数。可以设置的值包括 681224

spec.backup.snapshotSchedule.snapshotRetentionDays

类型:数字

保留最近快照的天数。可以设置介于 25(含 36)之间的值。

spec.backup.snapshotSchedule.dailySnapshotRetentionDays

类型:数字

保留每日快照的天数。 您可以设置介于1365(含)之间的值。 将值设置为0将禁用此规则。

spec.backup.snapshotSchedule.weeklySnapshotRetentionWeeks

类型:数字

保存每周快照的周数。可以设置介于 152(含 36)之间的值。将该值设置为 0 将禁用此规则。

spec.backup.snapshotSchedule.monthlySnapshotRetentionMonths

类型:数字

保留每月快照的月数。可以设置介于 136(含 36)之间的值。将该值设置为 0 将禁用此规则。

spec.backup.snapshotSchedule.pointInTimeWindowHours

类型:数字

可以创建时间点快照的过去小时数。

spec.backup.snapshotSchedule.referenceHourOfDay

类型:数字

一天之内的小时(UTC 时间),用于按 24 小时制安排快照。可以设置介于 023(含 59)之间的值。

spec.backup.snapshotSchedule.referenceMinuteOfHour

类型:数字

小时之内的分钟(UTC 时间),用于安排快照。可以设置介于 059(含 59)之间的值。

spec.backup.snapshotSchedule.fullIncrementalDayOfWeek

类型:字符串

Ops Manager 撷取完整快照的星期几。此设置可确保最近的完整备份。Ops Manager 会将默认值设置为 SUNDAY

spec.clusterName

类型:字符串

默认值:cluster.local

重要

spec.clusterName 已弃用

请改用 spec.clusterDomain

部署 Kubernetes Operator 的 Kubernetes 集群的域名。当 Kubernetes 创建 StatefulSet 时,Kubernetes 会为每个 Pod 分配一个 FQDN。要更新 Cloud Manager 或 Ops Manager,Kubernetes Operator 使用提供的集群名称计算每个 PodFQDN。Kubernetes 不提供这些主机名查询用的 API

警告

如果 Kubernetes 集群具有spec.clusterDomain 默认域 ,则必须设置 除默认cluster.local 之外的其他值。如果既不使用默认值,也不设置spec.clusterDomain选项,Kubernetes Operator 可能无法按预期运行。

spec.connectivity.replicaSetHorizons

类型:集合

允许您为客户端应用程序和 MongoDB 助手提供不同的 DNS 设置。Kubernetes Operator 为副本集成员使用水平分割 DNS。此功能允许 Kubernetes 集群内部与 Kubernetes 外部进行通信。

您可以为每台主机添加多个外部映射。

水平分割要求:

例子

在此示例中,副本集成员在 example-localhost 配置上相互通信。 客户端使用example-website配置与副本集进行通信。

1---
2apiVersion: mongodb.com/v1
3kind: MongoDB
4metadata:
5 name: <my-replica-set>
6spec:
7 members: 3
8 version: "4.2.2-ent"
9 type: ReplicaSet
10 opsManager:
11 configMapRef:
12 name: <configMap.metadata.name>
13 credentials: <mycredentials>
14 persistent: true
15 security:
16 tls:
17 enabled: true
18 connectivity:
19 replicaSetHorizons:
20 - "example-website": "web1.example.com:30907"
21 - "example-website": "web2.example.com:32350"
22 - "example-website": "web3.example.com:31185"
23...
spec.externalAccess.externalDomain

类型:字符串

用于向外部公开您的副本集部署的外部域。

默认情况下,每个副本集节点将 Kubernetes Pod 的 FQDN (*.svc.cluster.local) 作为默认主机名。不过,如果您将一个外部域添加到该设置中,副本集将使用作为指定域的子域的主机名。该主机名使用以下格式:

<replica-set-name>-<pod-idx>.<externalDomain>

例如:

replica-set-1.example.com

使用此设置部署副本集后, Kubernetes Operator 使用带有外部域的主机名来覆盖MongoDB Ops Manager自动化配置中的 processes[n].hostname 字段。 然后, MongoDB Agent会使用此主机名连接到mongod

要指定用于连接到副本集的其他主机名,可以使用spec.connectivity.replicaSetHorizons设置。 但是,以下连接仍使用带有外部域的主机名:

警告:指定此字段会更改MongoDB Ops Manager注册mongod进程的方式。 只能为从Kubernetes Operator 版本1.19开始的新副本集部署指定此字段。 您无法更改此字段的值,也无法更改运行的副本集部署的MongoDB Ops Manager自动化配置中的任何 processes[n].hostname 字段。

spec.members

类型:整型

必需。副本集的节点数。

spec.memberConfig

类型:集合

MongoDB 资源部署的每个 MongoDB 副本集成员的规范。

数组中元素的顺序必须反映副本集中成员的顺序。例如,数组的第一个元素会影响索引为 0 的 Pod,第二个元素会影响索引为 1 的 Pod,依此类推。

例子

请考虑三节点副本集的以下示例规范:

spec:
memberConfig:
- votes: 1
priority: "0.5"
tags:
tag1: "value1"
environment: "prod"
- votes: 1
priority: "1.5"
tags:
tag2: "value2"
environment: "prod"
- votes: 0
priority: "0.5"
tags:
tag2: "value2"
environment: "prod"
spec.memberConfig.priority

类型:字符串

表示 MongoDB 副本集成员成为主节点的相对可能性的数字。

  • 要增加副本集节点成为主节点的相对可能性,请指定较高的 priority 值。

  • 要降低副本集节点成为主节点的相对可能性,请指定较低的 priority 值。

例如,memberConfig.priority1.5 的成员比 memberConfig.priority0.5 的成员更有可能成为主节点。

memberConfig.priority0的节点没有资格成为主节点。 要了解更多信息,请参阅成员优先级。

spec.memberConfig.tags

类型:地图

副本集标签映射,用于将读取和写入操作定向到 MongoDB 副本集的特定成员。

spec.memberConfig.votes

类型:数字

确定 MongoDB 副本集节点是否可以在选举中投票。 设置为1以允许成员投票。 设置为0可将该成员排除在选举之外。

以下设置仅适用于副本集资源类型:

spec.backup.autoTerminateOnDeletion

类型:布尔值

用于控制在您删除 MongoDB 资源时 Kubernetes Operator 是否停止并终止备份的标志。 如果省略,则默认值为false 。 如果您想要在spec.backup.mode设置为enabled时删除 MongoDB 自定义资源,则将此标志设置为true非常有用。

注意

除非另行说明,否则所有副本集设置也适用于分片集群资源。

以下设置仅适用于分片集群资源类型:

spec.backup.snapshotSchedule.clusterCheckpointIntervalMin

类型:数字

相邻集群检查点之间的分钟数。此设置仅适用于运行 MongoDB 且 FCV 为 4.0 或更早版本的分片集群。该数字决定了分片集群的时间点还原粒度。可以设置的值包括 153060

spec.configServerCount

类型:整型

必需配置服务器中的成员数。

spec.configSrv.additionalMongodConfig

类型:集合

附加配置选项,用于启动每个配置服务器成员。

Kubernetes Operator 支持您通过 MongoDB 助手部署的 MongoDB 版本所支持的所有配置选项,但 Kubernetes Operator 会覆盖您为以下任何选项提供的值:

要详细了解 Kubernetes Operator 拥有的配置选项,请参阅 MongoDB Kubernetes Operator 独有设置

如需了解可以使用哪些配置选项,请参阅 Ops Manager 文档中的“MongoDB 部署高级选项”。

spec.configSrv.agent

类型:集合

每个配置服务器成员的 MongoDB 助手配置设置。

spec.configSrv.agent.startupOptions

类型:集合

要用来启动每个配置服务器成员的 MongoDB 助手设置。

您必须以键值对形式提供 MongoDB 助手设置。这些值必须是字符串。

有关支持的 MongoDB 助手设置列表,请参阅:

1---
2apiVersion: mongodb.com/v1
3kind: MongoDB
4metadata:
5 name: my-sharded-cluster-options
6spec:
7 version: "6.0.0-ent"
8 type: ShardedCluster
9 opsManager:
10 configMapRef:
11 name: my-project
12 credentials: my-credentials
13 persistent: true
14 shardCount: 2
15 mongodsPerShardCount: 3
16 mongosCount: 2
17 configServerCount: 1
18
19 mongos:
20 agent:
21 startupOptions:
22 maxLogFiles: "30"
23
24 configSrv:
25 agent:
26 startupOptions:
27 dialTimeoutSeconds: "40"
28 shard:
29 agent:
30 startupOptions:
31 serverSelectionTimeoutSeconds: "20"
32...
spec.configSrvPodSpec

类型:对象

包含MongoDB CustomResourceDefinition 规范的对象 配置服务器Pod。

spec.configSrvPodSpec.persistence.single

类型:集合

让 Kubernetes Operator 创建持久化卷声明,并将数据、事务日志与运行日志的所有三个目录挂载到同一个持久卷

注意

  • 如果spec.persistent : true ,则必须设置此集合中的值。

  • 您可以设置此集合或 persistence.multiple 集合,但不能同时设置两者。

标量
数据类型
说明

labelSelector

字符串

标记 用于将挂载的卷绑定到目录。

storage

字符串

应安装的永久卷的最小大小。此值以整数表示,后跟采用 JEDEC 表示法的存储单位。

默认值为 5Gi。

示例,如果每个配置服务器成员需要60 GB 的存储空间,设立将该值设置为60Gi

storageClass

字符串

持久卷声明 中指定的存储类型 。您可以将此存储类型创建为 StorageClass 对象,然后在此 对象 中使用它 规范。

确保将 StorageClass 设置为reclaimPolicy 保留 。这可确保在 持久卷声明 时保留数据 已删除。

spec.configSrvPodSpec.persistence.multiple.data

类型:集合

让 Kubernetes Operator 创建持久卷声明,并将数据目录挂载到自己的持久卷上。

注意

  • 如果spec.persistent : true ,则必须设置此集合中的值。

  • 您可以设置此集合或 persistence.single 集合,但不能同时设置这两个集合。

标量
数据类型
说明

labelSelector

字符串

标记 用于将挂载的卷绑定到目录。

storage

字符串

Kubernetes 节点在 Kubernetes 上托管每个 配置服务器成员所需的最小存储容量。该值以整数表示,后跟采用 JEDEC 表示法的存储单位。

默认值为 16Gi。

示例,如果此MongoDB资源需要60 GB 的存储空间,请将此值设立为60Gi

storageClass

字符串

每个配置服务器成员所需的存储类型。 您可以将此存储类型创建为 StorageClass 对象,然后在此 对象 中使用它 规范。

确保将 StorageClass 设置为reclaimPolicy 保留 。这可确保在 持久卷声明 时保留数据 已删除。

spec.configSrvPodSpec.persistence.multiple.journal

类型:集合

让 Kubernetes Operator 创建持久卷声明,并将日志目录挂载到自己的持久卷上。

注意

  • 如果spec.persistent : true ,则必须设置此集合中的值。

  • 您可以设置此集合或 persistence.single 集合,但不能同时设置这两个集合。

标量
数据类型
说明

labelSelector

字符串

标记 用于将挂载的卷绑定到目录。

storage

字符串

Kubernetes 节点在 Kubernetes 上托管每个 配置服务器成员所需的最小存储容量。该值以整数表示,后跟采用 JEDEC 表示法的存储单位。

默认值为 1 Gi。

示例,如果此MongoDB资源需要60 GB 的存储空间,请将此值设立为60Gi

storageClass

字符串

每个配置服务器成员所需的存储类型。 您可以将此存储类型创建为 StorageClass 对象,然后在此 对象 中使用它 规范。

确保将 StorageClass 设置为reclaimPolicy 保留 。这可确保在 持久卷声明 时保留数据 已删除。

spec.configSrvPodSpec.persistence.multiple.logs

类型:集合

让 Kubernetes Operator 创建持久卷声明,并将日志目录挂载到自己的持久卷上。

注意

  • 如果spec.persistent : true ,则必须设置此集合中的值。

  • 您可以设置此集合或 persistence.single 集合,但不能同时设置这两个集合。

标量
数据类型
说明

labelSelector

字符串

标记 用于将挂载的卷绑定到目录。

storage

字符串

Kubernetes 节点在 Kubernetes 上托管每个 配置服务器成员所需的最小存储容量。该值以整数表示,后跟采用 JEDEC 表示法的存储单位。

默认值为 3Gi。

示例,如果此MongoDB资源需要60 GB 的存储空间,请将此值设立为60Gi

storageClass

字符串

每个配置服务器成员所需的存储类型。 您可以将此存储类型创建为 StorageClass 对象,然后在此 对象 中使用它 规范。

确保将 StorageClass 设置为reclaimPolicy 保留 。这可确保在 持久卷声明 时保留数据 已删除。

spec.configSrvPodSpec.podTemplate

类型:集合

模板 用于 MongoDB Enterprise Kubernetes Operator 为每个 配置服务器 成员创建的 Kubernetes Pod。

模板值优先于 spec.configSrvPodSpec 中指定的值。

注意

Kubernetes Operator 不会验证您在 spec.configSrvPodSpec.podTemplate 中提供的字段。

spec.configSrvPodSpec.podTemplate.affinity.podAffinity

类型:集合

Kubernetes 规则 以确定是否有多个MongoDB 资源 Pod 必须与其他 Pod 共处一地 。要了解有关用例的更多信息,请参阅 关联和反关联 在 Kubernetes 文档中。

spec.configSrvPodSpec.podTemplate.affinity.nodeAffinity

类型:集合

Kubernetes 规则 以放置 Pod 针对特定范围的 节点 上的 副本集 。

为了优化读写性能,请使用节点关联性规则来限制 Pod 在特定 节点 上运行 ,或者更愿意在特定 节点 上运行 。

spec.configSrvPodSpec.podTemplate.affinity.podAntiAffinity

类型:字符串

Default: kubernetes.io/hostname

设置 规则 MongoDB传播 Pod 将 资源托管到不同位置。位置可以是单个节点、机架或区域。 默认情况下,Kubernetes Operator 会尝试将 Pod 分布到不同的节点。

spec.configSrvPodSpec.podTemplate.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.topologyKey

类型:字符串

Default: kubernetes.io/hostname

该键定义了哪个 标签 用于确定属于哪个拓扑 域 节点属于。

spec.configSrvPodSpec.podTemplate.metadata

类型:集合

MongoDB Enterprise Kubernetes Operator 为每个配置服务器成员创建的 Kubernetes Pod 的元数据。

要查看可以添加到spec.configSrvPodSpec.podTemplate.metadata 的字段,请参阅 Kubernetes 文档。

spec.configSrvPodSpec.podTemplate.spec

类型:集合

MongoDB Enterprise Kubernetes Operator 为每个配置服务器成员创建的 Kubernetes Pod 的规范。

要查看哪些字段可以添加到spec.configSrvPodSpec.podTemplate.spec ,请参阅Kubernetes PodSpec v1Core API 。

注意

当您将容器添加到spec.configSrvPodSpec.podTemplate.spec.containers时,Kubernetes Operator 会将它们添加到 Kubernetes Pod 中。 这些容器附加到 Pod 中的每个配置服务器成员容器。

使用此设置为每个 Pod 指定 CPU 和 RAM 分配。 相关示例请参阅 GitHub 上的示例。

spec.mongodsPerShardCount

类型:整型

必需。 每个分片的节点数

spec.mongosCount

类型:整型

必需 mongos片集群 中 实例的数量。

spec.mongos.additionalMongodConfig

类型:集合

启动每个 mongos 实例所需的其他配置选项

Kubernetes Operator 支持您通过 MongoDB 助手部署的 MongoDB 版本所支持的所有配置选项,但 Kubernetes Operator 会覆盖您为以下任何选项提供的值:

要详细了解 Kubernetes Operator 拥有的配置选项,请参阅 MongoDB Kubernetes Operator 独有设置

如需了解可以使用哪些配置选项,请参阅 Ops Manager 文档中的“MongoDB 部署高级选项”。

spec.mongos.agent

类型:集合

MongoDB Agent每个mongos 实例的 配置设置。

spec.mongos.agent.startupOptions

类型:集合

MongoDB Agent您要用于启动每个 实例的mongos 设置。

您必须以键值对形式提供 MongoDB 助手设置。这些值必须是字符串。

有关支持的 MongoDB 助手设置列表,请参阅:

1---
2apiVersion: mongodb.com/v1
3kind: MongoDB
4metadata:
5 name: my-sharded-cluster-options
6spec:
7 version: "6.0.0-ent"
8 type: ShardedCluster
9 opsManager:
10 configMapRef:
11 name: my-project
12 credentials: my-credentials
13 persistent: true
14 shardCount: 2
15 mongodsPerShardCount: 3
16 mongosCount: 2
17 configServerCount: 1
18
19 mongos:
20 agent:
21 startupOptions:
22 maxLogFiles: "30"
23
24 configSrv:
25 agent:
26 startupOptions:
27 dialTimeoutSeconds: "40"
28 shard:
29 agent:
30 startupOptions:
31 serverSelectionTimeoutSeconds: "20"
32...
spec.mongosPodSpec

类型:对象

包含MongoDB CustomResourceDefinition 规范的对象 mongos Pod。

spec.mongosPodSpec.podTemplate

类型:集合

模板 用于 MongoDB Enterprise Kubernetes Operator 为每个 实例创建的 Kubernetesmongos Pod。

模板值优先于 spec.mongosPodSpec 中指定的值。

注意

Kubernetes Operator 不会验证您在 spec.mongosPodSpec.podTemplate 中提供的字段。

spec.mongosPodSpec.podTemplate.affinity.podAffinity

类型:集合

可选。 Kubernetes 规则 以确定是否有多个MongoDB 资源 Pod 必须与其他 Pod 共处一地 。

spec.mongosPodSpec.podTemplate.affinity.nodeAffinity

类型:集合

Kubernetes 规则 以放置 Pod 针对特定范围的 节点 上的 副本集 。

为了优化读写性能,请使用节点关联性规则来限制 Pod 在特定 节点 上运行 ,或者更愿意在特定 节点 上运行 。

spec.mongosPodSpec.podTemplate.affinity.podAntiAffinity

类型:字符串

Default: kubernetes.io/hostname

设置 规则 MongoDB传播 Pod 将 资源托管到不同位置。位置可以是单个节点、机架或区域。 默认情况下,Kubernetes Operator 会尝试将 Pod 分布到不同的节点。

spec.mongosPodSpec.podTemplate.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.topologyKey

类型:字符串

Default: kubernetes.io/hostname

该键定义了哪个 标签 用于确定属于哪个拓扑 域 节点属于。

spec.mongosPodSpec.podTemplate.metadata

类型:集合

MongoDB Enterprise Kubernetes Operator 为每个mongos实例创建的 Kubernetes Pod 的元数据。

要查看可以添加到spec.mongosPodSpec.podTemplate.metadata 的字段,请参阅 Kubernetes 文档。

spec.mongosPodSpec.podTemplate.spec

类型:集合

MongoDB Enterprise Kubernetes Operator 为每个mongos实例创建的 Kubernetes Pod 的规范。

要查看哪些字段可以添加到spec.mongosPodSpec.podTemplate.spec ,请参阅Kubernetes PodSpec v1Core API 。

注意

当您将容器添加到spec.mongosPodSpec.podTemplate.spec.containers时,Kubernetes Operator 会将它们添加到 Kubernetes Pod 中。 这些容器附加到 Pod 中的每个mongos实例容器。

使用此设置为每个 Pod 指定 CPU 和 RAM 分配。 相关示例请参阅 GitHub 上的示例。

spec.shardCount

类型:整型

必需。 分片集群中的分片数量。

spec.shard.additionalMongodConfig

类型:集合

您希望用于启动每个分片 集群 分片成员的其他 配置选项 。

Kubernetes Operator 支持您通过 MongoDB 助手部署的 MongoDB 版本所支持的所有配置选项,但 Kubernetes Operator 会覆盖您为以下任何选项提供的值:

要详细了解 Kubernetes Operator 拥有的配置选项,请参阅 MongoDB Kubernetes Operator 独有设置

如需了解可以使用哪些配置选项,请参阅 Ops Manager 文档中的“MongoDB 部署高级选项”。

spec.shard.agent

类型:集合

每个分片集群分片成员的 MongoDB 助手配置设置。

spec.shard.agent.startupOptions

类型:集合

您希望用来启动每个分片集群分片成员的 MongoDB 助手设置。

您必须以键值对形式提供 MongoDB 助手设置。这些值必须是字符串。

有关支持的 MongoDB 助手设置列表,请参阅:

1---
2apiVersion: mongodb.com/v1
3kind: MongoDB
4metadata:
5 name: my-sharded-cluster-options
6spec:
7 version: "6.0.0-ent"
8 type: ShardedCluster
9 opsManager:
10 configMapRef:
11 name: my-project
12 credentials: my-credentials
13 persistent: true
14 shardCount: 2
15 mongodsPerShardCount: 3
16 mongosCount: 2
17 configServerCount: 1
18
19 mongos:
20 agent:
21 startupOptions:
22 maxLogFiles: "30"
23
24 configSrv:
25 agent:
26 startupOptions:
27 dialTimeoutSeconds: "40"
28 shard:
29 agent:
30 startupOptions:
31 serverSelectionTimeoutSeconds: "20"
32...
spec.shardPodSpec

类型:对象

包含MongoDB CustomResourceDefinition 规范的对象 分片 。

spec.shardPodSpec.persistence.single

类型:集合

让 Kubernetes Operator 创建持久化卷声明,并将数据、事务日志与运行日志的所有三个目录挂载到同一个持久卷

注意

  • 如果spec.persistent : true ,则必须设置此集合中的值。

  • 您可以设置此集合或 persistence.multiple 集合,但不能同时设置两者。

标量
数据类型
说明

labelSelector

字符串

标记 用于将挂载的卷绑定到目录。

storage

字符串

应安装的永久卷的最小大小。此值以整数表示,后跟采用 JEDEC 表示法的存储单位。

默认值为 16Gi。

示例,如果 中的每个分片分片集群分分片成员需要60 GB 的存储空间,设立将该值设置为60Gi

storageClass

字符串

持久卷声明 中指定的存储类型 。您可以将此存储类型创建为 StorageClass 对象,然后在此 对象 中使用它 规范。

确保将 StorageClass 设置为reclaimPolicy 保留 。这可确保在 持久卷声明 时保留数据 已删除。

spec.shardPodSpec.persistence.multiple.journal

类型:集合

让 Kubernetes Operator 创建持久卷声明,并将日志目录挂载到自己的持久卷上。

注意

  • 如果spec.persistent : true ,则必须设置此集合中的值。

  • 您可以设置此集合或 persistence.single 集合,但不能同时设置这两个集合。

标量
数据类型
说明

labelSelector

字符串

标记 用于将挂载的卷绑定到目录。

storage

字符串

Kubernetes 节点托管 Kubernetes 上的每个分片集群分片节点所需的最小存储容量。该值以整数表示,后跟采用 JEDEC 表示法的存储单位。

默认值为 1 Gi。

示例,如果此MongoDB资源需要60 GB 的存储空间,请将此值设立为60Gi

storageClass

字符串

每个分片集群分片成员所需的存储类型。 您可以将此存储类型创建为 StorageClass 对象,然后再在此对象规范中使用。

确保将 StorageClass 设置为reclaimPolicy 保留 。这可确保在 持久卷声明 时保留数据 已删除。

spec.shardPodSpec.persistence.multiple.data

类型:集合

让 Kubernetes Operator 创建持久卷声明,并将数据目录挂载到自己的持久卷上。

注意

  • 如果spec.persistent : true ,则必须设置此集合中的值。

  • 您可以设置此集合或 persistence.single 集合,但不能同时设置这两个集合。

标量
数据类型
说明

labelSelector

字符串

标记 用于将挂载的卷绑定到目录。

storage

字符串

Kubernetes 节点托管 Kubernetes 上的每个分片集群分片节点所需的最小存储容量。该值以整数表示,后跟采用 JEDEC 表示法的存储单位。

默认值为 16Gi。

示例,如果此MongoDB资源需要60 GB 的存储空间,请将此值设立为60Gi

storageClass

字符串

每个分片集群分片成员所需的存储类型。 您可以将此存储类型创建为 StorageClass 对象,然后再在此对象规范中使用。

确保将 StorageClass 设置为reclaimPolicy 保留 。这可确保在 持久卷声明 时保留数据 已删除。

spec.shardPodSpec.persistence.multiple.logs

类型:集合

让 Kubernetes Operator 创建持久卷声明,并将日志目录挂载到自己的持久卷上。

注意

  • 如果spec.persistent : true ,则必须设置此集合中的值。

  • 您可以设置此集合或 persistence.single 集合,但不能同时设置这两个集合。

标量
数据类型
说明

labelSelector

字符串

标记 用于将挂载的卷绑定到目录。

storage

字符串

Kubernetes 节点托管 Kubernetes 上的每个分片集群分片节点所需的最小存储容量。该值以整数表示,后跟采用 JEDEC 表示法的存储单位。

默认值为 3Gi。

示例,如果此MongoDB资源需要60 GB 的存储空间,请将此值设立为60Gi

storageClass

字符串

每个分片集群分片成员所需的存储类型。 您可以将此存储类型创建为 StorageClass 对象,然后再在此对象规范中使用。

确保将 StorageClass 设置为reclaimPolicy 保留 。这可确保在 持久卷声明 时保留数据 已删除。

spec.shardPodSpec.podTemplate

类型:集合

模板 MongoDB Enterprise Kubernetes Operator 为每个分片 集群 分片成员创建的 Kubernetes Pod。

模板值优先于 spec.shardPodSpec 中指定的值。

注意

Kubernetes Operator 不会验证您在 spec.shardPodSpec.podTemplate 中提供的字段。

spec.shardPodSpec.podTemplate.affinity.podAffinity

类型:字符串

Kubernetes 规则 以确定是否有多个MongoDB 资源 Pod 必须与其他 Pod 共处一地 。要了解有关用例的更多信息,请参阅 关联和反关联 在 Kubernetes 文档中。

spec.shardPodSpec.podTemplate.affinity.nodeAffinity

类型:字符串

Kubernetes 规则 以放置 Pod 针对特定范围的