调节MongoDBOpsManager
自定义资源
下图描述了Kubernetes OperatorMongoDBOpsManager
如何协调对每个成员Kubernetes集群上的 CustomResourceDefinition 的更改。
Kubernetes 操作符 创建或更新
<om_resource_name>-db-config
密钥。此密钥包含 MongoDB Agent 用于启动应用程序数据库副本集的配置。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
。
Kubernetes Operator 创建或更新
<om_resource_name>
StatefulSet。 在多集群部署中,Kubernetes Operator 将成员集群的索引后缀以<om_resource_name>-<cluster-idx>
的形式分配给每个 StatefulSet,例如:om-1
。StatefulSet 为每个MongoDB Ops Manager副本包含一个 Pod。 每个MongoDB Ops Manager副本都连接到应用程序数据库。
MongoDBOpsManager
对trigger 自定义资源 的大多数更改<om_resource_name>
StatefulSet 中 Pod 的滚动升级。为应用程序数据库启用 TLS也会触发滚动重启,因为应用程序数据库的连接string会发生变化。 对spec.backup
的更改不会trigger滚动升级。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 在更新资源时会跳过此步骤。Kubernetes Operator 对
<om_resource_name>-db
应用程序数据库 StatefulSet 中的 Pod 执行滚动升级,以使MongoDB Ops Manager能够对其进行监控。 默认启用监控。 此协调步骤仅发生一次,例如当您部署新的MongoDB Ops Manager资源时。如果
spec.backup.enabled
为true , 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
。如果
spec.backup.enabled
为true,Kubernetes 操作符会调用 Ops Manager API,以确保 Ops Manager Application 的备份配置与您在自定义资源定义中定义的配置相匹配。