如何更新etcd成员列表

how to update the etcd member list

我的集群有 3 个主节点,现在我关闭了 1 个主节点,然后我从 etcd 数据库中检查成员:

[root@fat001 bin]# ETCDCTL_API=3 /opt/k8s/bin/etcdctl member list
56298c42af788da7, started, azshara-k8s02, https://172.19.104.230:2380, https://172.19.104.230:2379
5ab2d0e431f00a20, started, azshara-k8s01, https://172.19.104.231:2380, https://172.19.104.231:2379
84c70bf96ccff30f, started, azshara-k8s03, https://172.19.150.82:2380, https://172.19.150.82:2379

仍然显示 3 个节点已启动。为什么etcd没有刷新节点状态?我应该怎么做才能将etcd状态更新到最新?是否可以手动刷新状态? kubernetes 版本是 1.15.x.

如果您删除集群中的节点,您也应该从 etcd 中手动删除它,即通过执行 'etcdctl member remove 84c70bf96ccff30f '.

确保 etcd 容器不再 运行 在故障节点上,并且该节点不再包含任何数据:

rm -rf /etc/kubernetes/manifests/etcd.yaml /var/lib/etcd/

crictl rm "$CONTAINER_ID"

上面的命令将移除etcd的static-pod和node.Of课程上的data-directory /var/lib/etcd,你也可以使用kubeadm reset 命令作为替代。但是,它还会从此节点中删除所有 Kubernetes-related 资源和证书。