Docs 菜单

协调 MongoDBOpsManager 自定义资源

下图描述了Kubernetes Operator 如何协调对MongoDBOpsManager CustomResourceDefinition 的更改 在每个成员Kubernetes集群上。

Diagram describing how the MongoDB Enterprise Kubernetes
Operator reconciles changes to the MongoDBOpsManager
Custom Resource Definition on each member Kubernetes cluster.
点击放大
  1. Kubernetes 操作符 创建或更新<om_resource_name>-db-config密钥。此密钥包含 MongoDB Agent 用于启动应用程序数据库副本集的配置。

  2. Kubernetes Operator 创建或更新<om_resource_name>-db应用程序数据库 StatefulSet。 此 StatefulSet 包含至少三个 Pod

    • 每个 Pod 运行一个MongoDB Agent实例。 每个MongoDB Agent都会在其 Pod 上启动一个mongod实例。

    • Kubernetes 操作符 将<om_resource_name>-db-config密钥安装到每个 Pod。MongoDB Agent使用此密钥来配置应用程序数据库副本集。

      在多集群部署中, Kubernetes Operator 将成员集群的索引后缀以<om_resource_name>-db-<cluster-idx>的形式分配给每个应用程序数据库的 StatefulSet,示例: om-db-1

  3. Kubernetes Operator 创建或更新<om_resource_name> StatefulSet。 在多集群部署中,Kubernetes Operator 将成员集群的索引后缀以<om_resource_name>-<cluster-idx>的形式分配给每个 StatefulSet,例如: om-1

    StatefulSet 为每个MongoDB Ops Manager副本包含一个 Pod。 每个MongoDB Ops Manager副本都连接到应用程序数据库。

    MongoDBOpsManagertrigger 自定义资源 的大多数更改<om_resource_name> StatefulSet 中 Pod 的滚动升级。由于应用程序数据库的连接 Atlas Triggersstring发生更改, 为应用程序数据库启用 TLS 还会 滚动重启。对spec.backup的更改不会trigger滚动升级。

  4. Kubernetes Operator 调用MongoDB Ops Manager API 来创建管理员用户。 Kubernetes Operator 将此管理员用户的凭证保存在<om_resource_name>-admin-key密钥中。 Kubernetes Operator 将这些凭证用于所有其他MongoDB Ops Manager API调用。 当您使用Kubernetes Operator部署新的MongoDB Ops Manager资源时,此协调步骤仅发生一次。 Kubernetes Operator 在更新资源时会跳过此步骤。

  5. Kubernetes Operator 对 <om_resource_name>-db 应用程序数据库 StatefulSet 中的 Pod 执行滚动升级,以使MongoDB Ops Manager能够对其进行监控。 默认启用监控。 此协调步骤仅发生一次,例如当您部署新的MongoDB Ops Manager资源时。

  6. 如果spec.backup.enabledtrue , Kubernetes Operator 将创建<om_resource_name>-backup-daemon StatefulSet 或验证其正在运行。 备份守护程序连接到与MongoDB Ops Manager部署相同的应用程序数据库。

    在多集群部署中, Kubernetes Operator 将成员集群的索引后缀以<om_resource_name>-backup-daemon-<cluster-idx>的形式分配给每个备份守护程序的 StatefulSet,示例: om-backup-daemon-1

  7. 如果spec.backup.enabledtrue,Kubernetes 操作符会调用 Ops Manager API,以确保 Ops Manager Application 的备份配置与您在自定义资源定义中定义的配置相匹配。