我们使用的是ceph rbd ,结合kubernetes 部署的harbor 镜像仓库,随着使用空间增长,rbd 需要进行扩容,在不停服务的情况下,我们在线对ceph rbd 进行了扩容操作,当然,操作前做好备份,具体步骤如下:
1、查询pv对应的 rbd image
kubectl get pv pvc-name -o yaml |grep image
例如: kubernetes-dynamic-pvc-0fc6b77a-ac27-11e8-ae7c-0a580af40302
2、获取使用改pv的 pod 所在物理机节点:
kubectl get pod harbor-harbor-database-0 -o wide
NAME READY STATUS RESTARTS AGE IP NODE
harbor-harbor-database-0 1/1 Running 0 54m 10.244.1.130 vm102
3、查看 rbd 镜像信息:
#rbd info kubernetes-dynamic-pvc-0fc6b77a-ac27-11e8-ae7c-0a580af40302
rbd image 'kubernetes-dynamic-pvc-0fc6b77a-ac27-11e8-ae7c-0a580af40302':
size 8192 MB in 2048 objects
order 22 (4096 kB objects)
block_name_prefix: rbd_data.62226b8b4567
format: 2
features: layering
flags:
create_timestamp: Thu Aug 30 15:34:00 2018
#rbd disk-usage kubernetes-dynamic-pvc-0fc6b77a-ac27-11e8-ae7c-0a580af40302
warning: fast-diff map is not enabled for kubernetes-dynamic-pvc-0fc6b77a-ac27-11e8-ae7c-0a580af40302. operation may be slow.
NAME PROVISIONED USED
kubernetes-dynamic-pvc-0fc6b77a-ac27-11e8-ae7c-0a580af40302 8192M 676M
4、修改镜像大小
rbd resize --image kubernetes-dynamic-pvc-0fc6b77a-ac27-11e8-ae7c-0a580af40302 --size 40960
5、登录 pod所在物理机,查询 pv 对应的挂载点:
df -h|grep rbd
/dev/rbd0 4.0G 700M 3.3G 18% /var/lib/kubelet/plugins/kubernetes.io/rbd/mounts/rbd-image-kubernetes-dynamic-pvc-0e294e02-acf9-11e8-ae7c-0a580af40302
6、更新大小
blockdev --getsize64 /dev/rbd0
resize2fs /dev/rbd0
此时 ,登录到pod ,可以看到pv卷已经扩容完成。
如果不行,则可以考虑重启pod。