对于 AI 代理:可在 https://www.mongodb.com/zh-cn/docs/llms.txt 获取文档索引—通过在任何 URL 路径后添加 .md 可获取所有页面的 Markdown 版本。
Docs 菜单

Ops Manager 资源规范

MongoDB Controllers for Kubernetes Operator 根据您写入的规范文件创建容器化MongoDB Ops Manager部署。

创建或更新MongoDB Ops Manager资源规范后,您可以指示MongoDB Controllers for Kubernetes Operator 将此规范应用您的Kubernetes环境。 Kubernetes Operator 创建MongoDB Ops Manager所需的服务和自定义Kubernetes资源,然后在Kubernetes环境中的容器中部署MongoDB Ops Manager及其后端应用程序数据库。

每个MongoDB Ops Manager资源都使用 YAML 中的对象规范来定义部署的特征和设置。

以下示例显示了 Ops Manager 部署的资源规范:

1apiVersion: mongodb.com/v1
2kind: MongoDBOpsManager
3metadata:
4 name: om
5spec:
6 topology: SingleCluster # optional, SingleCluster by default
7 opsManagerURL: https://link.to.configured.load-balancer.example.com # optional OM URL for the operator
8replicas: 1
9version: "8.0.0"
10 adminCredentials: ops-manager-admin-secret
11 configuration:
12 mms.fromEmailAddr: admin@example.com
13 mms.security.allowCORS: "false"
14 security:
15 tls:
16 ca: issuer-ca
17 backup:
18 enabled: true
19 encryption:
20 kmip:
21 server:
22 url: kmip.corp.mongodb.com:5696
23 ca: mongodb-kmip-certificate-authority-pem
24 headDB:
25 storage: "30Gi"
26 labelSelector:
27 matchLabels:
28 app: my-app
29 opLogStores:
30 - name: oplog1
31 # Sets labels for the oplog store.
32 assignmentLabels: ["test1", "test2"]
33 mongodbResourceRef:
34 name: my-oplog-db
35 mongodbUserRef:
36 name: my-oplog-user
37 s3Stores:
38 - name: s3store1
39 # Sets labels for the S3 store.
40 assignmentLabels: ["test1", "test2"]
41
42 mongodbResourceRef:
43 name: my-s3-metadata-db
44 mongodbUserRef:
45 name: my-s3-store-user
46 s3SecretRef:
47 name: my-s3-credentials
48 pathStyleAccessEnabled: true
49 s3BucketEndpoint: s3.region.amazonaws.com
50 s3BucketName: my-bucket
51 applicationDatabase:
52 passwordSecretKeyRef:
53 name: om-db-user-secret
54 key: password
55 members: 3
56 topology: SingleCluster
57 version: "7.0.21-ubi8"
58 featureCompatibilityVersion: "6.0" # During upgrade, set this FCV value to your currently deployed AppDB version.
59 security:
60 certsSecretPrefix: appdb
61 tls:
62 ca: issuer-ca
1apiVersion: mongodb.com/v1
2kind: MongoDBOpsManager
3metadata:
4 name: om
5spec:
6 topology: MultiCluster # optional, SingleCluster by default
7 opsManagerURL: https://link.to.configured.lb.example.com # optional OM URL for the operator
8 clusterSpecList: # optional ClusterSpecOMItem list, the type is different than ClusterSpecItem for AppDB and MongoDB
9 - clusterName: cluster-1 # required
10 replicas: 1 # required, OM application replicas
11 # optional parameters to override those defined at MongoDBOpsManager level
12 clusterDomain: cluster-1.example.com # optional, default cluster.local
13 jvmParameters: ["-Xmx4352m","-Xms4352m"]
14 externalConnectivity: # optional to override
15 type: LoadBalancer
16 port: 9090
17 annotations:
18 key: value
19 statefulSet: # StatefulSetSpecWrapper override
20 spec: {}
21 metadata: {}
22 configuration:
23 automation.versions.source: mongodb
24 mms.adminEmailAddr: cloud-manager-support@mongodb.com
25 backup: # MongoDBOpsManagerBackup, optional, we only support a subset of fields
26 members: 1 # backup daemon replicas, optional, default=1
27 assignmentLabels: [] # assignment labels to override
28 jvmParameters: ["-Xmx4352m","-Xms4352m"] # optional
29 statefulSet: # mdbc.StatefulSetConfiguration, optional to override for backup daemon
30 spec: {}
31 metadata: {}
32 - clusterName: cluster-2
33 replicas: 1
34
35 ....
36
37replicas: 1
38 version: "8.0.0"
39 adminCredentials: ops-manager-admin-secret
40 configuration:
41 mms.fromEmailAddr: admin@example.com
42 mms.security.allowCORS: "false"
43 backup:
44 enabled: true
45 encryption:
46 kmip:
47 server:
48 url: kmip.corp.mongodb.com:5696
49 ca: mongodb-kmip-certificate-authority-pem
50 headDB:
51 storage: "30Gi"
52 labelSelector:
53 matchLabels:
54 app: my-app
55 opLogStores:
56 - name: oplog1
57 # Sets labels for the oplog store.
58 assignmentLabels: ["test1", "test2"]
59 mongodbResourceRef:
60 name: my-oplog-db
61 mongodbUserRef:
62 name: my-oplog-user
63 s3Stores:
64 - name: s3store1
65 # Sets labels for the S3 store.
66 assignmentLabels: ["test1", "test2"]
67
68 mongodbResourceRef:
69 name: my-s3-metadata-db
70 mongodbUserRef:
71 name: my-s3-store-user
72 s3SecretRef:
73 name: my-s3-credentials
74 pathStyleAccessEnabled: true
75 s3BucketEndpoint: s3.region.amazonaws.com
76 s3BucketName: my-bucket
77 security:
78 tls:
79 ca: issuer-ca
80 applicationDatabase:
81 passwordSecretKeyRef:
82 name: om-db-user-secret
83 key: password
84 version: "8.0.0-ubi8"
85 topology: MultiCluster
86 clusterSpecList:
87 - clusterName: cluster1.example.com
88 members: 4
89 - clusterName: cluster2.example.com
90 members: 3
91 - clusterName: cluster3.example.com
92 members: 2
93 security:
94 certsSecretPrefix: appdb
95 tls:
96 ca: issuer-ca

本部分介绍必须用于所有 Ops Manager 资源的设置。

apiVersion

类型:字符串

必需。 MongoDB Kubernetes 资源模式的版本。

kind

类型:字符串

必需。 要创建的 MongoDB Kubernetes 资源类型。 将其设置为MongoDBOpsManager

metadata.name

类型:字符串

必需。 您正在创建的 MongoDB Kubernetes 资源的名称。

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

spec.version

类型:字符串

必需。 要在此 MongoDB Kubernetes 资源上安装的 Ops Manager 版本。

spec.adminCredentials

类型:字符串

必需。 密钥 的名称Kubernetes 您为 管理员用户创建的。MongoDB Ops Manager部署MongoDB Ops Manager资源时, Kubernetes Operator 会使用这些档案创建用户。

注意

为避免在单集群Kubernetes部署中存储密钥,您可以将所有密钥迁移到密钥存储工具。多个Kubernetes集群上的部署不支持将密钥存储在密钥存储工具中,例如 HashiCorp Vault

管理员用户被授予“全局所有者”角色。

spec.replicas

类型:整型

有条件。要并行运行的Ops Manager实例的数量。如果在SingleCluster 中指定spec.topology ,则需要此参数。接受的最小值为1

如果您在MultiCluster 中指定spec.topology ,则忽略此参数。

MongoDB Ops Manager资源还可以使用以下设置:

spec.backup.fileSystemStores

类型:字符串

标识文件系统快照存储的名称。要学习更多信息,请参阅使用 Kubernetes 操作符 配置 文件系统 备份 存储。

spec.backup.logging.LogBackAccessRef

类型:字符串

对 ConfigMap 的引用,其中包含用于配置MongoDB Ops Manager备份日志的自定义 logback-access.xml文件。

ConfigMap 中的键必须与 logback-access.xml 的名称完全匹配,以确保它替换MongoDB Ops Manager Pod 中的默认文件。

要学习;了解更多信息,请参阅使用 CRD 配置MongoDB Ops Manager日志。

spec.backup.logging.LogBackRef

类型:字符串

对包含自定义logback.xml文件的 ConfigMap 的引用。 此文件配置MongoDB Ops Manager备份的一般日志记录行为,包括日志轮换策略、日志级别和其他日志记录参数。

ConfigMap 中的键必须与 logback-access.xml 的名称完全匹配,以确保它替换MongoDB Ops Manager Pod 中的默认文件。 要学习;了解更多信息,请参阅使用 CRD 配置MongoDB Ops Manager日志。

spec.externalApplicationDatabaseRef

类型:集合

引用MongoDB资源用作此Ops Manager资源的应用程序数据库,而不是Kubernetes Operator 内部管理的应用程序数据库。要学习;了解更多信息,请参阅备份Ops Manager 应用程序数据库。

