设计概述¶
Operator的设计与Percona Server紧密绑定,用于MongoDB复制集或分片集群。雷竞技下载官网复制集集群在下图中简要描述。
复制集由一个主服务器和几个辅助服务器(图中有两个)组成,客户端应用程序通过驱动程序访问服务器。
对于分片集群,每个分片都是一个副本集,其中包含存储在数据库中的数据子集蒙戈查询路由器充当客户机应用程序的入口点。您可以找到关于分片的更多细节在专门的文档页面上,简化图如下:
提供运营商使用的高可用性节点关联如果可能的话,在单独的工作节点上运行MongoDB实例,并且数据库集群部署为一个至少有三个节点的单一副本集。如果某个节点发生故障,则在另一个节点上自动重新创建带有mongod进程的pod。如果失败的节点承载主服务器,副本集将启动选举以选择新的主服务器。如果故障节点正在运行Operator, Kubernetes会在另一个节点上重新启动Operator,因此正常操作不会中断。
客户端应用程序应该使用mongo+srv URI进行连接。这允许驱动程序(4.2及以上版本)从DNS SRV条目中检索复制集成员列表,而不必为动态分配的节点列出主机名。
请注意
操作员使用安全设置,这比默认的Percona服务器MongoDB设置更安全。雷竞技下载官网初始配置包含所有所需用户帐户的默认密码,这些密码应该在生产环境中更改,如中所述安装说明.
为了为有状态应用程序提供数据存储,Kubernetes使用了持久卷。一个PersistentVolumeClaim(PVC)用于实现对pod的自动存储发放。如果发生故障,容器存储接口(CSI)应该能够重新挂载不同节点上的存储。PVC StorageClass必须支持这个特性(Kubernetes和OpenShift分别在1.9和3.9版本中支持这个特性)。
Operator功能扩展了Kubernetes API雷竞技下载官网PerconaServerMongoDB对象,它被实现为一个golang应用程序。每一个雷竞技下载官网PerconaServerMongoDB对象映射到一个单独的Percona服务器用于MongoD雷竞技下载官网B设置。Operator监听所创建对象上的所有事件。当一个新的Percon雷竞技下载官网aServerMongoDB对象被创建,或者一个现有的对象被更改或删除时,操作员会自动创建/更改/删除所有需要的Kubernetes对象,并进行适当的设置,以提供一个正常运行的副本集。