使用多个Kubernetes集群进行故障排除
要排查您的多Kubernetes集群MongoDB部署,请使用本节中的程序。
从Kubernetes集群故障中恢复
此过程使用与先决条件中相同的集群名称。如果包含MongoDB节点的集群MDB_CLUSTER_1
崩溃,并且您为新的MongoDB节点指定了名为 MDB_CLUSTER_4
的新集群而不是 MDB_CLUSTER_1
,则运行具有更新后的成员集群列表的 MongoDB kubectl插件,然后编辑中央集群上的 MongoDBMultiCluster
资源spec。
在集群故障后重新配置多Kubernetes集群MongoDB部署后,将失败的Kubernetes集群替换为以下新配置的集群
使用带有
recover
参数和指定在-member-clusters
选项中的新集群MDB_CLUSTER_4
运行 MongoDB kubectl插件。这使 Kubernetes Operator 能够与新集群通信以在其上调度MongoDB节点。在以下示例中,-member-clusters
包含${MDB_CLUSTER_4_FULL_NAME}
。Kubernetes Operator。在以下示例中,-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
资源spec,将新集群名称添加到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 OperatorPod。重启后,Kubernetes Operator应该会协调在新建的
MDB_CLUSTER_4
集群上运行的MongoDB部署,该集群是用作MDB_CLUSTER_1
故障的替代品。有关资源协调的更多信息,请参阅 部署架构和图表。
另请参阅 ConfigMap名称mongodb-enterprise-operator-member-list是硬编码的。