对具有多个 Kubernetes 集群的部署进行故障排除
MongoDB Enterprise Kubernetes Operator 已弃用。新的 MongoDB Controllers for Kubernetes Operator 取代了MongoDB Enterprise Kubernetes Operator。第一个版本的 Controllers for Kubernetes Operator 在功能上等同于 v1.33 的Enterprise Kubernetes Operator。有关此更改的更多信息以及迁移到新 Operator 的指导,请参阅第一个新版本的发布说明。 MongoDB Enterprise Kubernetes Operator 的未来版本将不会再发布。根据现有的一年 支持政策,每个版本都将结束生命周期。请迁移到Kubernetes Operator 的控制器以获得持续支持。
要对多 Kubernetes 集群 MongoDB 部署进行故障排除,请使用本节中的程序。
从 Kubernetes 集群故障中恢复
此过程使用与先决条件中相同的集群名称。 如果保存MDB_CLUSTER_1
MongoDB 节点的集群 Go,并且您预配一个名为MDB_CLUSTER_4
而不是 的新集群来保存新的MDB_CLUSTER_1
MongoDB 节点,请使用更新的成员列表运行 MongoDB kubectl 插件MongoDBMultiCluster
集群,然后编辑中央集群上的资源规范。
要在集群故障后重新配置多 Kubernetes 集群 MongoDB 部署,请用新预配的集群替换出现故障的 Kubernetes 集群,如下所示:
使用
recover
参数和-member-clusters
选项中指定的新集群MDB_CLUSTER_4
运行MongoDB kubectl 插件。 这使 Kubernetes Operator 能够与新集群通信,从而在其上调度 MongoDB 节点。 在以下示例中,-member-clusters
包含${MDB_CLUSTER_4_FULL_NAME}
。kubectl mongodb multicluster recover \ --central-cluster="MDB_CENTRAL_CLUSTER_FULL_NAME" \ --member-clusters="${MDB_CLUSTER_2_FULL_NAME},${MDB_CLUSTER_3_FULL_NAME},${MDB_CLUSTER_4_FULL_NAME}" \ --member-cluster-namespace="mongodb" \ --central-cluster-namespace="mongodb" \ --operator-name=mongodb-enterprise-operator-multi-cluster \ --source-cluster="${MDB_CLUSTER_2_FULL_NAME}" 在中央集群上,找到并编辑
MongoDBMultiCluster
资源规范,将新集群名称添加到clusterSpecList
中,并从此列表中删除出现故障的 Kubernetes 集群。 生成的集群名称列表应类似于以下示例:clusterSpecList: - clusterName: ${MDB_CLUSTER_4_FULL_NAME} members: 3 - clusterName: ${MDB_CLUSTER_2_FULL_NAME} members: 2 - clusterName: ${MDB_CLUSTER_3_FULL_NAME} members: 3 重新启动 Kubernetes Operator Pod。 重启后,Kubernetes 操作符应在新创建的
MDB_CLUSTER_4
集群上协调 MongoDB 部署,该集群是您为替换MDB_CLUSTER_1
故障而创建的。要了解有关资源协调的更多信息,请参阅部署架构和图表。