Join us Sept 17 at .local NYC! Use code WEB50 to save 50% on tickets. Learn more >
MongoDB Event
Docs 菜单
Docs 主页
/
适用于Kubernetes Operator 的MongoDB控制器
/

Ops Manager 资源规范

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

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

每个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: "8.0.0-ubi8"
58 security:
59 certsSecretPrefix: appdb
60 tls:
61 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

类型:字符串

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

注意

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

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

spec.replicas

类型:整型

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

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

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

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.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日志。

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才能直接连接到MongoDB Ops Manager实例并配置MongoDB 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为每个 Pod 分配一个 FQDN 。 Kubernetes Operator 使用提供的 计算每个 Pod FQDN。clusterDomain Kubernetes不提供用于查询这些主机名的API

spec.clusterName

重要

spec.clusterName 已弃用

类型:字符串

Kubernetes为每个 Pod 分配一个 FQDN 。 Kubernetes Operator 使用提供的 计算每个 Pod FQDN。clusterName Kubernetes不提供用于查询这些主机名的API

spec.configuration

类型:集合

MongoDB Ops Manager配置属性。 有关属性名称和说明,请参阅MongoDB 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

类型:字符串数组

可选。 传递给容器中 Ops Manager 应用程序的JVM参数。 任何给定的参数都会替换 Ops Manager 应用程序的默认JVM参数。

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

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

重要

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

Kubernetes 操作符根据容器内存计算 Ops Manager 应用程序的Java虚拟机(JVM)内存堆值。更改-Xms-Xmx值可能会导致 Ops Manager 出现问题。

spec.security.certsSecretPrefix

类型:字符串

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

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

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

spec.security.tls.ca

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

重要

spec.security.tls.ca如果您使用自定义 CA 签署MongoDB Ops Manager TLS 证书,则需要 。

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

CA签署的证书:

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

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

警告

您必须连接自定义CA文件和来自downloads.mongodb.com的整个TLS证书链,以防止应用程序数据库重新启动时 Ops Manager 无法运行。

spec.security.tls.enabled

重要

spec.security.tls.enabled 已弃用,并将在未来发布中删除。要启用TLS,请为spec.security.certsSecretPrefix设置提供一个值。

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

spec.statefulSet.spec

类型:集合

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

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

spec.statefulSet.spec.template

类型:集合

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

注意

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

spec.statefulSet.spec.template.metadata

类型:集合

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

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

spec.statefulSet.spec.template.spec

类型:集合

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

要查看可添加到spec.statefulSet.spec.template.spec 的字段的完整列表,请参阅Kubernetes文档。

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

statefulSet:
spec:
template:
spec:
containers:
- name: mongodb-ops-manager
resources:
requests:
cpu: "0.70"
memory: "6Gi"
limits:
cpu: "1"
memory: "7000M"
spec.statefulSet.spec.template.spec.containers

类型:集合

属于MongoDB Controllers for Kubernetes Operator 为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节点上托管Ops Manager必须提供的最小 CPU容量。

请求的值必须小于或等于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

类型:字符串

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

例子

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

注意

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

请求的值必须小于或等于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 中导致不可预知的结果。

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

spec.externalConnectivity

类型:集合

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

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

spec.externalConnectivity.type

类型:字符串

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

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

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

spec.externalConnectivity.port

类型:整型

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

  • 如果spec.externalConnectivity.typeNodePort

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

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

      注意

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

  • 如果spec.externalConnectivity.typeLoadBalancer

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

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

spec.externalConnectivity.loadBalancerIP

类型:字符串

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

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

spec.externalConnectivity.externalTrafficPolicy

类型:字符串

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

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

注意

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

spec.externalConnectivity.annotations

类型:集合

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

要学习;了解有关 AWS 上的注释和 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 备份加密

注意

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

spec.backup.encryption.kmip.server

类型:对象

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

spec.backup.encryption.kmip.server.ca

类型:字符串

人类可读标签,用于标识包含用于 KMIP 身份验证的 CA 证书 (ca.pem ) 条目的 ConfigMap。

spec.backup.encryption.kmip.server.url

类型:字符串

使用 hostname.port格式(例如192.168.1.3:5696my-kmip-server.mycorp.com:5696 )的 KMIP 服务器的 URL 。

spec.backup.headDB

类型:集合

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

标量
数据类型
说明

labelSelector

字符串

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

storage

字符串

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

默认值为30Gi

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

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

storageClass

字符串

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

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

spec.backup.jvmParameters

类型:字符串数组

可选。 传递给container中的Ops Manager备份服务的Java虚拟机(JVM)参数。

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

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

警告

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

Kubernetes 操作符 根据 container 的内存计算备份服务的 Java虚拟机(JVM) 内存堆值。更改-Xms-Xmx值可能会导致 Ops Manager 出现问题。

spec.backup.members

类型:整型

可选。 要在 Kubernetes 中部署的备份守护程序服务的数量。 如果未指定,则默认为1 。 为了确保备份服务的高可用性,请在 中部署 多个备份守护程序 MongoDB 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在 资源定义中指定用户的MongoDB Ops Manager 。

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

注意

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

重要

如果未显式设立mongodbResourceRef字段,MongoDB Ops Manager默认使用应用程序数据库,但其可扩展性有限,可能不适合较大的环境。

不建议在生产或大规模部署中使用此默认配置,因为它可能导致性能严重下降、应用程序数据库不稳定以及备份失败。在生产环境中,请始终使用 mongodbResourceRef 为每个备份和oplog存储的元数据配置单独的MongoDB实例。

部署后,您无法更改所选配置,也无法将备份迁移到其他位置。唯一的替代方案是完全停止备份并重新启动,这会导致以前的所有备份都不可用。

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在 资源定义中指定用户的MongoDB Ops Manager 。

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

注意

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

重要

如果未显式设立mongodbResourceRef字段,MongoDB Ops Manager默认使用应用程序数据库,但其可扩展性有限,可能不适合较大的环境。

不建议在生产或大规模部署中使用此默认配置,因为它可能导致性能严重下降、应用程序数据库不稳定以及备份失败。在生产环境中,请始终使用 mongodbResourceRef 为每个备份和oplog存储的元数据配置单独的MongoDB实例。

部署后,您无法更改所选配置,也无法将备份迁移到其他位置。唯一的替代方案是完全停止备份并重新启动,这会导致以前的所有备份都不可用。

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

类型:集合

MongoDB Controllers for Kubernetes Operator 为备份守护进程服务创建的 StatefulSet 中Kubernetes Pod 的模板。

注意

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 的规范。

要查看可添加到spec.backup.statefulSet.spec.template.spec 的字段的完整列表,请参阅Kubernetes文档。

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

statefulSet:
spec:
template:
spec:
containers:
- name: mongodb-backup-daemon
resources:
requests:
cpu: "0.50"
memory: "4500M"
limits:
cpu: "1"
memory: "6000M"
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容量。

请求的值必须小于或等于spec.backup.statefulSet.spec.template.spec.containers.resources.limits.cpu

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

类型:字符串

为托管备份守护进程服务而创建的节点的最大 CPU容量。如果省略,则该值设立为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的值可能会导致错误。

请求的值必须小于或等于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 的连接。

要配置自定义 CA 密钥,请使用您为应用程序数据库配置TLS的 ConfigMap,如部署MongoDB Ops Manager资源TLS-Encrypted Connection (HTTPS)标签页中所述。 将spec.applicationDatabase.security.tls.ca设置为此 ConfigMap。

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

  • 要将TLS用于两者,请从 ConfigMap 引用的同一ca-pem获取用于这两个目的的证书。

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

spec.backup.s3OpLogStores.assignmentLabels

类型:字符串数组

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