当您指定此设置时, Kubernetes Operator 不会管理此资源的内部应用程序数据库,并且 status.applicationDatabase.phase 会报告 Disabled。此阶段是预期的,不是错误。 status.opsManager.phase 的行为与针对内部托管的应用程序数据库的行为相同。

apiVersion: mongodb.com/v1
kind: MongoDBOpsManager
metadata:
name: primary-om
spec:
externalApplicationDatabaseRef:
name: primary-om-db
kind: MongoDB

如果您同时设立了此设置和 spec.applicationDatabase,则此设置优先, Kubernetes Operator 会忽略 spec.applicationDatabase Kubernetes Operator 还会跳过它原本针对 spec.applicationDatabase 运行的验证。

spec.externalApplicationDatabaseRef.kind

类型:字符串

必需,如果您设立 spec.externalApplicationDatabaseRef.

被引用资源的类型。唯一接受的值为 MongoDB

spec.externalApplicationDatabaseRef.name

类型:字符串

Required if you set spec.externalApplicationDatabaseRef.

用作外部应用程序数据库的MongoDB资源的名称。此资源必须将 spec.role设立为 AppDB,如MongoDB数据库资源规范中所述,并且必须与Ops Manager资源位于同一命名空间中。 Kubernetes Operator 不支持跨命名空间的引用。

名称必须是 <MongoDBOpsManager-name>-db。此约定允许Ops Manager资源和MongoDB资源使用相同的应用程序数据库 StatefulSet 名称, Kubernetes Operator 在迁移期间转移该 StatefulSet 所有权时需要该名称。

spec.logging.LogBackAccessRef

类型:字符串

对 ConfigMap 的引用,其中包含用于配置MongoDB Ops Manager日志的自定义 logback-access.xml文件。

ConfigMap 中的键必须完全是 logback-access.xml,以确保它替换MongoDB Ops Manager Pod 中的默认文件。

要学习;了解更多信息,请参阅使用 CRD 配置MongoDB Ops Manager日志。

spec.logging.LogBackRef

类型:字符串

对包含自定义logback.xml文件的 ConfigMap 的引用。 此文件配置MongoDB Ops Manager的一般日志记录行为,包括日志轮换策略、日志级别和其他日志记录参数。

ConfigMap 中的键必须完全是 logback.xml,以确保它替换MongoDB Ops Manager Pod 中的默认文件。

要学习;了解更多信息,请参阅使用 CRD 配置MongoDB Ops Manager日志。

注意

如果Ops Manager仪表盘生成的文件大小大于emptyDir 卷中的可用存储空间,请考虑使用持久卷覆盖emptyDir 卷,以防止 Pod 崩溃。要学习;了解详情,请参阅spec.statefulSet.spec.template.spec.volumes

spec.opsManagerURL

类型:字符串

可选。 Operator 中URL MongoDB Ops Manager资源的 ,例如:Kuberneteshttps://link.to.configured.lb.example.com

  • 如果省略此参数,则在连接到MongoDB Ops Manager实例时, Kubernetes Operator 使用以下URL作为MongoDB Ops Manager实例的默认 URL:<om-name>-svc.{namespace}.svc.cluster.local。 这是 无头服务的 FQDNMongoDB Ops Manager 。

  • 如果指定此参数,则可将此 URL 更改为其他 URL。

注意

spec.opsManagerURL请勿将 与您在 ConfigMap 中为特定部署指定的URL混淆,该 URL 用于配置应用程序数据库的MongoDB部署和监控代理。 Kubernetes Operator 需要具有spec.opsManagerURL 才能直接连接到Ops Manager实例并配置Ops Manager和应用程序数据库部署。 Kubernetes Operator 不使用spec.opsManagerURL 来管理特定的MongoDB数据库。

spec.opsManagerURL在以下情况下,将 参数更改为自定义URL :

  • 当您跨多个MongoDB Ops Manager Kubernetes集群部署URL ,并且无法从MongoDB Ops Manager 托管 Pod 访问默认 时。例如,当您在部署MongoDB Ops Manager KubernetesKubernetesOperator 之外的其他 集群上部署 时,可能无法访问MongoDB Ops Manager 服务的 FQDN 。在这种情况下,您可以指定自定义 URL。

  • 在外部域上配置对MongoDB Ops Manager实例的外部访问时,您可以指定自定义URL 。 这还要求 Kubernetes Operator 和应用程序数据库的监控代理使用此自定义 URL,而不是默认 URL。

spec.clusterDomain

类型:字符串

Kubernetes assigns each Pod a FQDN. The Kubernetes Operator calculates the FQDN for each Pod using a provided clusterDomain. Kubernetes doesn't provide an API to query these hostnames.

spec.clusterName

重要

spec.clusterName 已弃用

改用 spec.clusterDomain

类型:字符串

Kubernetes assigns each Pod a FQDN. The Kubernetes Operator calculates the FQDN for each Pod using a provided clusterName. Kubernetes doesn't provide an API to query these hostnames.

spec.configuration

类型:集合

Ops Manager配置属性。有关属性名称和说明,请参阅Ops Manager配置设置。每个属性采用string 类型的值。

重要

如果 Ops Manager 要管理部署在其所部署到的 Kubernetes 集群外部的 MongoDB 资源,您必须将mms.centralUrl设置添加到spec.configuration

将该值设置为 Ops Manager 在 Kubernetes 集群外部公开的 URL。

要学习;了解更多信息,请参阅管理外部MongoDB部署。

spec.configuration.mms.featureFlag.automation.verifyDownloads

类型:字符串

当设置为enabled时,MongoDB Agent需要所有由Ops Manager实例托管的MongoDB部署的签名文件。

当您在启用此选项的情况下升级 MongoDB Agent时,当前版本的 MongoDB Agent需要新的 MongoDB Agent二进制文件的签名文件。

要了解更多信息,请参阅验证 MongoDB 签名。

spec.configuration.mms.featureFlag.backup.queryable

类型:布尔值

设置为false以禁用可查询备份。

spec.configuration.mms.featureFlag.backup.wt.queryable

类型:布尔值

设置为false可在使用 WiredTiger 时禁用可查询备份

spec.configuration.mms.mongoDbUsage.defaultUsageType

类型:字符串

Kubernetes 服务的默认服务器类型。

接受的值为: PRODUCTION_SERVERTEST_SERVERDEV_SERVERRAM_POOL

spec.jvmParameters

类型:字符串数组

可选。 传递给container中的Ops Manager应用程序的Java虚拟机(JVM)参数。任何给定的参数都会替换 Ops Manager 应用程序的默认Java虚拟机(JVM)参数。

此 Kubernetes Operator 参数默认为空列表。

spec:
jvmParameters: ["-XX:+HeapDumpOnOutOfMemoryError","-XX:HeapDumpPath=/tmp"]

重要

更改 Java虚拟机(JVM) 内存堆值,需您自担风险

Kubernetes Operator calculates its JVM memory heap values of the Ops Manager Application based on the container's memory. Changing the -Xms and -Xmx values can cause issues with Ops Manager.

spec.security.certsSecretPrefix

类型:字符串

密钥 前缀的文本Kubernetes 您创建的包含 的MongoDB Ops Manager TLS 密钥和证书的密钥。

您必须将密钥命名为<prefix>-<metadata.name>-cert

要了解如何将 Ops Manager 实例配置为通过HTTPS运行,请参阅部署 Ops Manager 资源。

spec.security.tls.ca

ConfigMap 的名称Kubernetes ,其中包含 的自定义 CA MongoDB Ops Manager文件。

重要

spec.security.tls.ca is required if you use a custom CA to sign your Ops Manager TLS certificates.

Kubernetes 操作符要求您在 ConfigMap 中为 Ops Manager 资源mms-ca.crt的证书命名。

CA签署的证书:

  • 客户端用于连接到 Ops Manager 应用程序,以及

  • 应用程序数据库Pod中用于与MongoDB Ops Manager通信的代理。

警告

You must concatenate your custom CA file and the entire TLS certificate chain from downloads.mongodb.com to prevent Ops Manager from becoming inoperable if the application database restarts.

spec.security.tls.enabled

重要

spec.security.tls.enabled is deprecated and will be removed in a future release. To enable TLS, provide a value for the spec.security.certsSecretPrefix setting.

使用TLS证书对客户端和 Ops Manager 之间的通信进行加密。

spec.statefulSet.spec

类型:集合

MongoDB Controllers for Kubernetes Operator 为MongoDB Ops Manager创建的 StatefulSet 规范

要查看哪些字段可以添加到 ,请参阅Kubernetes文档中的spec.statefulSet.spec StatefulSetSpec v1 应用程序。

spec.statefulSet.spec.template

类型:集合

MongoDB Controllers for Kubernetes Operator 为MongoDB Ops Manager创建的 StatefulSet 中Kubernetes Pod 的模板。

注意

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

spec.statefulSet.spec.template.metadata

类型:集合

MongoDB Controllers for Kubernetes Operator 为MongoDB Ops Manager创建的 StatefulSet 中Kubernetes Pod 的元数据。

要查看哪些字段可以添加到spec.statefulSet.spec.template.metadata ,请参阅Kubernetes文档。

spec.statefulSet.spec.template.spec

类型:集合

