kubeadm reset
对 kubeadm init
或 kubeadm join
所做的更改进行尽力恢复。
对“kubeadm init”或“kubeadm join”对该主机所做的更改进行尽力恢复
摘要
对“kubeadm init”或“kubeadm join”对该主机所做的更改进行尽力恢复
“reset”命令执行以下阶段
preflight Run reset pre-flight checks
remove-etcd-member Remove a local etcd member.
cleanup-node Run cleanup node.
kubeadm reset [flags]
选项
--cert-dir string 默认值:"/etc/kubernetes/pki" | |
存储证书的目录路径。如果指定,则清理此目录。 | |
--cleanup-tmp-dir | |
清理“/etc/kubernetes/tmp”目录 | |
--config string | |
kubeadm 配置文件的路径。 | |
--cri-socket string | |
要连接的 CRI 套接字的路径。如果为空,kubeadm 将尝试自动检测此值;仅当您安装了多个 CRI 或您的 CRI 套接字是非标准的时,才使用此选项。 | |
--dry-run | |
不应用任何更改;只输出将要执行的操作。 | |
-f, --force | |
在没有提示确认的情况下重置节点。 | |
-h, --help | |
reset 的帮助 | |
--ignore-preflight-errors strings | |
错误将被显示为警告的检查列表。示例:“IsPrivilegedUser,Swap”。值“all”忽略来自所有检查的错误。 | |
--kubeconfig string 默认值:"/etc/kubernetes/admin.conf" | |
与集群通信时使用的 kubeconfig 文件。如果未设置标志,则可以搜索一组标准位置以查找现有的 kubeconfig 文件。 | |
--skip-phases strings | |
要跳过的阶段列表 |
从父命令继承的选项
--rootfs string | |
[实验性] “真实”主机根文件系统的路径。 |
重置工作流程
kubeadm reset
负责从使用 kubeadm init
或 kubeadm join
命令创建的文件中清理节点本地文件系统。对于控制平面节点,reset
还会从 etcd 集群中删除该节点的本地堆叠 etcd 成员。
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 关闭
如果您已使用 --shutdown-delay-duration
标志配置了 kube-apiserver
,则可以在运行 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
下一步
- kubeadm init 用于引导 Kubernetes 控制平面节点
- kubeadm join 用于引导 Kubernetes 工作节点并将其加入集群