spec.backup.s3OpLogStores.customCertificate

类型:布尔值

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

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

spec.backup.s3OpLogStores.customCertificateSecretRefs

类型:对象数组

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

列表中的每个条目指定namekey 。 如果您指定多个密钥,Kubernetes Operator 将使用指定密钥中的所有证书。

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

spec.backup.s3OpLogStores.customCertificateSecretRefs.name

类型:字符串

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

spec.configuration.mms.mongoDbUsage.defaultUsageType

类型:字符串

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

spec.backup.s3OpLogStores.customCertificateSecretRefs.key

类型:字符串

需要为 S3 oplog存储使用自定义证书。表示密钥中密钥的文件,其中包含基本 64编码的 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

类型:字符串

使用 S 3存储来存储 oplog 时需要。 S 3 oplog 存储的名称。

spec.backup.s3OpLogStores.mongodbResourceRef.name

类型:字符串

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

注意

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

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

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

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

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

spec.backup.s3OpLogStores.mongodbUserRef.name

类型:字符串

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

重要

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

spec.backup.s3OpLogStores.s3SecretRef.name

类型:字符串

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

包含accessKeysecretKey字段的密钥名称。 备份守护程序服务使用这些字段的值作为凭证来访问Amazon Web Services S3S3兼容存储桶。 要配置S 3 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

要学习;了解有关 AWS 上的注释和 TLS支持的更多信息,请参阅Kubernetes文档。

默认值为true

spec.backup.s3OpLogStores.s3BucketEndpoint

类型:字符串

使用 S 3存储来存储 oplog 时需要。 托管 存储的URL Amazon Web ServicesS3 存储桶或 S3 兼容存储桶的 。oplog

注意

如果您的端点在其URL中未包含地区,请指定s3RegionOverride字段。

spec.backup.s3OpLogStores.s3BucketName

类型:字符串

使用 S 3存储来存储 oplog 时需要。 托管 存储的Amazon Web Services S3 存储桶或 S3 兼容存储桶的名称。oplog

spec.backup.s3OpLogStores.s3RegionOverride

类型:字符串

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

请勿将此字段与Amazon Web Services S3存储桶一起使用。 有关详细信息,请参阅S 3块存储配置。

spec.backup.s3Stores.assignmentLabels

类型:字符串数组

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

spec.backup.s3Stores.customCertificate

类型:布尔值

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

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

spec.backup.s3Stores.customCertificateSecretRefs

类型:对象数组

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

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

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

spec.backup.s3Stores.customCertificateSecretRefs.name

类型:字符串

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

spec.backup.s3Stores.customCertificateSecretRefs.key

类型:字符串

需要为 S3 oplog存储使用自定义证书。表示密钥中密钥的文件,其中包含基本 64编码的 x.509 证书。如果不指定此设置, Kubernetes Operator 无法将自定义证书用于 S3 快照存储,而默认为Ops Manager使用的默认Java虚拟机(JVM) {Java虚拟机)信任存储。

spec.backup.s3Stores.irsaEnabled

类型:布尔值

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

spec.backup.s3Stores.name

类型:字符串

使用 S 3存储来存储 oplog 时需要。 S 3快照存储的名称。

重要

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

spec.backup.s3Stores.mongodbResourceRef.name

类型:字符串

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

注意

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

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

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

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

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

重要

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

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

注意

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

重要

如果未显式设立mongodbResourceRef字段,MongoDB Ops Manager默认使用应用程序数据库,但其可扩展性有限,可能不适合较大的环境。

不建议在生产或大规模部署中使用此默认配置,因为它可能导致性能严重下降、应用程序数据库不稳定以及备份失败。在生产环境中,请始终使用 mongodbResourceRef 为每个备份和oplog存储的元数据配置单独的MongoDB实例。

部署后,您无法更改所选配置,也无法将备份迁移到其他位置。唯一的替代方案是完全停止备份并重新启动,这会导致以前的所有备份都不可用。