Kubernetes Operator 的MongoDB控制器为MongoDB Ops Manager创建的StatefulSet中Kubernetes Pod 的规范。

To review the complete list of fields you can add to spec.statefulSet.spec.template.spec, see the Kubernetes documentation.

以下示例spec.statefulSet.spec.template.spec 定义了MongoDB Controllers for Kubernetes Operator 部署的一个MongoDB Ops Manager容器的最小和最大 CPU 和内存容量:

提示

有关运行 Ops Manager 组件的主机的硬件、软件和网络要求的更多信息,请参阅 Ops Manager 系统要求 在 Ops Manager 文档中。

statefulSet:
spec:
template:
spec:
containers:
- name: mongodb-ops-manager
resources:
requests:
cpu: "4"
memory: "16Gi"
limits:
cpu: "8"
memory: "32Gi"
spec.statefulSet.spec.template.spec.containers

类型:集合

MongoDB Controllers for Kubernetes Operator 为 MongoDB Ops Manager 创建的 StatefulSet 中 Kubernetes Pod 的容器列表。

要修改 Ops Manager container的规范,您必须使用name字段提供container的确切名称,如以下示例所示:

backup:
statefulSet:
spec:
template:
spec:
containers:
- name: mongodb-ops-manager

注意

当您将container添加到spec.statefulSet.spec.template.spec.containers时,Kubernetes 操作符会将它们添加到 Kubernetes pod 中。这些容器附加到 Pod 中的 Ops Manager 容器。

spec.statefulSet.spec.template.spec.containers.resources.requests.cpu

类型:字符串

Kubernetes节点上托管MongoDB Ops Manager必须提供的最小 CPU容量。

The requested value must be less than or equal to spec.statefulSet.spec.template.spec.containers.resources.limits.cpu.

spec.statefulSet.spec.template.spec.containers.resources.limits.cpu

类型:字符串

为托管Ops Manager而创建的节点的最大 CPU容量。如果省略,则该值设立为spec.statefulSet.spec.template.spec.containers.resources.requests.cpu

spec.statefulSet.spec.template.spec.containers.resources.requests.memory

类型:字符串

节点 上必须可用的最小内存容量KubernetesMongoDB Ops Manager Kubernetes在 上托管 。该值以整数表示,后跟采用JEDEC表示法的内存单位。

例子

如果 Kubernetes 上的 Ops Manager 需要 6 GB 内存,请将此值设置为6Gi

注意

MongoDB 建议将此值至少设置为5Gi

The requested value must be less than or equal to spec.statefulSet.spec.template.spec.containers.resources.limits.memory.

spec.statefulSet.spec.template.spec.containers.resources.limits.memory

类型:字符串

为托管Ops Manager而创建的节点的最大内存容量。如果省略,则该值设立为spec.statefulSet.spec.template.spec.containers.resources.requests.memory

Kubernetes Operator 根据容器内存计算并设置 Java 堆大小的参数。

警告

将此值限制为小于 32 GB

将此值设置为大于 32 GB ( 32Gi ) 的值可能会导致备份服务出现问题。 过多的堆可能会在 Ops Manager 中导致不可预知的结果。

spec.statefulSet.spec.template.spec.volumes

类型:集合

容器可以在StatefulSet MongoDB Controllers for Kubernetes 操作符 为Ops Manager创建的中挂载的卷的列表。

如果您使用Ops Manager仪表盘请求部署的日志,并且临时文件的大小非常大,请考虑为Ops Manager StatefulSet 中的 data Kubernetes 卷使用持久卷。

默认下,data Kubernetes 卷使用 emptyDir 类型。要覆盖它并使用持久卷,请将以下配置添加到您的 MongoDBOpsManager资源中:

statefulSet:
spec:
template:
spec:
volumes:
- name: data
persistentVolumeClaim:
claimName: <my-pvc>

<my-pvc> 替换为您的 Kubernetes PersistentVolumeClaim。 名称。

本节介绍与MongoDB Ops Manager中的外部连接相关的可选设置。 有关多集群MongoDB Ops Manager部署的特定可选外部连接设置,请参阅多集群设置。

spec.externalConnectivity

类型:集合

启用与MongoDB Ops Manager 的外部连接的配置对象。 如果提供, Kubernetes Operator 将创建一个Kubernetes 服务,允许来自Kubernetes集群外部的流量到达MongoDB Ops Manager应用程序。

如果未提供,Kubernetes Operator 不会创建 Kubernetes 服务。 您必须手动创建一个解决方案,或使用第三方解决方案,使您能够将外部流量路由到 Kubernetes 集群中的 Ops Manager 应用程序。

spec.externalConnectivity.type

类型:字符串

在Kubernetes之外公开MongoDB Ops Manager 的Kubernetes服务 ServiceType。

如果存在spec.externalConnectivity.type ,则为必填项。

接受的值为: LoadBalancerNodePort 。 如果您的云提供商支持,则建议使用LoadBalancer 。 使用NodePort进行本地部署。

spec.externalConnectivity.port

类型:整型

指示 Kubernetes 服务公开 Ops Manager 应用程序的端口应用于外部流量的值。

  • 如果spec.externalConnectivity.typeNodePort

    • Kubernetes 服务通过此端口向外部流量公开 Ops Manager 应用程序。

    • 如果您不提供 值, Kubernetes服务将从以下默认范围中随机选择的可用端口将流量路由到Ops Managerspec.externalConnectivity.port 应用程序:30000 -32767

      注意

      您必须将网络的防火墙配置为允许通过此端口的流量。

  • 如果spec.externalConnectivity.typeLoadBalancer

    • 云提供商创建的负载均衡器资源通过此端口公开 Ops Manager 应用程序。

    • 如果您不提供 值, Kubernetes服务将通过默认HTTPspec.externalConnectivity.port ()8080 或 HTTPS8443 () 端口向外部流量公开Ops Manager 应用程序。

spec.externalConnectivity.loadBalancerIP

类型:字符串

Kubernetes Operator 创建LoadBalancer Kubernetes 服务时使用的 IP 地址。

仅当您的云提供商支持且spec.externalConnectivity.typeLoadBalancer 时,才能使用此设置。要学习;了解有关类型 LoadBalancer 的更多信息,请参阅Kubernetes文档。

spec.externalConnectivity.externalTrafficPolicy

类型:字符串

将外部流量路由到 Ops Manager Kubernetes 服务的策略。该服务根据此设置的值将外部流量路由到节点本地或集群范围的端点。

接受的值为: ClusterLocal 。 要了解哪些值可以满足您的要求,请参阅 Kubernetes 中的源 IP 在 Kubernetes 文档中。

注意

如果您选择Cluster ,则客户端的Source-IP在 Kubernetes 网络边界发生的网络跳跃期间会丢失。

spec.externalConnectivity.annotations

类型:集合

键值对,允许您提供特定于云提供商的配置设置。

要了解有关 注解 的更多信息Amazon Web Services 上的 TLS 支持 ,请参阅Kubernetes 文档。

本节介绍与MongoDB Ops Manager中的备份相关的可选设置。 有关特定于多集群MongoDB Ops Manager部署的可选备份设置,请参阅多集群设置。

spec.backup.assignmentLabels

类型:字符串数组

备份守护程序服务进程的分配标签列表。 使用分配标签来标识与特定项目相关联的特定备份守护进程。 如果使用Kubernetes Operator 设置分配标签,则在Kubernetes配置文件中为分配标签设置的值将覆盖MongoDB Ops Manager用户界面中定义的值。 未使用Kubernetes Operator 设置的分配标签将继续使用MongoDB Ops Manager用户界面中设置的值。

spec.backup.enabled

类型:布尔值

为 Ops Manager 资源启用备份的标志。设置为false时,将禁用备份。

默认值为true

spec.backup.encryption

类型:对象

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

spec.backup.encryption.kmip

类型:对象

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

注意

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

spec.backup.encryption.kmip.server

类型:对象

包含KMIP备份加密服务器配置设置的对象。

spec.backup.encryption.kmip.server.ca

类型:字符串

Human-readable label that identifies the ConfigMap that contains an entry for the CA certificate (ca.pem) to use for KMIP authentication.

spec.backup.encryption.kmip.server.url

类型:字符串

URL for the KMIP server that uses the hostname.port format (for example, 192.168.1.3:5696 or my-kmip-server.mycorp.com:5696).

spec.backup.headDB

类型:集合

头部数据库的配置设置。Kubernetes Operator 创建具有指定配置的持久卷声明

标量
数据类型
说明

labelSelector

字符串

用于将已安装卷绑定到目录的标签

storage

字符串

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

默认值为30Gi

要学习;了解更多信息,请参阅备份守护程序硬件要求。

示例,如果头部数据库需要60 GB 的存储空间,设立将该值设置为60Gi

storageClass

字符串

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

Make sure to set the StorageClass reclaimPolicy to Retain. This ensures that data is retained when a Persistent Volume Claim is removed.

spec.backup.jvmParameters

类型:字符串数组

可选。 传递给容器中 Ops Manager 备份服务的JVM参数。

此 Kubernetes Operator 参数默认为空列表。

