k8s迁移节点kubelet数据存储目录

简介

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

SOP操作流程

封锁节点

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

~# kubectl cordon <node>

节点的状态转变为“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 <node>

验证:
kubectl get pods -A -o wide |grep <node>   #观察Pod状态
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

寻花之梦~~

谢谢老板的支持和鼓励!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值