spec.backup.s3Stores.mongodbUserRef.name

类型:字符串

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

重要

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

spec.backup.s3Stores.s3SecretRef.name

类型:字符串

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

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

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

spec.backup.s3Stores.pathStyleAccessEnabled

类型:布尔值

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

说明
例子

true

路径样式 URL

s3.amazonaws.com/<bucket>

false

虚拟主机样式 URL

<bucket>.s3.amazonaws.com

默认值为true

spec.backup.s3Stores.s3BucketEndpoint

类型:字符串

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

注意

如果您的端点在其URL中未包含地区,请指定s3RegionOverride字段。

spec.backup.s3Stores.s3BucketName

类型:字符串

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

spec.backup.s3Stores.s3RegionOverride

类型:字符串

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

请勿将此字段与Amazon Web Services S3存储桶一起使用。 有关详细信息,请参阅S 3块存储配置。

本节介绍除了所需的MongoDB Ops Manager设置之外,为配置Ops Manager Application Database而必须使用的设置。

spec.applicationDatabase.version

类型:字符串

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

重要

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

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

注意

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

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

spec.applicationDatabase

类型:集合

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

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

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设置。

spec.applicationDatabase.agent.mongod.logRotate.numTotal

类型:整型

默认值0

MongoDB Ops Manager保留的日志文件总数。 如果不更改默认值, MongoDB 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

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

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

类型:整型

组件替换为以下值之一:

  • mongod

  • monitoringAgent

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

spec.applicationDatabase.agent.mongod.auditlogRotate

类型:对象

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

spec.applicationDatabase.agent.mongod.auditlogRotate.numTotal

类型:整型

默认值0

MongoDB Ops Manager保留的Atlas 审核日志文件总数。 如果您不更改默认值, MongoDB 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 审核日志时必需。 MongoDB Ops Manager轮换单个Atlas 审核日志文件之前的最大大小(以 MB 为单位)。 MongoDB Ops Manager如果达到sizeThresholdMBauditlogRotate.timeThresholdHrs 限制中的值, 会立即轮换Atlas 审核日志文件。

spec.applicationDatabase.agent.mongod.auditlogRotate.timeThresholdHrs

类型:整型

轮换Atlas 审核日志时必需。 下一次轮换之前单个Atlas 审核日志文件的最大持续时间(以小时为单位)。 自上次轮换以来的时间。 MongoDB Ops Manager如果达到timeThresholdHrsauditlogRotate.sizeThresholdM 限制中的值, 会立即轮换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应将所有诊断日志信息发送到的日志文件的路径,而不是标准输出或主机的syslog 。 MongoDB 在指定路径创建日志文件。

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

spec.applicationDatabase.agent.systemLog.logAppend

类型:布尔值

默认: false

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

spec.applicationDatabase.agent.systemLog.destination

类型:字符串

MongoDB 发送所有日志输出的目标。指定 filesyslog。如果指定 file,则必须同时指定 systemLog.path

如果不指定systemLog.path ,MongoDB 会将所有日志输出发送到标准输出。

警告

系统日志守护进程在记录消息时生成时间戳,而不是在 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>

mongod的端口。

publishNotReadyAddress

true

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

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

类型:对象数组

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

重要

如果设立spec.topology设置为MultiCluster ,请使用spec.applicationDatabase.clusterSpecList.memberConfig而不是spec.applicationDatabase.memberConfig 。 在多集群MongoDB Ops Manager部署中, Kubernetes Operator 会忽略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

类型:字符串

包含应用程序数据库的 CA文件的Kubernetes ConfigMap 的名称。

重要

spec.applicationDatabase.security.tls.ca如果使用自定义 CA 签署应用程序数据库的 TLS 证书,则需要 。

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

spec.backup.s3OpLogStores.customCertificatespec.backup.s3Stores.customCertificate 设置为 时,本部分指定的 CA 还用于为 S3 存储配置自定义 TLStrue 证书。

