K8S的StorageClass使用节点本地LVM逻辑卷怎么进行PVC扩容
背景
原本是pvc分配的空间用完了导致服务报错,结果我看pvc就10g我直接扩到100g,结果发现这个pvc居然使用的是主机自己的LVM逻辑卷。
kubectl get pvc -n logging
kubectl get pv -n logging
kubectl get storageclass -n logging
吃了不熟悉环境的亏啊,好巧不巧的是这个LVM没那么多空间,K8S又原生不支持缩容,结果服务报错原本能访问变成不能访问,得。
然后就是基于此问题解决。
原本pv满还可以通过复制数据到其他pv上处理,或者注意点轻松扩容,现在这情况只能开搞了。
处理过程
通过pod落点看到是主机lx25k21sla2
在lx25k21sla2
上添加个空盘,我这里是/dev/sdc,搞完查看
lsblklsblk /dev/sdc
将新硬盘初始化为物理卷(PV),用于扩展卷组
# 初始化新硬盘为LVM物理卷(会清空硬盘数据,确认无重要数据)
pvcreate /dev/sdc# 验证物理卷是否创建成功
pvs | grep sdc
# 预期输出:/dev/sdc vg-data lvm2 a-- 800.00g 0
接着来扩展卷组vg-data,将新创建的 PV(/dev/sdc)添加到 vg-data 卷组,增加卷组总容量
先看下这个卷组
vgdisplay vg-data
# 扩展vg-data卷组,加入新物理卷/dev/sdc
vgextend vg-data /dev/sdc# 验证卷组扩容结果
vgdisplay vg-data
接着来扩展目标逻辑卷(LV),这个卷的ID就是在前面日志里报错的那个,看下pvc就能确认
# 扩展LV至目标大小(如50GiB,根据需求调整)
lvextend -L 101Gi /dev/vg-data/disk-ca5132b2-bbe7-4bab-be1a-df491232e004# 若需使用全部空闲空间,可替换为:
# lvextend -l +100%FREE /dev/vg-data/disk-ca5132b2-bbe7-4bab-be1a-df491232e004
我这里最后扩到150G,然后看下扩容结果是否生效
lvs | grep "disk-XXXID"
接着执行下扩展新增硬盘的文件系统
# 先确认文件系统类型
blkid /dev/vg-data/disk-ca5132b2-bbe7-4bab-be1a-df491232e004# 若为ext4:
resize2fs /dev/vg-data/disk-ca5132b2-bbe7-4bab-be1a-df491232e004# 若为xfs
# xfs_growfs /dev/vg-data/disk-ca5132b2-bbe7-4bab-be1a-df491232e004
到这里就扩容完成了,等个几分钟k8s那边会自动识别并且扩容。
服务状态异常的话delete pod重新拉起个即可恢复服务。