PVC扩容这里只介绍扩容文件共享型PVC和扩容块存储PVC:

一、扩容文件共享型PVC

特别说明:下面操作是基于之前的环境进行操作的,详细请点击---使用共享文件系统存储,这里就不重复演示部署环境了。

1.1 先决条件

1.k8s版本必须达到1.15+

2.PVC扩容需要开启ExpandCSIVolumes(新版本默认已开启)

[root@k8s-master01 ~]# kube-apiserver -h | grep ExpandCSIVolumes
                                                       ExpandCSIVolumes=true|false (BETA - default=true)

说明:如果 default 为 true 就不需要打开此功能,如果 default 为 false,需要开启该功能。

1.2 扩容步骤

1.在线编辑StorageClass,将 allowVolumeExpansion 设置为 true(新版 rook 默认为 true)

$ k edit sc rook-cephfs

扩容文件共享型PVC-1

注意:在生产环境建议更改yaml,而不是edit在线修改,这里只为做演示

2.修改pvc大小,从1g改为2g

先查看原来的PVC,观察到大小为1g

[root@k8s-master01 ~]# k get pvc
NAME              STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   AGE
nginx-share-pvc   Bound    pvc-b94bb9f8-f7e4-48cd-82be-db9dee6c451d   1Gi        RWX            rook-cephfs    116m

在线修改pvc请求资源大小为2g

$ k edit pvc nginx-share-pvc

扩容文件共享型PVC-2

注意:在生产环境建议更改yaml,而不是edit在线修改,这里只为做演示

3.修改完成继续查看pv和pvc,观察到pvc已实现在线扩容

[root@k8s-master01 ~]# k get pvc
NAME              STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   AGE
nginx-share-pvc   Bound    pvc-b94bb9f8-f7e4-48cd-82be-db9dee6c451d   2Gi        RWX            rook-cephfs    120m
[root@k8s-master01 ~]# k get pv
NAME                                       CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS   CLAIM                     STORAGECLASS   REASON   AGE
pvc-b94bb9f8-f7e4-48cd-82be-db9dee6c451d   2Gi        RWX            Delete           Bound    default/nginx-share-pvc   rook-cephfs             120m

4.当然我们也可以进入之前起的容器进行再一次验证,观察到可用大小为2g

[root@k8s-master01 ~]# k get po
NAME                            READY   STATUS      RESTARTS          AGE
web-679855cc-5jmxf              1/1     Running     0                 117m
web-679855cc-bl6kr              1/1     Running     0                 117m
web-679855cc-z24rx              1/1     Running     0                 117m

[root@k8s-master01 ~]# k exec -it web-679855cc-5jmxf -- sh
/ # df -Th
Filesystem           Type            Size      Used Available Use% Mounted on
...
...
10.0.56.222:6789,10.0.231.9:6789,10.0.108.212:6789:/volumes/csi/csi-vol-dcc035c6-83ec-48e1-a467-2881c6eaf429/689e5245-b3c8-4505-af45-00025c4691bc
                     ceph            2.0G         0      2.0G   0% /usr/share/nginx/html
...
...

二、扩容块存储PVC

特别说明:下面操作是基于之前的环境进行操作的,详细请点击---使用ceph块存储,这里就不重复演示部署环境了。

2.1 先决条件

1.k8s版本必须达到1.15+

2.PVC扩容需要开启ExpandCSIVolumes(新版本默认已开启)

[root@k8s-master01 ~]# kube-apiserver -h | grep ExpandCSIVolumes
                                                       ExpandCSIVolumes=true|false (BETA - default=true)

说明:如果 default 为 true 就不需要打开此功能,如果 default 为 false,需要开启该功能。

2.2 扩容步骤

1.在线编辑StorageClass,将 allowVolumeExpansion 设置为 true(新版 rook 默认为 true)

$ k edit sc rook-ceph-block

扩容块存储PVC-1

注意:在生产环境建议更改yaml,而不是edit在线修改,这里只为做演示

2.修改pvc大小,从5g改为8g

先查看原来的PVC,观察到大小为5g

[root@k8s-master01 examples]# k get pvc
NAME              STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS      AGE
mysql-pv-claim    Bound    pvc-f1f26550-43e5-4cc3-bf80-986ed5f7639f   5Gi        RWO            rook-ceph-block   4m5s
wp-pv-claim       Bound    pvc-004a8862-8e7d-49e8-8649-8b48e87956d1   5Gi        RWO            rook-ceph-block   4m5s

在线修改pvc请求资源大小为8g

$ k edit pvc mysql-pv-claim

扩容块存储PVC-2

$ k edit pvc wp-pv-claim

扩容块存储PVC-3

注意:在生产环境建议更改yaml,而不是edit在线修改,这里只为做演示

3.修改完成继续查看pv和pvc,观察到pvc已实现在线扩容

[root@k8s-master01 examples]# k get pvc
NAME              STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS      AGE
mysql-pv-claim    Bound    pvc-f1f26550-43e5-4cc3-bf80-986ed5f7639f   8Gi        RWO            rook-ceph-block   9m7s
wp-pv-claim       Bound    pvc-004a8862-8e7d-49e8-8649-8b48e87956d1   8Gi        RWO            rook-ceph-block   9m7s

[root@k8s-master01 examples]# k get pv
NAME                                       CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS   CLAIM                     STORAGECLASS      REASON   AGE
pvc-004a8862-8e7d-49e8-8649-8b48e87956d1   8Gi        RWO            Delete           Bound    default/wp-pv-claim       rook-ceph-block            9m34s
pvc-f1f26550-43e5-4cc3-bf80-986ed5f7639f   8Gi        RWO            Delete           Bound    default/mysql-pv-claim    rook-ceph-block            9m34s

4.当然我们也可以进入之前起的容器进行再一次验证,观察到可用大小为2g

[root@k8s-master01 ~]# k get po
NAME                            READY   STATUS      RESTARTS          AGE
wordpress-54f687fd7c-87wfv         1/1     Running     0               10m
wordpress-mysql-64c9849bd6-jjnzq   1/1     Running     0               10m

[root@k8s-master01 examples]# k exec -it wordpress-mysql-64c9849bd6-jjnzq  -- bash
Filesystem              Type     Size  Used Avail Use% Mounted on
overlay                 overlay   35G  9.9G   26G  29% /
tmpfs                   tmpfs     64M     0   64M   0% /dev
tmpfs                   tmpfs    3.9G     0  3.9G   0% /sys/fs/cgroup
/dev/mapper/centos-root xfs       35G  9.9G   26G  29% /etc/hosts
shm                     tmpfs     64M     0   64M   0% /dev/shm
/dev/rbd0               ext4     7.9G  139M  7.7G   2% /var/lib/mysql
tmpfs                   tmpfs    7.7G   12K  7.7G   1% /run/secrets/kubernetes.io/serviceaccount
tmpfs                   tmpfs    3.9G     0  3.9G   0% /proc/acpi
tmpfs                   tmpfs    3.9G     0  3.9G   0% /proc/scsi
tmpfs                   tmpfs    3.9G     0  3.9G   0% /sys/firmware

扩容块存储PVC-4