文章目录

简介SOP操作流程封锁节点停止kubelet/docker服务目录卸载数据备份新磁盘挂载数据还原启动kubelet/docker服务恢复调度

简介

默认k8s节点kubelet数据目录在/var/lib/kubelet,如果在部署前没有做好规划,其实默认就存储在系统盘/分区下了,这样会导致一个问题,如果数据量过大会导致kubelet服务异常,其次,系统盘下有一些系统服务引用,没有形成解耦,包括后期的容量扩容也会带来影响。所以一般数据存储目录在k8s层面,一定要提前做相关规划,至少要具备可灵活扩展性等。本文主要记录在前期没有做好规划之后,/var/lib/kubelet目前容量存储即将到一定的瓶颈期,需要快速进行迁移扩容工作。

SOP操作流程

封锁节点

暂停Node调度,使Node不可用,意思就是让该Node不接收新的pod调度。

~# kubectl cordon

节点的状态转变为“SchedulingDisabled” 说明调度不可用!

停止kubelet/docker服务

1、停kubelet

~# systemctl status kubelet.service

等待node load average 降下来之后[top或者htop监视]

2、停docker

docker ps |awk '{print $1}'|xargs docker stop

systemctl stop docker.service

目录卸载

卸载 /var/lib/kubelet/pods 之外目录

df -Th |grep /var/lib/kubelet/pods

umount /var/lib/kubelet/pods/*/volumes/kubernetes.io~*/*

数据备份

备份原挂载 /var/lib/kubelet中除pods目录外的数据 到 /var/lib/kubelet-old

mkdir /var/lib/kubelet-old

cd /var/lib/kubelet/

cp -rf !(pods) /var/lib/kubelet-old/

rm -rf /var/lib/kubelet/* #清理原目录

新磁盘挂载

建议用SSD类型磁盘

umount <新磁盘>

vim /etc/fstab

XXX /var/lib/kubelet ext4 defaults,noatime,barrier=0,commit=60 0 2

mount -a

数据还原

cp -rvf /var/lib/kubelet-old/* /var/lib/kubelet/

启动kubelet/docker服务

~# systemctl start kubelet.service

~# systemctl start docker.service

查看日志看是否有异常等信息,服务正常后恢复k8s 调度

恢复调度

取消Node暂停调度状态,使Node可以接收调度。

kubectl uncordon

验证:

kubectl get pods -A -o wide |grep #观察Pod状态

好文链接

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: