如何清理kubelet产生的挂载点?

有时Kubernetes节点故障,需要从集群中移除,修复后再加入集群。在这个修复过程中,清理Kubelet相关挂载点是个非常重要的操作。在实际使用过程中,我发现kubeadm工具的reset子命令中有这个操作,因此特意查阅了Kubeadm的源码,找到了源码里的实现方法,在这里做个简单的记录。

清理kubelet相关挂载点的命令如下:

1
2
3
4
5
6
7
8
# 停止Kubernetes的某一个Node节点
systemctl stop kubelet.service && systemctl stop docker.service

# 清理Kubelet的相关挂载点
awk '$2 ~ path {print $2}' path=/var/lib/kubelet /proc/mounts | xargs -r umount

# 恢复Kubernetes的某一个Node节点
systemctl start docker.service && systemctl start kubelet.service

参考资料:
https://github.com/kubernetes/kubernetes/blob/v1.11.0/cmd/kubeadm/app/cmd/reset.go