spec:
backup:
jvmParameters: ["-XX:+UseStringCache"]

警告

更改 Java虚拟机(JVM) 内存堆值,需您自担风险

Kubernetes Operator calculates the JVM memory heap values of the backup service based on the container's memory. Changing the -Xms and -Xmx values can cause issues with Ops Manager.

spec.backup.members

类型:整型

可选。要在Kubernetes中部署的备份守护进程服务的数量。如果未指定,则默认为1 。为了确保备份服务的高可用性,请在Ops Manager中部署多个备份守护程序。

spec.backup.opLogStores

类型:集合

如果启用备份,则为必填项。 用于备份的oplog存储数组。 大量中的每个项目都引用Kubernetes Operator 在Kubernetes集群中部署的MongoDB 数据库资源。

spec.backup.opLogStores.assignmentLabels

类型:字符串数组

oplog 存储的分配标签列表。 使用分配标签来标识特定 oplog 存储与特定项目相关联。 如果使用Kubernetes Operator 设置分配标签,则在Kubernetes配置文件中为分配标签设置的值将覆盖MongoDB Ops Manager用户界面中定义的值。 未使用Kubernetes Operator 设置的分配标签将继续使用MongoDB Ops Manager用户界面中设置的值。

spec.backup.opLogStores.name

类型:字符串

如果启用备份,则为必填项。 oplog 存储的名称。

重要

一旦指定,请勿编辑 oplog 存储的名称。

spec.backup.opLogStores.mongodbResourceRef.name

类型:字符串

如果启用备份,则为必填项。 您创建的用于存储oplog切片的MongoDB资源或MongoDBMultiCluster资源的名称。 您必须将此资源部署在与MongoDB Ops Manager资源相同的命名空间中。

Oplog 数据库仅支持SCRAM身份验证机制。 您无法启用其他身份验证机制。

如果在 oplog 数据库上启用SCRAM身份验证,则必须:

  • 创建 MongoDB 资源以将 Ops Manager 连接到 oplog 数据库。

  • name在Ops Manager资源定义中指定用户的 。

如果不存在具有此名称的 MongoDB database 资源,则backup资源将进入Pending状态。Kubernetes 操作符每 10 秒重试一次,直到创建具有此名称的 MongoDB database 资源。

注意

当您对此设置中引用的数据库资源进行安全更改时,Kubernetes 操作符开始自动协调 Ops Manager 资源。Kubernetes 操作符根据您的更改更新 Ops Manager 配置中的mongoUrissl标志。

spec.backup.opLogStores.mongodbUserRef.name

类型:字符串

SCRAM如果在 上启用了Oplog Store Database 身份验证,则为必填项。MongoDB用于连接 的Oplog Store Database 用户资源的名称。将此用户资源部署在与MongoDB Ops Manager资源相同的命名空间中,并具有以下所有角色:

spec.backup.blockStores

类型:集合

如果启用使用块存储的备份,则为必填项。 用于备份的块存储数组。 数组中的每个项目都引用MongoDB database KubernetesKubernetesOperator 在 集群中部署的 资源。

spec.backup.blockStores.assignmentLabels

类型:字符串数组

块存储的分配标签列表。 使用分配标签来标识特定的块存储与特定项目相关联。 如果使用Kubernetes Operator 设置分配标签,则在Kubernetes配置文件中为分配标签设置的值将覆盖MongoDB Ops Manager用户界面中定义的值。 未使用Kubernetes Operator 设置的分配标签将继续使用MongoDB Ops Manager用户界面中设置的值。

spec.backup.blockStores.name

类型:字符串

如果使用块存储启用备份,则为必填项。 块存储的名称。

重要

指定后,请勿编辑块存储的名称

spec.backup.blockStores.mongodbResourceRef.name

类型:字符串

如果使用块存储启用备份,则为必填项。 您为块存储创建的MongoDB database资源的名称。 您必须将此数据库资源部署在与MongoDB Ops Manager资源相同的命名空间中。

块存储数据库仅支持SCRAM身份验证机制。 您无法启用其他身份验证机制。

如果在块存储数据库上启用SCRAM身份验证,则必须:

  • 创建 MongoDB 用户资源以将 Ops Manager 连接到块存储数据库。

  • name在Ops Manager资源定义中指定用户的 。

如果不存在具有此名称的 MongoDB database 资源,则backup资源将进入Pending状态。Kubernetes 操作符每 10 秒重试一次,直到创建具有此名称的 MongoDB database 资源。

注意

当您对此设置中引用的数据库资源进行安全更改时,Kubernetes 操作符开始自动协调 Ops Manager 资源。Kubernetes 操作符根据您的更改更新 Ops Manager 配置中的mongoUrissl标志。

spec.backup.blockStores.mongodbUserRef.name

类型:字符串

如果在块存储数据库上启用了 SCRAM 身份验证,则为必填项。 用于连接块存储数据库的 MongoDB 用户资源的名称。 将此用户资源部署在与MongoDB Ops Manager资源相同的命名空间中,并具有以下所有角色:

spec.backup.queryableBackupSecretRef.name

类型:字符串

包含来自 的 Queryable.pem MongoDB Ops Manager文件的密钥名称,您将使用该文件根据部署的 TLS 要求访问和查询备份。PEM 文件包含公钥证书及其关联的私钥,访问和查询所需的在 中对备份快照运行查询。MongoDB Ops Manager要查询备份,请指定此参数的值。 如果未设置,备份不受影响,但无法查询。

spec.backup.statefulSet.spec

类型:集合

MongoDB Controllers for Kubernetes Operator备份守护进程服务 创建的 StatefulSet 规范。

要查看哪些字段可以添加到 ,请参阅Kubernetes文档中的spec.backup.statefulSet.spec StatefulSetSpec v1 应用程序。

spec.backup.statefulSet.spec.template

类型:集合

Template for the Kubernetes Pods in the StatefulSet that the MongoDB Controllers for Kubernetes Operator creates for the backup daemon service.

注意

Kubernetes Operator 不会验证您在spec.backup.statefulSet.spec.template 中提供的字段。

spec.backup.statefulSet.spec.template.metadata

类型:集合

Kubernetes Operator 的MongoDB控制器为备份守护进程服务创建的 StatefulSet 中Kubernetes Pod 的元数据。

要查看哪些字段可以添加到spec.backup.statefulSet.spec.template.metadata ,请参阅Kubernetes文档。

spec.backup.statefulSet.spec.template.spec

类型:集合

Kubernetes Operator 的MongoDB控制器为备份守护进程服务创建的 StatefulSet 中Kubernetes Pod 的规范。

To review the complete list of fields you can add to spec.backup.statefulSet.spec.template.spec, see the Kubernetes documentation.

以下示例spec.backup.statefulSet.spec.template.spec 定义了 MongoDB Controllers for Kubernetes Operator 部署的一个 备份守护进程服务 容器的最小和最大 CPU 和内存容量:

提示

有关运行 Ops Manager 组件的主机的硬件、软件和网络要求的更多信息,请参阅 Ops Manager 系统要求 在 Ops Manager 文档中。

statefulSet:
spec:
template:
spec:
containers:
- name: mongodb-backup-daemon
resources:
requests:
cpu: "4"
memory: "8Gi"
limits:
cpu: "8"
memory: "16Gi"
spec.backup.statefulSet.spec.template.spec.containers

类型:集合

属于MongoDB Controllers for Kubernetes Operator 为备份守护进程服务创建的 StatefulSet 中Kubernetes Pod 的容器列表。

要修改备份守护进程服务容器的规范,必须使用name 字段提供容器的确切名称,如以下示例所示:

backup:
statefulSet:
spec:
template:
spec:
containers:
- name: mongodb-backup-daemon

注意

当您将容器添加到spec.backup.statefulSet.spec.template.spec.containers时,Kubernetes Operator 会将它们添加到 Kubernetes Pod 中。 这些容器附加到 Pod 中的备份守护程序服务容器。

spec.backup.statefulSet.spec.template.spec.containers.resources.requests.cpu

类型:字符串

Kubernetes节点上托管备份守护进程服务必须提供的最小 CPU容量。

The requested value must be less than or equal to spec.backup.statefulSet.spec.template.spec.containers.resources.limits.cpu.

spec.backup.statefulSet.spec.template.spec.containers.resources.limits.cpu

类型:字符串

Maximum CPU capacity for the node being created to host the backup daemon service. If omitted, this value is set to spec.backup.statefulSet.spec.template.spec.containers.resources.requests.cpu.

spec.backup.statefulSet.spec.template.spec.containers.resources.requests.memory

类型:字符串

Kubernetes 节点 上必须可用的最小内存容量 在Kubernetes上托管 备份守护进程服务 。该值以整数表示,后跟采用JEDEC表示法的内存单位。

注意

将此值至少设置为4.5Gi 。 小于4.5Gi的值可能会导致错误。

The requested value must be less than or equal to spec.backup.statefulSet.spec.template.spec.containers.resources.limits.memory.

spec.backup.statefulSet.spec.template.spec.containers.resources.limits.memory

类型:字符串

