Ops Manager 资源规范
在此页面上
MongoDB Enterprise Kubernetes Operator 根据您写入的规范文件创建容器化Ops Manager部署。
创建或更新MongoDB Ops Manager资源规范后,您可以指示MongoDB Enterprise Kubernetes Operator应用规范应用于您的Kubernetes环境。 KubernetesOperator 创建 所需的服务和自定义Kubernetes 资源,然后在MongoDB Ops Manager MongoDB Ops Manager环境中的容器中部署Kubernetes 及其后端应用程序数据库。
每个MongoDB Ops Manager 资源都使用一个 对象 YAML 中的规范来定义部署的特征和设置。
示例
以下示例显示了 Ops Manager 部署的资源规范:
1 apiVersion: mongodb.com/v1 2 kind: MongoDBOpsManager 3 metadata: 4 name: om 5 spec: 6 topology: SingleCluster # optional, SingleCluster by default 7 opsManagerURL: https://link.to.configured.load-balancer.example.com # optional OM URL for the operator 8 replicas: 1 9 version: "6.0.18" 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: "6.0.5-ubi8" 58 security: 59 tls: 60 ca: issuer-ca 61 secretRef: 62 prefix: appdb
1 apiVersion: mongodb.com/v1 2 kind: MongoDBOpsManager 3 metadata: 4 name: om 5 spec: 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 37 replicas: 1 38 version: "6.0.18" 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: "6.0.5-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 tls: 95 ca: issuer-ca 96 secretRef: 97 prefix: appdb
MongoDB Ops Manager所需设置
本部分介绍必须用于所有 Ops Manager 资源的设置。
spec.adminCredentials
类型:字符串
必需。 密钥 的名称Kubernetes 您为 管理员用户创建的。MongoDB Ops Manager部署MongoDB Ops Manager资源时, Kubernetes Operator 会使用这些档案创建用户。
注意
要避免在单集群Kubernetes部署中存储密钥,您可以迁移所有 密钥 到 密钥存储工具 。多个Kubernetes集群上的部署不支持将密钥存储在密钥存储工具中,例如 HashiCorp Vault 。
管理员用户被授予“全局所有者”角色。
spec.replicas
类型:整型
有条件。 要并行运行的MongoDB Ops Manager实例数量。 如果您在
spec.topology
中指定SingleCluster
,则此参数为必填项。 接受的最小值为1
。如果您在
spec.topology
中指定MultiCluster
,则忽略此参数。
MongoDB Ops Manager可选设置
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资源的 ,例如:Kubernetes
https://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
类型:字符串
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_SERVER
、TEST_SERVER
、DEV_SERVER
和RAM_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 您创建的包含 的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
如果您使用自定义 CA 签署MongoDB Ops Manager TLS 证书,则需要 。Kubernetes 操作符要求您在 ConfigMap 中为 Ops Manager 资源
mms-ca.crt
的证书命名。此CA签署的证书:
客户端用于连接到 Ops Manager 应用程序,以及
应用程序数据库 Pod 中的代理 用于与MongoDB 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
类型:集合
StatefulSet 规范MongoDBEnterprise Kubernetes Operator 为MongoDB Ops Manager 创建的 .
要查看可以添加到
spec.statefulSet.spec
的字段,请参阅 StatefulSetSpec v1 apps 在 Kubernetes 文档中。
spec.statefulSet.spec.template
类型:集合
模板 Kubernetes对于 StatefulSet MongoDBEnterprise Kubernetes OperatorMongoDB Ops Manager中的 为 创建的 .
注意
Kubernetes Operator 不会验证您在
spec.statefulSet.spec.template
中提供的字段。
spec.statefulSet.spec.template.metadata
类型:集合
StatefulSet 中 的元数据 为KubernetesMongoDBEnterprise Kubernetes Operator 创建的MongoDB Ops Manager .
要查看可以添加到
spec.statefulSet.spec.template.metadata
的字段,请参阅 Kubernetes 文档。
spec.statefulSet.spec.template.spec
类型:集合
StatefulSet 中 的规范 为KubernetesMongoDBEnterprise Kubernetes Operator 创建的MongoDB Ops Manager .
要查看可添加到
spec.statefulSet.spec.template.spec
的字段的完整列表,请参阅 Kubernetes 文档。以下示例
spec.statefulSet.spec.template.spec
定义了 MongoDB Enterprise Kubernetes Operator 部署的一个 Ops Manager container 的最小和最大 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
类型:集合
StatefulSet 中属于 的容器列表Kubernetes 为MongoDBEnterprise Kubernetes Operator 创建的MongoDB Ops Manager .
要修改 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
类型:字符串
节点 上必须可用的最小 CPU 容量 托管Kubernetes 。MongoDB Ops Manager
请求的值必须小于或等于
spec.statefulSet.spec.template.spec.containers.resources.limits.cpu
。
spec.statefulSet.spec.template.spec.containers.resources.limits.cpu
类型:字符串
节点 的最大 CPU 容量MongoDB Ops Manager 正在创建用于托管 。如果省略,则将此值设置为
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
。请求的值必须小于或等于
spec.statefulSet.spec.template.spec.containers.resources.limits.memory
。
spec.statefulSet.spec.template.spec.containers.resources.limits.memory
类型:字符串
节点 的最大内存容量MongoDB 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
类型:集合
启用与MongoDB Ops Manager的外部连接的配置对象。 如果提供,Kubernetes Operator 将创建Kubernetes 服务 允许源自Kubernetes 集群外部的流量到达MongoDB Ops Manager 应用程序。
如果未提供,Kubernetes Operator 不会创建 Kubernetes 服务。 您必须手动创建一个解决方案,或使用第三方解决方案,使您能够将外部流量路由到 Kubernetes 集群中的 Ops Manager 应用程序。
spec.externalConnectivity.type
类型:字符串
Kubernetes服务 ServiceType MongoDB Ops ManagerKubernetes在 之外公开 。
如果存在
spec.externalConnectivity.type
,则为 必填项 。接受的值为:
LoadBalancer
和NodePort
。 如果您的云提供商支持,则建议使用LoadBalancer
。 使用NodePort
进行本地部署。
spec.externalConnectivity.port
类型:整型
指示 Kubernetes 服务公开 Ops Manager 应用程序的端口应用于外部流量的值。
如果
spec.externalConnectivity.type
为NodePort
:Kubernetes 服务通过此端口向外部流量公开 Ops Manager 应用程序。
如果您不提供
spec.externalConnectivity.port
值, Kubernetes服务将从以下默认范围中随机选择的可用端口将流量路由到MongoDB Ops Manager应用程序:30000
-32767
。注意
您必须将网络的防火墙配置为允许通过此端口的流量。
如果
spec.externalConnectivity.type
为LoadBalancer
:云提供商创建的负载均衡器资源通过此端口公开 Ops Manager 应用程序。
如果您不提供
spec.externalConnectivity.port
值,Kubernetes 服务将通过默认MongoDB Ops Manager HTTP(8080 ) 或 HTTPS (8443 ) 端口向外部流量公开 应用程序。
spec.externalConnectivity.loadBalancerIP
类型:字符串
Kubernetes Operator 创建
LoadBalancer
Kubernetes 服务时使用的 IP 地址。仅当您的云提供商支持且
spec.externalConnectivity.type
为LoadBalancer
时,才能使用此设置。 了解有关 类型 LoadBalancer 的更多信息 ,请参阅 Kubernetes 文档。
spec.externalConnectivity.externalTrafficPolicy
类型:字符串
将外部流量路由到 Ops Manager Kubernetes 服务的策略。该服务根据此设置的值将外部流量路由到节点本地或集群范围的端点。
接受的值为:
Cluster
和Local
。 要了解哪些值可以满足您的要求,请参阅 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.encryption.kmip
类型:对象
包含 KMIP 备份加密配置设置的对象。要了解详情,请参阅为 Ops Manager 配置 KMIP 备份加密。
注意
如果设置此参数,则与
spec.credentials
值链接的 API 密钥必须具有Global Owner
角色。
spec.backup.encryption.kmip.server.ca
类型:字符串
人类可读标签,用于标识包含用于 KMIP 身份验证的 CA 证书 (
ca.pem
) 条目的 ConfigMap。
spec.backup.encryption.kmip.server.url
类型:字符串
使用
hostname.port
格式(例如192.168.1.3:5696
或my-kmip-server.mycorp.com:5696
)的 KMIP 服务器的 URL 。
spec.backup.headDB
类型:集合
头部数据库的配置设置。 Kubernetes Operator 创建 持久卷声明 具有指定的配置。
标量数据类型说明labelSelector
字符串标记 用于将挂载的卷绑定到目录。storage
字符串应安装的永久卷的最小大小。此值以整数表示,后跟采用 JEDEC 表示法的存储单位。
默认值为
30Gi
。要学习;了解更多信息,请参阅备份守护程序硬件要求。
示例,如果头部数据库需要60 GB 的存储空间,设立将该值设置为
60Gi
。storageClass
字符串持久卷声明 中指定的存储类型 。您可以将此存储类型创建为 StorageClass 对象,然后在此 对象 中使用它 规范。
确保将 StorageClass 设置为
reclaimPolicy
以 保留 。这可确保在 持久卷声明 时保留数据 已删除。
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.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 配置中的
mongoURI
和ssl
标志。
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 配置中的
mongoURI
和ssl
标志。
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
类型:集合
StatefulSet 规范 MongoDB Enterprise Kubernetes Operator 为 备份守护程序服务创建的。
要查看可以添加到
spec.backup.statefulSet.spec
的字段,请参阅 StatefulSetSpec v1 apps 在 Kubernetes 文档中。
spec.backup.statefulSet.spec.template
类型:集合
模板 对于 StatefulSet 中的 Kubernetes Pod MongoDB Enterprise Kubernetes Operator 为 备份守护程序服务创建的。
注意
Kubernetes Operator 不会验证您在
spec.backup.statefulSet.spec.template
中提供的字段。
spec.backup.statefulSet.spec.template.metadata
类型:集合
StatefulSet 中 Kubernetes Pod 的元数据 MongoDB Enterprise Kubernetes Operator 为 备份守护程序服务创建的。
要查看可以添加到
spec.backup.statefulSet.spec.template.metadata
的字段,请参阅 Kubernetes 文档。
spec.backup.statefulSet.spec.template.spec
类型:集合
StatefulSet 中 Kubernetes Pod 的规范 MongoDB Enterprise Kubernetes Operator 为 备份守护程序服务创建的。
要查看可添加到
spec.backup.statefulSet.spec.template.spec
的字段的完整列表,请参阅 Kubernetes 文档。以下示例
spec.backup.statefulSet.spec.template.spec
定义了 MongoDB Enterprise 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
类型:集合
StatefulSet 中属于 Kubernetes Pod 的容器列表 MongoDB Enterprise Kubernetes Operator 为 备份守护程序服务创建的。
要修改备份守护程序服务容器的规范,您必须使用
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 中导致不可预知的结果。
S3 设置
您可以将 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 密钥 的 S oplog3 存储的自定义证书列表 。基本64 编码的 x。509 证书必须已存在于 Kubernetes 密钥 中 带有密钥,并且必须可由 Java CertifcateFactory 进行解析 。您不能在一个密钥中指定链中的多个证书。 如果您在一个密钥中指定链中的多个证书,Kubernetes Operator 仅使用链中的第一个证书。 如果您还提供
customCertificate
设置,Kubernetes Operator 将使用spec.applicationDatabase.security.tls.ca
作为备份的自定义证书。列表中的每个条目指定
name
和key
。 如果您指定多个密钥,Kubernetes Operator 将使用指定密钥中的所有证书。如果您不提供此设置,Ops Manager 将使用 Ops Manager 使用的Java虚拟机(JVM)默认信任存储。
spec.configuration.mms.mongoDbUsage.defaultUsageType
类型:字符串
Kubernetes 服务的默认服务器类型。
spec.backup.s3OpLogStores.customCertificateSecretRefs.key
类型:字符串
需要为 S 3 oplog 存储使用自定义证书。 表示密钥中 密钥 的文件 64包含基本 编码的509 x。 证书。如果不指定此设置,Kubernetes Operator 无法将自定义证书用于S 3 oplog 存储备份。
spec.backup.s3OpLogStores.irsaEnabled
类型:布尔值
启用为服务帐户使用 IAM 角色的Amazon Web Services 标志 在Amazon Web Services EKS 配置 S3oplog 存储。默认值为
False
。 如果您不使用Amazon Web Services EKS,则此标志无效。 当设置为False
时,将禁用使用 EKS 中服务帐户的Amazon Web Services IAM 角色来配置S3 oplog存储。 要了解更多信息,请参阅 EKS 中服务账户的 IAM 角色。
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
类型:字符串
使用 S 3存储来存储 oplog 时需要。 包含
accessKey
和secretKey
字段的密钥名称。 备份守护程序服务使用这些字段的值作为凭证来访问Amazon Web Services S3或S3兼容存储桶。 要配置S 3 oplog 存储,您必须在密钥中指定两个密钥。
spec.backup.s3OpLogStores.pathStyleAccessEnabled
类型:布尔值
指示存储桶端点 URL 的样式。
值说明例子true
路径样式 URLs3.amazonaws.com/<bucket>
false
虚拟主机样式 URL<bucket>.s3.amazonaws.com
要学习;了解有关 注解Amazon Web Services 的更多信息 上的 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 Operator 将使用spec.applicationDatabase.security.tls.ca
作为备份的自定义证书。列表中的每个条目指定
name
和key
。 如果指定多个密钥,Kubernetes Operator 将使用所有指定的密钥。如果您不提供此设置,Kubernetes 操作符将使用 Ops Manager 使用的Java虚拟机(JVM)默认信任存储进行备份。
spec.backup.s3Stores.customCertificateSecretRefs.key
类型:字符串
需要为 S 3 oplog 存储使用自定义证书。 表示密钥中 密钥 的文件 64包含基本 编码的509 x。 证书。如果不指定此设置,Kubernetes Operator 无法将自定义证书用于 S3 快照存储,而默认为 使用的默认 JVM {Java 虚拟机) MongoDB Ops Manager信任存储。
spec.backup.s3Stores.irsaEnabled
类型:布尔值
启用为服务帐户使用Amazon Web Services IAM 角色的 标志 在Amazon Web Services EKS 配置 S3 快照存储。默认值为
False
。 如果您不使用Amazon Web Services EKS,则此标志无效。 当设置为False
时,将禁用使用 EKS 中服务帐户的Amazon Web Services 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 配置中的
mongoURI
和ssl
标志。
spec.backup.s3Stores.mongodbUserRef.name
类型:字符串
如果您创建了MongoDB database资源来存储 |s3|,则为必填项。快照元数据和SCRAM在此数据库上启用。 用于连接到S 3快照存储的元数据数据库的 MongoDB 用户资源的名称。 将此用户资源部署在与MongoDB Ops Manager资源相同的命名空间中,并具有以下所有角色:
重要
指定后,请勿编辑S3元数据快照存储用户名。
spec.backup.s3Stores.s3SecretRef.name
类型:字符串
如果使用 S 3存储启用备份,则为必填项。 包含
accessKey
和secretKey
字段的密钥名称。 备份守护进程服务使用这些字段的值作为凭证来访问权限Amazon Web Services S3或S3兼容存储桶。 如果密钥缺少任一密钥,则无法配置S 3快照存储。
spec.backup.s3Stores.pathStyleAccessEnabled
类型:布尔值
指示存储桶端点 URL 的样式。
值说明例子true
路径样式 URLs3.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
类型:字符串
必需。 应用程序数据库 MongoDB上安装的MongoDB Ops Manager 版本。您必须根据 容器注册表 中的标签指定兼容的企业版 MongoDB 版本 。例如,
6.0.0-ubi8
。 从 Kubernetes Operator 版本1开始。 20 、 标签不再以-ent
结尾。重要
请务必选择兼容的 MongoDB Server 版本。
兼容版本因 MongoDB 数据库资源使用的基础图片而异。
注意
如果您将此值更新为应用程序数据库的 MongoDB 更高版本,则特征兼容性版本 (FCV)不会更改,除非您还指定
spec.applicationDatabase
下的featureCompatibilityVersion
参数。
应用程序数据库可选设置
本节介绍与Ops Manager Application Database相关的可选设置。 有关特定于多集群MongoDB Ops Manager部署的可选应用程序数据库设置,请参阅多集群设置。
注意
spec.applicationDatabase.agent
下的所有设置都适用于自动化和监控,除非您在spec.applicationDatabase.agent
和spec.applicationDatabase.monitoringAgent
中分别指定自动化和监控的值。
spec.applicationDatabase.agent.<component>.logRotate
类型:对象
将组件替换为以下值之一:
mongod
backupAgent
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
backupAgent
monitoringAgent
轮换日志时必需。 MongoDB Ops Manager轮换单个日志文件之前的最大大小(以 MB 为单位)。 MongoDB Ops Manager如果达到此
sizeThresholdMB
或logRotate.timeThresholdHrs
限制中给定的值, 会立即轮换日志文件。
spec.applicationDatabase.agent.<component>.logRotate.timeThresholdHrs
类型:整型
将组件替换为以下值之一:
mongod
backupAgent
monitoringAgent
轮换日志时必需。 下次轮换之前单个日志文件的最大持续时间(以小时为单位)。 自上次轮换以来的时间。 MongoDB Ops Manager如果达到
timeThresholdHrs
或logRotate.sizeThresholdM
限制中给出的值, 会立即轮换日志文件。
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如果达到
sizeThresholdMB
或auditlogRotate.timeThresholdHrs
限制中的值, 会立即轮换Atlas 审核日志文件。
spec.applicationDatabase.agent.mongod.auditlogRotate.timeThresholdHrs
类型:整型
轮换Atlas 审核日志时必需。 下一次轮换之前单个Atlas 审核日志文件的最大持续时间(以小时为单位)。 自上次轮换以来的时间。 MongoDB Ops Manager如果达到
timeThresholdHrs
或auditlogRotate.sizeThresholdM
限制中的值, 会立即轮换Atlas 审核日志文件。
spec.applicationDatabase.agent.startupOptions
类型:对象
用于启动选项的 MongoDB 配置对象。 有关可用字段,请参阅MongoDB Agent设置。
spec.applicationDatabase.agent.systemLog.path
类型:字符串
默认:
/var/log/mongodb-mms-automation/mongodb.log
mongod
或mongos
应将所有诊断日志信息发送到的日志文件的路径,而不是标准输出或主机的syslog 。 MongoDB 在指定路径创建日志文件。Linux 包初始化脚本不希望
systemLog.path
更改默认值。 如果使用 Linux 包并更改systemLog.path
,则必须使用自己的初始化脚本并禁用内置脚本。
spec.applicationDatabase.agent.systemLog.logAppend
类型:布尔值
默认:
false
当
true
或mongos
mongod
mongos
mongod
实例重新启动时, 、 或 将新条目附加到现有日志文件的末尾。如果没有此选项,mongod
将备份现有日志并创建新文件。
spec.applicationDatabase.agent.systemLog.destination
类型:字符串
MongoDB 发送所有日志输出的目标。指定
file
或syslog
。如果指定file
,则必须同时指定systemLog.path
。如果不指定
systemLog.path
,MongoDB 会将所有日志输出发送到标准输出。警告
系统日志守护进程在记录消息时生成时间戳,而不是在 MongoDB 发布消息时生成时间戳。这种行为可能会导致日志条目的时间戳具有误导性,尤其是当系统负载较重时。 我们建议对生产系统使用
file
选项,以确保时间戳的准确性。
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.priority
为1.5
的成员比memberConfig.priority
为0.5
的成员更有可能成为主节点。memberConfig.priority
为0
的节点没有资格成为主节点。 要了解更多信息,请参阅成员优先级。
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
类型:字符串
Kubernetes ConfigMap 的名称 包含应用程序数据库的 CA 文件。
重要
spec.applicationDatabase.security.tls.ca
如果使用自定义 CA 签署应用程序数据库的 TLS 证书,则需要 。Kubernetes Operator 要求您在 ConfigMap 中将应用程序数据库的证书命名为
ca-pem
。当
spec.backup.s3OpLogStores.customCertificate
或spec.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 设置
将 Prometheus 与应用程序数据库结合使用时,以下设置应用:
spec.applicationDatabase.prometheus.metricsPath
类型:字符串
默认值:
"/metrics"
可选。人类可读的字符串,指示指标端点的路径。如果不指定此设置,则使用默认设置。
spec.applicationDatabase.prometheus.passwordSecretRef
类型:对象
包含 密钥 详细信息的 条件 对象 用于基本HTTP身份验证。如果要将 Prometheus 与应用程序数据库一起使用,则必须指定此设置。
spec.applicationDatabase.prometheus.passwordSecretRef.key
类型:字符串
默认值:
"password"
可选。 人类可读的string ,用于标识密钥中的 密钥 存储用于基本HTTP 身份验证的密码。如果不指定此设置,则应用默认值。
spec.applicationDatabase.prometheus.passwordSecretRef.name
类型:字符串
可选的
标识 密钥 的人类可读标签 ,其中包含用于基本HTTP身份验证的密码。如果要将 Prometheus 与应用程序数据库一起使用,则必须指定此设置。
spec.applicationDatabase.prometheus.tlseSecretKeyRef
类型:对象
可选。 包含 密钥 详细信息的对象 用于 TLS 身份验证。
spec.applicationDatabase.prometheus.tlseSecretKeyRef.key
类型:字符串
默认值:
"password"
可选。 人类可读的string ,用于标识密钥中的 密钥 存储用于 TLS 身份验证的密码。如果不指定此设置,则应用默认值。
spec.applicationDatabase.prometheus.tlseSecretKeyRef.name
类型:字符串
有条件。 标识 密钥 的人类可读标签 其中包含用于 TLS 身份验证的密码。如果要将 Prometheus 与应用程序数据库一起使用并且想要使用TLS身份验证,则必须指定此设置。
多集群设置
MongoDB Ops Manager所需设置
除了所需的 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资源的 部署类型。
值为
SingleCluster
或MultiCluster
。 如果省略,则默认值为SingleCluster
。如果指定
MultiCluster
:将
MongoDBMultiCluster
资源添加到监视的资源列表中。 这向 Kubernetes Operator 表明它应该在多 Kubernetes 集群模式下工作,并执行处理多 Kubernetes 资源所需的配置动作。使用MongoDB Ops Manager
spec.clusterSpecList
及其嵌套的spec.clusterSpecList.clusterName
和spec.clusterSpecList.members
参数,指定至少一个要部署 的成员集群。如果您指定
MultiCluster
, Kubernetes Operator 将忽略您为spec.members
设立的任何值。 请参阅资源规范的示例。
MongoDB Ops Manager可选设置
MongoDB Ops Manager资源还可以使用以下特定于多集群MongoDB Ops Manager部署的设置:
spec.clusterSpecList
类型:集合
有条件。 Kubernetes打算在其中部署Kubernetes MongoDB Ops Manager或备份守护程序实例的多 集群中所选 成员集群的详细信息。另请参阅资源规范的示例。
设立
spec.topology
设置为MultiCluster
时,必须指定spec.clusterSpecList.members
的值。spec.clusterSpecList
下的所有其他参数都是可选的。当您将
spec.topology
设置为SingleCluster
时,Kubernetes Operator 会忽略spec.clusterSpecList
下的所有参数。
spec.clusterSpecList.clusterName
类型:字符串
可选。 多 集群 部署中成员KubernetesKubernetes MongoDBMongoDBEnterprise Kubernetes OperatorMongoDB Ops Manager集群的名称,其中 调度 StatefulSet 用于 或备份守护程序。
spec.clusterSpecList.clusterDomain
类型:字符串
可选。
spec.clusterDomain
覆盖特定MongoDB 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.jvmParameters
中指定的值。 有关示例值,请参阅资源规范的示例。如果省略此参数,则
spec.jvmParameters
中的值将用于此成员集群中的MongoDB Ops Manager和备份守护程序实例。
spec.clusterSpecList.externalConnectivity
类型:集合
可选。 为特定集群启用与MongoDB Ops Manager的外部连接的配置对象。 这是对特定集群的
spec.externalConnectivity
的覆盖。指定此参数的值以更改MongoDB Ops Manager应用程序在不同集群中向外部公开的方式。 示例,如果您在不同云提供商的 节点上部署MongoDB Ops Manager Kubernetes,则可能需要为此参数指定特定于云提供商的值。
如果设置此参数:
KubernetesOperator
spec.externalConnectivity
不会为此成员MongoDB Ops Manager 集群使用 值。KubernetesOperator 创建Kubernetes 服务 ,名为 ,允许源自
<om-name>-svc-ext
KubernetesMongoDB Ops Manager集群外部的流量到达此成员集群上的 应用程序。
如果省略此参数,Kubernetes Operator 会为此成员集群使用
spec.externalConnectivity
中的值。
spec.clusterSpecList.statefulSet.spec
类型:集合
可选。 StatefulSet 规范MongoDBEnterprise Kubernetes Operator 为多Kubernetes 集群MongoDB Ops Manager 部署中的特定成员集群创建。此参数是
spec.statefulSet.spec
的覆盖项。 如果省略,Kubernetes Operator 将使用spec.statefulSet.spec
中的值。 例如,您可以使用此参数为多MongoDB Ops Manager Kubernetes 集群 部署中的每个MongoDB 集群指定不同的存储值。要查看可以添加到
spec.clusterSpecList.statefulSet.spec
的字段,请参阅 StatefulSetSpec v1 apps 在 Kubernetes 文档中。
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
。 允许您自定义特定成员集群中备份守护程序的值。 要查看可以添加到spec.clusterSpecList[*].backup.statefulSet
的字段,请参阅 StatefulSetSpec v1 apps 在 Kubernetes 文档中。
应用程序数据库所需设置
本部分介绍必须用于应用程序数据库的多集群MongoDB Ops Manager部署的特定设置。
spec.applicationDatabase.clusterSpecList
类型:集合
多 Kubernetes集群MongoDB 部署中选定的Kubernetes成员集群的详细信息,这些集群提供服务托管应用程序数据库的节点。
spec.applicationDatabase.clusterSpecList.clusterName
类型:字符串
多 Kubernetes 集群 MongoDB 部署中成员 Kubernetes 集群的名称,其中 MongoDB Enterprise Kubernetes Operator 调度 StatefulSet 用于应用程序数据库。
重要
您无法通过修改 CRD 中的
clusterSpecList
和topology
设置将单集群MongoDB Ops Manager 实例转换为多 Kubernetes 集群 部署实例。MongoDB
spec.applicationDatabase.clusterSpecList.members
类型:数字
给定成员集群中的 StatefulSet 节点数。 成员集群是多 Kubernetes 集群 MongoDB 部署中托管应用程序数据库的成员集群之一。
spec.applicationDatabase.topology
类型:字符串
应用程序数据库的 Kubernetes 部署类型。
值为
SingleCluster
或MultiCluster
。 如果省略,则默认值为SingleCluster
。如果指定
MultiCluster
,则必须至少指定一名成员要使用
clusterSpecList
、clusterName
、members
参数部署应用程序数据库的集群。如果您指定
MultiCluster
, Kubernetes Operator 将忽略您为spec.applicationDatabase.members
字段设立的值。
要了解更多信息,请参阅多集群资源规范示例。
应用程序数据库可选设置
本部分介绍可用于应用程序数据库的多集群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: 4.4.1 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.priority
为1.5
的成员比memberConfig.priority
为0.5
的成员更有可能成为主节点。memberConfig.priority
为0
的节点没有资格成为主节点。 要了解更多信息,请参阅成员优先级。
spec.applicationDatabase.clusterSpecList.memberConfig.tags
类型:地图
副本集标记映射,用于将读取和写入操作定向到应用程序数据库副本集的特定成员。
spec.applicationDatabase.clusterSpecList.memberConfig.votes
类型:数字
确定应用程序数据库副本集节点是否可以在选举投票。 设置为
1
以允许成员投票。 设置为0
可将该成员排除在选举。