首先看mongodb 是否k8s托管, 如果非容器化的 直接跳过任何容器命令
需要进入节点, 依次灰度关闭复制集群的mongo 不能直接delete pod
每次关闭必须要等待上一个关闭的节点上线, 并重新选举完成, 去每个节点一次关闭

分别进入 0/1/2 节点

kubectl exec  -n  xxx weintell mongodb-0  -it -- /bin/sh
在每个pod内 执行shutdown命令
# 切换admin数据库
use admin
# 执行关机命令
db.runCommand("shutdown")

注意: 如果提示没有后备选举节点 就等待被删除的节点重新上线为secondary

mmm:PRIMARY> db.runCommand("shutdown")
{
        "operationTime" : Timestamp(1659338993, 1),
        "ok" : 0,
        "errmsg" : "No electable secondaries caught up as of 2022-08-01T07:30:05.009+0000. Please use the replSetStepDown command with the argument {force: true} to force node to step down.",
        "code" : 262,
        "codeName" : "ExceededTimeLimit",
        "$clusterTime" : {
                "clusterTime" : Timestamp(1659338993, 1),
                "signature" : {
                        "hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
                        "keyId" : NumberLong(0)
                }
        }
}
Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