website/content/zh-cn/docs/reference/setup-tools/kubeadm/kubeadm-reset.md

3.6 KiB
Raw Blame History

title content_type weight
kubeadm reset concept 60

该命令尽力还原由 kubeadm initkubeadm join 所做的更改。

{{< include "generated/kubeadm_reset/_index.md" >}}

Reset 工作流程

kubeadm reset 负责从使用 kubeadm initkubeadm join 命令创建的文件中清除节点本地文件系统。 对于控制平面节点,reset 还从 etcd 集群中删除该节点的本地 etcd Stacked 部署的成员。

kubeadm reset phase 可用于执行上述工作流程的各个阶段。 要跳过阶段列表,你可以使用 --skip-phases 参数,该参数的工作方式类似于 kubeadm joinkubeadm init 阶段运行器。

外部 etcd 清理

如果使用了外部 etcdkubeadm reset 将不会删除任何 etcd 中的数据。 这意味着,如果再次使用相同的 etcd 端点运行 kubeadm init,你将看到先前集群的状态。

要清理 etcd 中的数据,建议你使用 etcdctl 这样的客户端,例如:

etcdctl del "" --prefix

更多详情请参考 etcd 文档

体面关闭 kube-apiserver

如果你为 kube-apiserver 配置了 --shutdown-delay-duration 标志, 你可以在运行 kubeadm reset 之前,运行以下命令尝试体面关闭正在运行的 API 服务器 Pod

yq eval -i '.spec.containers[0].command = []' /etc/kubernetes/manifests/kube-apiserver.yaml
timeout 60 sh -c 'while pgrep kube-apiserver >/dev/null; do sleep 1; done' || true

{{% heading "whatsnext" %}}

  • 参考 kubeadm init 来初始化 Kubernetes 控制平面节点。
  • 参考 kubeadm join 来初始化 Kubernetes 工作节点并加入集群。