Kubernetes 操作符的 MongoDB 控制器是一个 Kubernetes 控制器,可以通过自定义资源定义 (CRD) 扩展 Kubernetes API,以实现 MongoDB 数据库部署和 MongoDB Ops Manager。在规划第一次部署之前,必须了解这些自定义资源如何映射到 Kubernetes 原语元、Kubernetes 操作符如何协调变更以及组件如何相互连接。
本节介绍了 Kubernetes Operator 所管理的所有资源的架构,从单集群独立部署到备份基础设施的多集群 MongoDB Ops Manager 拓扑。
操作符概述
Kubernetes 操作符作为部署在专用命名空间中运行。它监视类型为 MongoDB、MongoDBOpsManager、MongoDBUser 和 MongoDBMultiCluster 的自定义资源。当您创建或更新其中一个资源时,Kubernetes 操作符会读取规范、验证它,并协调所需的 Kubernetes 对象 (StatefulSets、Services、Secrets、ConfigMaps),以使实际状态与您声明的状态保持一致。
Kubernetes 操作符为 MongoDB Ops Manager 中的 MongoDB Agent 提供容器映像,您可以通过该映像管理和部署具有全面监控、备份和自动化功能的 MongoDB 数据库集群。Kubernetes 容器充当主机, MongoDB Ops Manager 在该主机上协调 mongod 进程的安装并部署集群配置。
作为部署的一部分,Kubernetes 操作符会为 StatefulSets 创建持久卷。容器使用这些持久卷在两次重启之间维护集群状态。
下图显示了使用 Kubernetes 操作符 配置 Kubernetes 实例的流程:
Kubernetes Operator 的架构由两个主要资源系列组成:
使用
MongoDBOpsManager自定义资源,Kubernetes 操作符通过该资源部署 MongoDB Ops Manager 组件:应用程序数据库、MongoDB Ops Manager 应用程序和备份守护程序。部署启动后,MongoDB Ops Manager 组件将协调您对 MongoDB 集群配置所做的更新。要了解更多,请参阅 MongoDB Ops Manager 资源架构。使用
MongoDB通过定制资源,Kubernetes 操作符部署数据库实例(独立运行的实例、副本集或分片集群)和MongoDBUser资源。部署后,这些资源会协调您对用户或 MongoDB 集群配置所做的更新。要了解更多信息,请参阅MongoDB 数据库资源架构。
架构指南
- MongoDB数据库资源架构
- 部署类型(独立运行的实例、副本集、分片集群)、StatefulSet 组成、MongoDB 和 MongoDBUser 协调工作流程及图表。
- Ops Manager资源架构
- 应用程序数据库、MongoDB Ops Manager 应用程序、备份守护程序组件架构、拓扑考虑以及 MongoDBOpsManager 协调工作流。
- 多集群架构
- 单集群模式与多集群模式、限制、功能差异、部署图(带服务网格和不带服务网格)、Ops Manager 多集群图、网络、负载均衡、服务网格要求和性能考虑。
提示
MongoDB 数据库资源规格 — MongoDB 数据库资源规格
MongoDB Ops Manager 资源规格 — MongoDB Ops Manager 资源规格
多 Kubernetes 集群资源规范 — 多集群规范
多集群部署先决条件 — 多集群先决条件
在多个 Kubernetes 集群上部署 MongoDB Ops Manager 资源 — 在多个集群上部署 MongoDB Ops Manager
MongoDB Ops Manager 和 AppDB 资源的灾难恢复 — 灾难恢复程序
参考架构 — 参考架构