为托管备份守护进程服务而创建的节点的最大内存容量。如果省略,则该值设立为spec.backup.statefulSet.spec.template.spec.containers.resources.requests.memory

Kubernetes Operator 根据容器内存计算并设置 Java 堆大小的参数。

警告

将此值限制为小于 32 GB

将此值设置为大于 32 GB ( 32Gi ) 的值可能会导致备份服务出现问题。 过多的堆可能会在 Ops Manager 中导致不可预知的结果。

您可以将Ops Manager配置为使用 S3 存储 oplog 和备份快照,并使用自定义 CA 颁发的密钥通过 TLS 保护与 S3 的连接。

To configure custom CA keys, use the ConfigMap with which you configured TLS for your Application Database as described on the TLS-Encrypted Connection (HTTPS) tab of Deploy an Ops Manager Resource. Set spec.applicationDatabase.security.tls.ca to this ConfigMap.

您可以将 TLS 同时用于 S3 和应用程序数据库,或仅用于 S3。

  • To use TLS for both, get certificates for both purposes from the same ca-pem referenced in the ConfigMap.

  • 要仅将 TLS 用于 S3,请不要在 ConfigMap 中定义 spec.security.applicationDatabase.certsSecretPrefix

spec.backup.s3OpLogStores.assignmentLabels

类型:字符串数组

S3 oplog存储的分配标签列表。使用分配标签来标识特定的 S3 oplog存储与特定项目相关联。如果使用Kubernetes Operator设立分配标签,则在Kubernetes配置文件中为分配标签设立的值将覆盖Ops Manager用户界面中定义的值。未使用Kubernetes Operator设立的分配标签将继续使用Ops Manager 用户界面中设立的值。

spec.backup.s3OpLogStores.customCertificate

类型:布尔值

已弃用。请改用spec.backup.s3OpLogStores.customCertificateSecretRefs

指示是否使用 AppDB 证书 (appdb-ca) 作为 S3 oplog存储的自定义 TLS 证书的标志。默认值为 False

spec.backup.s3OpLogStores.customCertificateSecretRefs

类型:对象数组

使用Kubernetes密钥的 S3 oplog存储的自定义证书列表。 base64 编码的 x.509 证书必须已存在于带有密钥的Kubernetes密钥中,并且必须可由Java CertifcateFactory 进行解析。您不能在一个密钥中指定链中的多个证书。如果您在一个密钥中指定链中的多个证书, Kubernetes Operator 仅使用链中的第一个证书。如果您还提供了 customCertificate 设置, Kubernetes Operator 将使用 spec.applicationDatabase.security.tls.ca 作为备份的自定义证书。

Each entry in the list specifies the name and the key. If you specify multiple secrets, Kubernetes Operator uses all the certificates in the specified secrets.

如果您不提供此设置,Ops Manager 将使用 Ops Manager 使用的JVM默认信任存储。

spec.backup.s3OpLogStores.customCertificateSecretRefs.name

类型:字符串

需要为 S3 oplog存储使用自定义证书。包含自定义证书的Kubernetes密钥。

spec.configuration.mms.mongoDbUsage.defaultUsageType

类型:字符串

Kubernetes 服务的默认服务器类型。

spec.backup.s3OpLogStores.customCertificateSecretRefs.key

类型:字符串

需要为 S3 oplog存储使用自定义证书。表示包含 base64-encoded x.509 证书的密钥中密钥的文件。如果不指定此设置, Kubernetes Operator 无法将自定义证书用于 S3 oplog存储备份。

spec.backup.s3OpLogStores.irsaEnabled

类型:布尔值

启用在 AWS EKS 中使用服务帐户的 AWS IAM 角色来配置 S3 oplog存储的标志。默认值为 False。如果您不使用 AWS EKS,则此标志无效。当设立为 False 时,将禁用使用 EKS 中服务帐户的 AWS IAM 角色配置 S3 oplog存储。要学习;了解更多信息,请参阅 EKS 中服务账户的 IAM 角色。

spec.backup.s3OpLogStores.name

类型:字符串

使用 S3存储来存储oplog是必需的。 S3 oplog存储的名称。

spec.backup.s3OpLogStores.mongodbResourceRef.name

类型:字符串

您创建的用于存储S3 oplog存储的元数据的 MongoDB 数据库资源的名称。您必须将此数据库资源部署在与Ops Manager资源相同的命名空间中。

注意

省略此设置可使用应用程序数据库存储S3 oplog存储的元数据。

如果省略此设置,则还必须省略 设置。 Kubernetes Operatorspec.backup.s3OpLogStores.mongodbUserRef.name 在内部处理SCRAM 用户身份验证。

如果您对此数据库启用SCRAM身份验证,则必须:

  • 创建 MongoDB 用户资源以将 Ops Manager 连接到数据库。

  • Specify the name of the user in the Ops Manager resource definition.

spec.backup.s3OpLogStores.mongodbUserRef.name

类型:字符串

如果您创建了MongoDB 数据库资源来存储S3 oplog元数据并且在此数据库上启用了SCRAM,则为必填项。用于连接到 S3 oplog存储的元数据数据库的MongoDB用户资源的名称。将此用户资源部署在与Ops Manager资源相同的命名空间中,并具有以下所有角色:

重要

指定后,请勿编辑 S3元数据oplog存储用户名名 的名称。

spec.backup.s3OpLogStores.s3SecretRef.name

类型:字符串

如果 spec.backup.s3OpLogStores.irsaEnabled 未设立为 true,则需要使用 S3存储来存储oplog 。

包含 accessKeysecretKey 字段的密钥名称。备份守护进程服务使用这些字段的值作为凭证来访问权限AWS S3 S3 兼容存储桶。要配置 S3 oplog存储,您必须在密钥中指定两个密钥。

如果将 spec.backup.s3OpLogStores.irsaEnabled设立为 true,则无需设立s3SecretRef,因为Amazon Web Services S3凭证将作为 Pod 环境变量安装。

spec.backup.s3OpLogStores.pathStyleAccessEnabled

类型:布尔值

指示存储桶端点 URL 的样式。

说明
例子

true

路径样式 URL

s3.amazonaws.com/<bucket>

false

虚拟主机样式 URL

<bucket>.s3.amazonaws.com

To learn more about annotations and TLS support on AWS, see the Kubernetes documentation.

默认值为true

spec.backup.s3OpLogStores.s3BucketEndpoint

类型:字符串

使用 S3存储来存储oplog是必需的。托管oplog存储的 AWS S3 存储桶或 S3 兼容存储桶的URL 。

注意

If your endpoint doesn't include a region in its URL, specify the s3RegionOverride field.

spec.backup.s3OpLogStores.s3BucketName

类型:字符串

使用 S3存储来存储oplog是必需的。托管oplog存储的 AWS S3 存储桶或 S3 兼容存储桶的名称。

spec.backup.s3OpLogStores.s3RegionOverride

类型:字符串

S3 兼容存储桶所在的区域。仅当 S3 oplog存储的 s3BucketEndpoint 不支持地区作用域时才使用此字段。地区范围是指您的端点在其URL中不包含地区。

请勿将此字段与 AWS S3 存储桶一起使用。有关更多信息,请参阅 S3 块存储配置。

spec.backup.s3Stores.assignmentLabels

类型:字符串数组

存储数据库备份快照的 S3 S3 兼容存储桶的分配标签列表。使用分配标签来标识特定的 S3 存储与特定项目相关联。如果使用Kubernetes Operator设立分配标签,则在Kubernetes配置文件中为分配标签设立的值将覆盖Ops Manager用户界面中定义的值。未使用Kubernetes Operator设立的分配标签将继续使用Ops Manager 用户界面中设立的值。

spec.backup.s3Stores.customCertificate

类型:布尔值

已弃用。请改用spec.backup.s3Stores.customCertificateSecretRefs

指示是否使用应用程序数据库的证书 (appdb-ca) 作为 S3 备份的自定义 TLS 证书的标志。默认值为 False

spec.backup.s3Stores.customCertificateSecretRefs

类型:对象数组

使用Kubernetes密钥的 S3快照存储的自定义证书列表。 base64 编码的 x.509 证书必须已存在于带有密钥的Kubernetes密钥中,并且必须可由Java CertifcateFactory 进行解析。您不能在一个密钥中指定链中的多个证书。如果您在一个密钥中指定链中的多个证书, Kubernetes Operator 仅使用链中的第一个证书。如果您还提供了 spec.backup.s3Stores.customCertificate 设置, Kubernetes Operator 将使用 spec.applicationDatabase.security.tls.ca 作为备份的自定义证书。

列表中的每个条目指定 和 。如果指定多个密钥, Kubernetes Operatorname key将使用所有指定的密钥。

如果您不提供此设置,Kubernetes 操作符将使用 Ops Manager 使用的Java虚拟机(JVM)默认信任存储进行备份。

spec.backup.s3Stores.customCertificateSecretRefs.name

类型:字符串

Required to use custom certificates for your S3 oplog store. Kubernetes secret that contains the custom certificate.

spec.backup.s3Stores.customCertificateSecretRefs.key

类型:字符串