CA签署的证书:

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

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

警告

您必须连接自定义CA文件和来自downloads.mongodb.com的整个TLS证书链,以防止应用程序数据库重新启动时 Ops Manager 无法运行。

spec.applicationDatabase.security.tls.enabled

重要

spec.security.applicationDatabase.tls.enabled 已弃用,并将在未来版本中删除。 要启用TLS ,请为spec.security.applicationDatabase.certsSecretPrefix设置提供一个值。

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

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

spec.applicationDatabase.prometheus

类型:数组

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

spec.applicationDatabase.prometheus.metricsPath

类型:字符串

默认值"/metrics"

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

spec.applicationDatabase.prometheus.passwordSecretRef

类型:对象

包含基本HTTP身份验证密钥详细信息的条件对象。如果要将 Prometheus 与应用程序数据库一起使用,则必须指定此设置。

spec.applicationDatabase.prometheus.passwordSecretRef.key

类型:字符串

默认值"password"

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

spec.applicationDatabase.prometheus.passwordSecretRef.name

类型:字符串

可选的

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

spec.applicationDatabase.prometheus.port

类型:整型

默认值:9216

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

spec.applicationDatabase.prometheus.tlseSecretKeyRef

类型:对象

可选。包含 TLS身份验证密钥详细信息的对象。

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

类型:整型

有条件。 MongoDB Ops ManagerMongoDB Ops Manager多 Kubernetes集群MongoDB 部署中 MongoDB 集群中 MongoDB Ops Manager 节点的数量。设立spec.topology设置为MultiCluster时,必须指定此参数的值。 对于单集群部署,请省略此参数。 如果将此参数设立为零,则会从MongoDB Ops Manager实例的多 Kubernetes集群的成员集群列表中删除此MongoDB 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控制器为Ops Manager或备份守护程序调度 StatefulSet。

spec.clusterSpecList.clusterDomain

类型:字符串

spec.clusterDomain可选。覆盖特定Ops Manager成员集群的 。如果省略此值,则默认为spec.clusterDomain 中设立的值。 Kubernetes为每个 Pod 分配一个 FQDN 。 Kubernetes Operator 使用提供的 值计算每个 Pod 的 FQDN。clusterDomain Kubernetes不提供用于查询这些主机名的API

spec.clusterSpecList.configuration

类型:集合

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

如果省略指定值,则默认为spec.configuration中设置的值。

spec.clusterSpecList.jvmParameters

类型:字符串数组

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

spec.clusterSpecList.externalConnectivity

类型:集合

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

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

如果设置此参数:

  • KubernetesOperatorspec.externalConnectivity 不会为此成员MongoDB Ops Manager 集群使用 值。

  • 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 将使用spec.statefulSet.spec 中的值。示例,您可以使用此参数为多 Kubernetes集群MongoDB 部署中的每个Ops Manager集群指定不同的存储值。

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

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

类型:字符串数组

可选。 覆盖spec.backup.assignmentLabels 。 如果指定,Kubernetes Operator 会将您在此覆盖中指定的值用于特定成员集群中的所有备份守护程序实例。 如果省略此参数的值,则这些值默认为spec.backup.assignmentLabels中为成员集群中的所有备份守护程序实例指定的值。

spec.clusterSpecList[*].backup.jvmParameters

类型:字符串数组

可选。 覆盖spec.backup.jvmParameters 。 允许您为特定成员集群中的备份守护程序实例自定义JVM值。

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设置将单集群MongoDB 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

类型:字符串

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

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

<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部署中每个应用程序数据库副本集节点的规范。

重要

如果将 spec.topology设立为 SingleCluster,请使用 spec.applicationDatabase.memberConfig 而不是 spec.applicationDatabase.clusterSpecList.memberConfig

memberConfig列表中的元素数量必须等于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可将该成员排除在选举。

后退

参考

在此页面上