3.6 KiB
3.6 KiB
| title | content_type | weight |
|---|---|---|
| kubeadm reset | concept | 60 |
该命令尽力还原由 kubeadm init 或 kubeadm join 所做的更改。
{{< include "generated/kubeadm_reset/_index.md" >}}
Reset 工作流程
kubeadm reset 负责从使用 kubeadm init 或 kubeadm join 命令创建的文件中清除节点本地文件系统。
对于控制平面节点,reset 还从 etcd 集群中删除该节点的本地 etcd Stacked 部署的成员。
kubeadm reset phase 可用于执行上述工作流程的各个阶段。
要跳过阶段列表,你可以使用 --skip-phases 参数,该参数的工作方式类似于 kubeadm join 和 kubeadm init 阶段运行器。
外部 etcd 清理
如果使用了外部 etcd,kubeadm 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 工作节点并加入集群。