需要为 S3 oplog存储使用自定义证书。表示包含 base64-encoded x.509 证书的密钥中密钥的文件。如果不指定此设置, Kubernetes Operator 无法将自定义证书用于 S3快照存储,而默认为Ops Manager使用的默认信任存储。

spec.backup.s3Stores.irsaEnabled

类型:布尔值

启用在 AWS EKS 中使用服务帐户的 AWS IAM 角色来配置 S3快照存储的标志。默认值为 False。如果您不使用 AWS EKS,则此标志无效。当设立为 False 时,将禁用使用 EKS 中服务帐户的 AWS IAM 角色配置 S3快照存储。要学习;了解更多信息,请参阅 EKS 中服务账户的 IAM 角色。

spec.backup.s3Stores.name

类型:字符串

使用 S3存储来存储oplog是必需的。 S3快照存储的名称。

重要

指定后,请勿编辑 S3快照存储的名称。如果备份使用旧名称,此更改可能会失败。成功变革的后果是不可预测的。

spec.backup.s3Stores.mongodbResourceRef.name

类型:字符串

您创建的用于存储S3快照存储存储元数据的MongoDB资源或 MongoDBMultiCluster资源的名称。您必须将此数据库资源部署在与Ops Manager资源相同的命名空间中。

注意

省略此设置可使用应用程序数据库存储S3快照存储的元数据。

如果省略此设置,则还必须省略 设置。 Kubernetes Operatorspec.backup.s3Stores.mongodbUserRef.name 在内部处理SCRAM 用户身份验证。

如果您对此数据库启用SCRAM身份验证,则必须:

  • 创建 MongoDB 用户资源以将 Ops Manager 连接到数据库。

  • Specify the name of the user in the Ops Manager resource definition.

重要

Once specified, don't edit the name of the S3 snapshot store. This change will likely fail if backups use the old name. The consequences of a successful change are unpredictable.

如果不存在具有此名称的 MongoDB database 资源,则backup资源将进入Pending状态。Kubernetes 操作符每 10 秒重试一次,直到创建具有此名称的 MongoDB database 资源。

注意

当您对此设置中引用的数据库资源进行安全更改时,Kubernetes 操作符开始自动协调 Ops Manager 资源。Kubernetes 操作符根据您的更改更新 Ops Manager 配置中的mongoUrissl标志。

spec.backup.s3Stores.mongodbUserRef.name

类型:字符串

如果您创建了MongoDB 数据库资源来存储|s3|,则为必填项快照元数据和SCRAM在此数据库上启用。用于连接到 S3快照存储的元数据数据库的MongoDB用户资源的名称。将此用户资源部署在与Ops Manager资源相同的命名空间中,并具有以下所有角色:

重要

指定后,请勿编辑 S3元数据快照存储用户名名 的名称。

spec.backup.s3Stores.s3SecretRef.name

类型:字符串

如果使用 S3存储启用备份并且未将 spec.backup.s3Stores.irsaEnabled设立为 true,则为必填项。

包含 accessKeysecretKey 字段的密钥名称。备份守护进程服务使用这些字段的值作为凭证来访问权限AWS S3 S3 兼容存储桶。如果密钥缺少任一密钥,则无法配置 S3快照存储。

如果将 spec.backup.s3Stores.irsaEnabled设立为 true,则无需设立s3SecretRef,因为Amazon Web Services S3凭证将作为 Pod 环境变量安装。

spec.backup.s3Stores.objectLockEnabled

类型:布尔值

指定支持此快照存储的AWS S3 S3 兼容存储桶是否启用了对象锁。将此字段设置为 true 以启用存储的不可变备份。

仅Ops Manager8.0.19 或更高版本支持此字段。有关在Ops Manager中配置不可变备份的信息,请参阅设置不可变备份。

默认值为false

spec.backup.s3Stores.pathStyleAccessEnabled

类型:布尔值

指示存储桶端点 URL 的样式。

说明
例子

true

路径样式 URL

s3.amazonaws.com/<bucket>

false

虚拟主机样式 URL

<bucket>.s3.amazonaws.com

默认值为true

spec.backup.s3Stores.s3BucketEndpoint

类型:字符串

如果使用 S3存储启用备份,则为必填项。托管快照存储的 AWS S3 存储桶或 S3 兼容存储桶的URL 。

注意

If your endpoint doesn't include a region in its URL, specify the s3RegionOverride field.

spec.backup.s3Stores.s3BucketName

类型:字符串

如果使用 S3存储启用备份,则为必填项。托管快照存储存储的 AWS S3 存储桶或 S3 兼容存储桶的名称。

spec.backup.s3Stores.s3RegionOverride

类型:字符串

S3 兼容存储桶所在的区域。仅当 S3 存储的 s3BucketEndpoint 不支持地区范围时才使用此字段。地区范围是指您的端点在其URL中不包含地区。

Don't use this field with AWS S3 buckets. For more information, see S3 Blockstore Configuration.

本节介绍了除了所需的Ops Manager设置之外,在配置Ops Manager 应用程序数据库时必须使用的设置。

spec.applicationDatabase.version

类型:字符串

必需。 Ops Manager 应用程序数据库上安装的MongoDB版本。您必须根据容器注册表中的标签指定兼容的企业MongoDB版本。示例, 8.0.0-ubi8。从Kubernetes Operator1 版本.20 开始,标签不再以-ent 结尾。

重要

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

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

注意

如果您将此值更新为应用程序数据库的更高版本的MongoDB ,则特征兼容性版本将保留为您要升级的MongoDB版本,以便您可以在必要时选择降级。如果您希望特征兼容性版本与新的MongoDB版本匹配,则必须手动设立 下的featureCompatibilityVersion spec.applicationDatabase参数。

本节介绍与Ops Manager Application Database相关的可选设置。 有关特定于多集群MongoDB Ops Manager部署的可选应用程序数据库设置,请参阅多集群设置。

spec.applicationDatabase

类型:集合

MongoDB Ops Manager应用程序数据库资源定义。

副本集资源规范中的以下设置是可选的。

spec.applicationDatabase.additionalMongodConfig

类型:集合

您要用于启动应用程序数据库MongoDB进程的其他配置选项。此设置使用与 mongod 配置文件相同的结构,并为 MongoDB资源接受与 spec.additionalMongodConfig 相同的选项。

spec.applicationDatabase.agent.logLevel

类型:字符串

默认值:INFO

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

  • DEBUG

  • INFO

  • WARN

  • ERROR

  • FATAL

spec.applicationDatabase.agent.<component>.logRotate

类型:对象

组件替换为以下值之一:

  • mongod

  • monitoringAgent

用于轮换进程的MongoDB日志的MongoDB配置对象。要使用agent.<component>.logRotate 设置,必须将systemLog.destination 设立为 ,因为如果将日志写入主机的系统系统日志系统,则无法使用file agent.<component>.logRotate设置。

注意

如果Ops Manager仪表盘生成的文件大小大于emptyDir 卷中的可用存储空间,请考虑使用持久卷覆盖emptyDir 卷,以防止 Pod 崩溃。要学习;了解详情,请参阅spec.statefulSet.spec.template.spec.volumes

spec.applicationDatabase.agent.mongod.logRotate.numTotal

类型:整型

默认值0

Ops Manager保留的日志文件总数。如果不更改默认, Ops Manager会根据其他 agent.<compenet>.logRotate设置进行轮换。

spec.applicationDatabase.agent.mongod.logRotate.numUncompressed

类型:整型

默认值5

保持未压缩状态的日志文件总数的最大数量,包括当前日志文件。

spec.applicationDatabase.agent.mongod.logRotate.percentOfDiskspace

类型:数字

默认值0.02

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

spec.applicationDatabase.agent.<component>.logRotate.sizeThresholdMB

类型:数字

组件替换为以下值之一:

  • mongod

  • monitoringAgent

轮换日志时必需。 Ops Manager轮换单个日志文件之前,该文件的最大大小(以 MB 为单位)。如果达到此sizeThresholdMBlogRotate.timeThresholdHrs 限制中给出的值,Ops Manager会立即轮换日志文件。

spec.applicationDatabase.agent.<component>.logRotate.timeThresholdHrs

类型:整型

组件替换为以下值之一:

  • mongod

  • monitoringAgent

Required if rotating logs. Maximum duration in hours for an individual log file before the next rotation. The time is since the last rotation. Ops Manager rotates the log file immediately if it meets the value given in either timeThresholdHrs or the logRotate.sizeThresholdM limit.

spec.applicationDatabase.agent.mongod.auditlogRotate

类型:对象

用于轮换进程的MongoDBAtlas 审核日志的MongoDB配置对象。

spec.applicationDatabase.agent.mongod.auditlogRotate.numTotal

类型:整型

默认值0

Ops Manager保留的Atlas 审核日志文件总数。如果不更改默认值, Ops Manager将根据其他 agent.mongod.auditlogRotate设置进行轮换。

spec.applicationDatabase.agent.mongod.auditlogRotate.numUncompressed

类型:整型

默认值5

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

spec.applicationDatabase.agent.mongod.auditlogRotate.percentOfDiskspace

类型:数字

默认值0.02

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

spec.applicationDatabase.agent.mongod.auditlogRotate.sizeThresholdMB

