kubeadm reset

尽力回滚由 kubeadm initkubeadm 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 chroot 到提供的路径。

重置工作流程

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

kubeadm reset phase 可用于执行上述工作流程的各个阶段。要跳过一系列阶段,您可以使用 --skip-phases 标志,其工作方式类似于 kubeadm joinkubeadm 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

后续步骤

上次修改时间:2024 年 8 月 17 日下午 4:50 PST:更新对生成页面的引用 (3b6f229424)