# k8s集群中Node磁盘爆满如何处理
# 移出Node节点
- 首先从k8s集群中把该Node节点封锁、然后驱逐该Node节点上承载的Pod
#获取节点列表
kubectl get nodes
#封锁node,不让调度,驱逐和排空pod
kubectl drain 10.1.2.2 --delete-local-data --ignore-daemonsets --force
--delete-local-data
:即使pod使用了emptyDir也删除
--ignore-daemonsets
:忽略DaemonSet创建的pod,以及其它强守护进程类型的pod,只驱逐业务pod(不知道描述的对不对,大致上是这个意思)
--force
:不加force参数只会删除该NODE上由ReplicationController, ReplicaSet, DaemonSet,StatefulSet or Job创建的Pod,加了后还会删除’裸奔的pod’(没有绑定到任何replication controller)
# 重启Node上的docker服务
- Node节点封锁成功、且上面的Pod也驱逐成功后,登录这台Node节点服务器上,执行如下命令
ssh root@10.1.2.2
systemctl restart dockerd.service
systemctl status dockerd.service
重启完成后,磁盘中临时被占用的数据和缓存就会被释放,此时磁盘就恢复正常了
# 重新让Node节点投产
- 为Node解封允许k8s集群可以调度该Node
kubectl uncordon 10.1.2.2