类型:数字

轮换Atlas 审核日志时必需。 Ops Manager轮换单个Atlas 审核日志文件之前,该文件的最大大小(以 MB 为单位)。如果达到sizeThresholdMB 或 限制中的值,auditlogRotate.timeThresholdHrs Ops Manager会立即轮换Atlas 审核日志文件。

spec.applicationDatabase.agent.mongod.auditlogRotate.timeThresholdHrs

类型:整型

轮换Atlas 审核日志时必需。下一次轮换之前单个Atlas 审核日志文件的最大持续时间(以小时为单位)。自上次轮换以来的时间。如果达到timeThresholdHrs 或 限制中的值,auditlogRotate.sizeThresholdM Ops Manager会立即轮换Atlas 审核日志文件。

spec.applicationDatabase.agent.startupOptions

类型:对象

用于启动选项的 MongoDB 配置对象。 有关可用字段,请参阅MongoDB Agent设置

spec.applicationDatabase.agent.systemLog

类型:对象

用于配置systemLog选项的 MongoDB 配置对象。

spec.applicationDatabase.agent.systemLog.path

类型:字符串

默认: /var/log/mongodb-mms-automation/mongodb.log

mongodmongos 应将所有诊断日志信息发送到的日志文件的路径,而不是标准输出或主机的系统日志。 MongoDB在指定路径创建日志文件。

Linux 包初始化脚本不希望systemLog.path更改默认值。 如果使用 Linux 包并更改systemLog.path ,则必须使用自己的初始化脚本并禁用内置脚本。

spec.applicationDatabase.agent.systemLog.logAppend

类型:布尔值

默认: false

true mongosmongod mongosmongod实例重新启动时, 或mongod 将新条目附加到现有日志文件的末尾。如果没有此选项, 将备份现有日志并创建新文件。

spec.applicationDatabase.agent.systemLog.destination

类型:字符串

The destination to which MongoDB sends all log output. Specify either file or syslog. If you specify file, you must also specify systemLog.path.

If you don't specify systemLog.path, MongoDB sends all log output to standard output.

警告

系统日志守护进程在记录消息时生成时间戳,而不是在 MongoDB 发布消息时生成时间戳。这种行为可能会导致日志条目的时间戳具有误导性,尤其是当系统负载较重时。 我们建议对生产系统使用file选项,以确保时间戳的准确性。

spec.applicationDatabase.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>

A port for mongod.

publishNotReadyAddress

true

Specifies that DNS records are created even if the Pod isn't ready. Do not set to false for any database Pod.

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

类型:集合

Key-value pairs that let you add cloud provider-specific configuration settings to all clusters in your deployment. To learn more, see annotations and the documentation for your Kubernetes cloud provider.

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

说明

{resourceName}

{namespace}

{podIndex}

StatefulSet 分配且当前外部服务所针对的 Pod 的索引。

{podName}

等于{resourceName}-{podIndex}

{statefulSetName}

The StatefulSet. Equal to {resourceName}.

{externalServiceName}

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

{mongodProcessDomain}

The domain name of the server that is hosting the mongod process. Equal to spec.externalAccess.externalDomain if specified. Otherwise, equal to the domain used for the mongod process FQDN.

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

{mongodProcessFQDN}

The mongod process hostname set in the automation configuration.

进程主机名取决于您的部署配置。 如果已将部署配置为使用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.applicationDatabase.memberConfig

类型:对象数组

MongoDB Ops Manager部署中每个应用程序数据库副本集成员的规范。

重要

如果将spec.topology 设立为MultiCluster ,请使用spec.applicationDatabase.clusterSpecList.memberConfig 而不是 。在多集群Ops Manager部署中, Kubernetes Operatorspec.applicationDatabase.memberConfig 会忽略spec.applicationDatabase.memberConfig 下的所有参数。

memberConfig列表中的元素数量必须等于spec.applicationDatabase.members

memberConfig列表中元素的顺序必须反映副本集成员的顺序。 示例,大量的第一个元素会影响索引0的 Pod,第二个元素会影响索引1的 Pod,依此类推。

例子

请考虑以下应用程序数据库的三成员副本集的示例规范:

spec:
applicationDatabase:
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"
tags:
tag2: "value2"
environment: "prod"
spec.applicationDatabase.memberConfig.priority

类型:字符串

表示应用程序数据库副本集成员成为主节点 (primary node in the replica set)节点的相对可能性的数字。

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

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

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

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

spec.applicationDatabase.memberConfig.tags

类型:地图

副本集标记映射,用于将读取和写入操作定向到应用程序数据库副本集的特定成员。

spec.applicationDatabase.memberConfig.votes

类型:数字

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

spec.applicationDatabase.passwordSecretKeyRef.name

类型:字符串

包含 Ops Manager 数据库用户mongodb-ops-manager密码的密钥名称。 Ops Manager 使用此密码对应用程序数据库进行身份验证。

spec.applicationDatabase.passwordSecretKeyRef.key

类型:字符串

密钥中包含 Ops Manager 数据库用户mongodb-ops-manager密码的字段名称。 Ops Manager 使用此密码对应用程序数据库进行身份验证。

默认值为 password

spec.applicationDatabase.security.certsSecretPrefix

类型:字符串

您创建的Kubernetes密钥的前缀文本,其中包含应用程序数据库的 TLS 密钥和证书。

您必须将密钥命名为<prefix>-<metadata.name>-db-cert

要了解如何将 Ops Manager 实例配置为通过HTTPS运行,请参阅部署 Ops Manager 资源。

spec.applicationDatabase.security.tls.ca

类型:字符串

Name of the Kubernetes ConfigMap containing the CA file for the Application Database.

重要

spec.applicationDatabase.security.tls.ca is required if you use a custom CA to sign your Application Database's TLS certificates.

Kubernetes Operator 要求您在 ConfigMap 中将应用程序数据库的证书命名为ca-pem

spec.backup.s3OpLogStores.customCertificate spec.backup.s3Stores.customCertificate设立为 true 时,本节中指定的 CA 还用于为 S3存储配置自定义 TLS 证书。

CA签署的证书:

  • 应用程序数据库副本集成员用于相互通信,以及

  • MongoDB Ops Manager用于与应用程序数据库副本集进行通信。

警告

You must concatenate your custom CA file and the entire TLS certificate chain from downloads.mongodb.com to prevent Ops Manager from becoming inoperable if the application database restarts.

spec.applicationDatabase.security.tls.enabled

重要

spec.security.applicationDatabase.tls.enabled is deprecated and will be removed in a future release. To enable TLS, provide a value for the spec.security.applicationDatabase.certsSecretPrefix setting.

使用TLS证书对MongoDB Ops Manager和应用程序数据库之间的通信进行加密。

将 Prometheus 与应用程序数据库结合使用时,以下设置应用:

spec.applicationDatabase.prometheus

类型:数组

可选。列表,其中包含用于向 Prometheus 公开指标的参数。

spec.applicationDatabase.prometheus.metricsPath

类型:字符串

默认值"/metrics"

可选。人类可读的字符串,指示指标终结点的路径。如果不指定此设置,则使用默认设置。

spec.applicationDatabase.prometheus.passwordSecretRef

类型:对象

Conditional Object that contains the details of the secret for basic HTTP authentication. If you want to use Prometheus with your Application Database, you must specify this setting.

spec.applicationDatabase.prometheus.passwordSecretRef.key

类型:字符串

默认值"password"

Optional. Human-readable string that identifies the key in the secret that stores the password for basic HTTP authentication. If you don't specify this setting, the default applies.

spec.applicationDatabase.prometheus.passwordSecretRef.name

类型:字符串

可选的

Human-readable label that identifies the secret that contains the password for basic HTTP authentication. If you want to use Prometheus with your Application Database, you must specify this setting.

spec.applicationDatabase.prometheus.port

类型:整型

默认值:9216

可选。数字,用于标识指标终结点将绑定的端口。如果不指定此设置,则使用默认设置。

spec.applicationDatabase.prometheus.tlseSecretKeyRef

类型:对象

Optional. Object that contains the details of the secret for TLS authentication.

spec.applicationDatabase.prometheus.tlseSecretKeyRef.key

类型:字符串

默认值"password"

可选。人类可读的字符串,用于标识存储 TLS身份验证密码的密钥中的密钥。如果不指定此设置,则应用默认。

spec.applicationDatabase.prometheus.tlseSecretKeyRef.name

类型:字符串

有条件。人类可读标签,用于标识包含 TLS身份验证密码的密钥。如果要将 Prometheus 与应用程序数据库一起使用并且想要使用 TLS 身份验证,则必须指定此设置。

spec.applicationDatabase.prometheus.username

类型:字符串

有条件。 人类可读标签,用于标识用户以进行基本 HTTP 身份验证。 如果要将 Prometheus 与应用程序数据库一起使用,则必须指定此设置。

除了所需的 MongoDB Ops Manager 设置之外,本部分还介绍了多集群MongoDB Ops Manager部署必须使用的MongoDB Ops Manager 。

spec.clusterSpecList.members

类型:整型

有条件。多 Kubernetes集群MongoDB 部署中Ops Manager集群中Ops Manager成员的数量。将spec.topology 设立为MultiCluster 时,必须指定此参数的值。对于单集群部署,请省略此参数。如果将此参数设立为零,则会从Ops Manager实例的多 Kubernetes集群的成员集群列表中删除Ops Manager成员集群。

spec.topology

类型:字符串

KubernetesMongoDB Ops Manager资源的 部署类型。

  • 值为SingleClusterMultiCluster 。 如果省略,则默认值为SingleCluster

  • 如果指定MultiCluster

MongoDB Ops Manager资源还可以使用以下特定于多集群MongoDB Ops Manager部署的设置:

spec.clusterSpecList

类型:集合

有条件。 Kubernetes打算在其中部署Kubernetes MongoDB Ops Manager或备份守护程序实例的多 集群中所选 成员集群的详细信息。另请参阅资源规范的示例。

spec.clusterSpecList.clusterName

类型:字符串

可选。多 Kubernetes集群MongoDB 部署中成员Kubernetes集群的名称,在该部署中, Kubernetes Operator 的MongoDB控制器为MongoDB Ops Manager或备份守护程序进程调度StatefulSet

spec.clusterSpecList.clusterDomain

类型:字符串

Optional. An override for spec.clusterDomain for the specific Ops Manager member cluster. If you omit this value, defaults to the value set in spec.clusterDomain. Kubernetes assigns each Pod a FQDN. The Kubernetes Operator calculates the FQDN for each Pod using a provided clusterDomain value. Kubernetes doesn't provide an API to query these hostnames.

spec.clusterSpecList.configuration

类型:集合

可选。 Ops Manager配置属性,覆盖您在spec.configuration 中为特定集群设立的属性。有关属性名称和描述,请参阅Ops Manager配置设置。每个属性采用string 类型的值。示例,通过设置这些属性,您可以更改必须传递给特定成员集群中Ops Manager和备份守护程序的环境变量。

If you omit specifying values, defaults to the values set in spec.configuration.

spec.clusterSpecList.jvmParameters

类型:字符串数组

可选。 传递给该成员集群的 和备份守护程序实例的 JVM 参数。MongoDB Ops Manager

spec.clusterSpecList.externalConnectivity

类型:集合

可选。为特定集群启用与Ops Manager 的外部连接的配置对象。这是对特定集群的spec.externalConnectivity 的覆盖。

指定此参数的值以更改MongoDB Ops Manager应用程序在不同集群中向外部公开的方式。 示例,如果您在不同云提供商的 节点上部署MongoDB Ops Manager Kubernetes,则可能需要为此参数指定特定于云提供商的值。

如果设置此参数:

  • The Kubernetes Operator doesn't use spec.externalConnectivity values for this member Ops Manager cluster.

  • Kubernetes Operator 创建一个名为 <om-name>-svc-ext的Kubernetes服务,该服务允许来自Kubernetes集群外部的流量到达此成员集群上的Ops Manager应用程序。

如果省略此参数, Kubernetes Operator 会为此成员集群使用spec.externalConnectivity 中的值。

spec.clusterSpecList.statefulSet.spec

类型:集合

可选。 Kubernetes Operator 的MongoDB控制器为多 Kubernetes集群Ops Manager部署中的特定成员集群创建的 StatefulSetspec.statefulSet.spec 规范。此参数将覆盖 。如果省略, Kubernetes Operator 将使用 中的值。示例,您可以使用此参数为多 Kubernetes集群MongoDB 部署中的每个Opsspec.statefulSet.spec Manager集群指定不同的存储值。

To review which fields you can add to spec.clusterSpecList.statefulSet.spec, see StatefulSetSpec v1 apps in the Kubernetes documentation.

spec.clusterSpecList[*].backup

可选。 覆盖在spec.backup下为该特定成员集群指定的值的备份设置。

  • 只有当spec.backup.enabled 设立为true 时,才能设立这些值。

  • 如果您省略为此参数设置任何值,则它们默认为spec.backup下的设置中指定的值。

  • 此覆盖并不支持所有备份设置。 您无法覆盖以下备份设置,因为它们会全局应用于所有成员集群(如果在spec.backup下指定):

    • externalServiceEnabled

    • headDB

    • opLogStores

    • blockStores

    • s3Stores

    • fileSystemStores

    • queryableBackupSecretRef

    • encryption

spec.clusterSpecList[*].backup.members

类型:整型

可选。覆盖spec.backup.members 。要在此集群中部署的备份守护程序实例的数量。如果省略此值或提供0 值,则Kubernetes Operator 不会在特定成员集群中部署备份守护程序实例。

spec.clusterSpecList[*].backup.assignmentLabels

类型:字符串数组

Optional. Override for spec.backup.assignmentLabels. If specified, the Kubernetes Operator uses the values you specify in this override for all Backup Daemon instances in a particular member cluster. If you omit values for this parameter, the values default to those specified in spec.backup.assignmentLabels for all Backup Daemon instances in a member cluster.

spec.clusterSpecList[*].backup.jvmParameters

类型:字符串数组

Optional. Override for spec.backup.jvmParameters. Allows you to customize the JVM value for Backup Daemon instances in a particular member cluster.

spec.clusterSpecList[*].backup.statefulSet

类型:字符串

可选。覆盖spec.backup.statefulSet.spec 。允许自定义特定成员集群中备份守护程序的值。要查看哪些字段可以添加到 ,请参阅Kubernetes文档中的spec.clusterSpecList[*].backup.statefulSet StatefulSetSpec v1 应用。

本部分介绍必须用于应用程序数据库的多集群MongoDB Ops Manager部署的特定设置。

spec.applicationDatabase.clusterSpecList

类型:集合

多 Kubernetes集群MongoDB 部署中选定的Kubernetes成员集群的详细信息,这些集群提供服务托管应用程序数据库的节点。

spec.applicationDatabase.clusterSpecList.clusterName

类型:字符串

多 Kubernetes集群MongoDB 部署中成员Kubernetes集群的名称,其中MongoDB Controllers for Kubernetes Operator 为应用程序数据库调度 StatefulSet。

重要

您无法通过修改 CRD 中的clusterSpecListtopology 设置将单个集群Ops Manager实例转换为多 Kubernetes集群MongoDB 部署实例。

spec.applicationDatabase.clusterSpecList.members

类型:数字

给定成员集群中的 StatefulSet 节点数。 成员集群是多 Kubernetes 集群 MongoDB 部署中托管应用程序数据库的成员集群之一。

spec.applicationDatabase.topology

类型:字符串

应用程序数据库的 Kubernetes 部署类型。

  • 值为SingleClusterMultiCluster 。 如果省略,则默认值为SingleCluster

  • 如果指定MultiCluster ,则必须至少指定一名成员

  • 要使用clusterSpecListclusterNamemembers 参数部署应用程序数据库的集群。

  • 如果您指定MultiCluster , Kubernetes Operator 将忽略您为spec.applicationDatabase.members字段设立的值。

要了解更多信息,请参阅多集群资源规范示例。

本部分介绍可用于应用程序数据库的多集群MongoDB Ops Manager部署的特定设置。

spec.applicationDatabase.clusterSpecList.externalAccess

类型:字符串

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

By default, each replica set member uses the Kubernetes Pod's FQDN (*.svc.cluster.local) as the default hostname. However, if you add an external domain to this setting, the replica set uses a hostname that is a subdomain of the specified domain instead. This hostname uses the following format:

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

例如:

multi-replica-set-0-1.cluster-0.example.com

重要

仅当在没有服务网格的情况下部署应用程序数据库时,才使用此设置。请参阅不使用服务网格的多集群MongoDB Ops Manager。

spec.applicationDatabase.clusterSpecList.memberConfig

类型:字符串数组

多集群MongoDB Ops Manager部署中每个应用程序数据库副本集节点的规范。

重要

If you set spec.topology to SingleCluster, use spec.applicationDatabase.memberConfig instead of spec.applicationDatabase.clusterSpecList.memberConfig.

The number of elements in the memberConfig list must equal spec.applicationDatabase.clusterSpecList.members.

memberConfig列表中元素的顺序必须反映副本集成员的顺序。 示例,大量的第一个元素会影响索引0的 Pod,第二个元素会影响索引1的 Pod,依此类推。

例子

请考虑以下应用程序数据库的三成员副本集的示例规范:

spec:
replicas: 3
version: 8.0.0
backup:
enabled: true
storage:
resources:
requests:
storage: 10Gi
storageClassName: standard
applicationDatabase:
clusterSpecList:
- name: appdb
members: 3
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"
tags:
tag2: "value2"
environment: "prod"
spec.applicationDatabase.clusterSpecList.memberConfig.priority

类型:字符串

表示应用程序数据库副本集成员成为主节点 (primary node in the replica set)节点的相对可能性的数字。

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

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

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

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

spec.applicationDatabase.clusterSpecList.memberConfig.tags

类型:地图

副本集标记映射,用于将读取和写入操作定向到应用程序数据库副本集的特定成员。

spec.applicationDatabase.clusterSpecList.memberConfig.votes

类型:数字

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