티스토리 뷰

클라우드/쿠버네티스

PVC Extend

ybchoi 2022. 5. 24. 20:48

PVC(PV)의 용량이 부족할 경우 pvc를 확장 할수 있다

일반적으로 이 기능은 스토리지에서 지원해야 하며 ebs의 경우 기본 지원함

스토리지 클래스 내에 allowVolumExpansion이 true상태여야만 한다(기본값에는 아래값 없으므로 edit로 수정하여주면 됨)

allowVolumeExpansion: true
kubectl get pvc -n scylla
NAME                                         STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   AGE
data-pet-i-pet-i-scylla-pet-i-scylla-dev-1   Bound    pvc-02f89b78-be9e-4e6e-bf54-8abfa6e86978   5Gi        RWO            gp2            16h
kubectl exec -it -n scylla pet-i-pet-i-scylla-pet-i-scylla-dev-1 -- df -h
Defaulted container "scylla" out of: scylla, scylla-manager-agent, sidecar-injection (init)
Filesystem      Size  Used Avail Use% Mounted on
overlay          50G  4.9G   46G  10% /
tmpfs            64M     0   64M   0% /dev
tmpfs           7.8G     0  7.8G   0% /sys/fs/cgroup
/dev/nvme0n1p1   50G  4.9G   46G  10% /tmp/coredumps
tmpfs           7.8G     0  7.8G   0% /mnt/scylla-client-config
shm              64M     0   64M   0% /dev/shm
/dev/nvme2n1    4.8G   87M  4.7G   2% /var/lib/scylla
tmpfs           7.8G   12K  7.8G   1% /run/secrets/kubernetes.io/serviceaccount
tmpfs           7.8G     0  7.8G   0% /proc/acpi
tmpfs           7.8G     0  7.8G   0% /sys/firmware

확장 대상 pvc와 파드는 위내용과 같다

현재 pvc는 5g이며 파드내 /var/lib/scylla에 마운트 되어있는데 이것을 10G로 확장 해봄

kubectl patch -n scylla pvc/data-pet-i-pet-i-scylla-pet-i-scylla-dev-1 -p '{"spec":{"resources":{"requests":{"storage":"10Gi"}}}}}'
persistentvolumeclaim/data-pet-i-pet-i-scylla-pet-i-scylla-dev-1 patched

위와 같이 patch로 10g로 확장함(에디트로해도 무관)

ebs의 경우 확장하는데 시간이 좀 소요되며 용량이 크면 클수록 이 시간은 오래 걸린다

event확인

Type                      Status  LastProbeTime                     LastTransitionTime                Reason  Message
  ----                      ------  -----------------                 ------------------                ------  -------
  FileSystemResizePending   True    Mon, 01 Jan 0001 00:00:00 +0000   Wed, 23 Mar 2022 10:20:20 +0900           Waiting for user to (re-)start a pod to finish file system resize of volume on node.

Events:
  Type    Reason                      Age   From     Message
  ----    ------                      ----  ----     -------
  Normal  FileSystemResizeSuccessful  10s   kubelet  MountVolume.NodeExpandVolume succeeded for volume "pvc-02f89b78-be9e-4e6e-bf54-8abfa6e86978"

완료시

kubectl get pvc/data-pet-i-pet-i-scylla-pet-i-scylla-dev-1 -n scylla
NAME                                         STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   AGE
data-pet-i-pet-i-scylla-pet-i-scylla-dev-1   Bound    pvc-02f89b78-be9e-4e6e-bf54-8abfa6e86978   10Gi       RWO            gp2            16h

위와같이 확장 된것을 확인 할 수있으며

kubectl exec -it -n scylla pet-i-pet-i-scylla-pet-i-scylla-dev-1 -- df -h
Defaulted container "scylla" out of: scylla, scylla-manager-agent, sidecar-injection (init)
Filesystem      Size  Used Avail Use% Mounted on
overlay          50G  4.9G   46G  10% /
tmpfs            64M     0   64M   0% /dev
tmpfs           7.8G     0  7.8G   0% /sys/fs/cgroup
/dev/nvme0n1p1   50G  4.9G   46G  10% /tmp/coredumps
tmpfs           7.8G     0  7.8G   0% /mnt/scylla-client-config
shm              64M     0   64M   0% /dev/shm
/dev/nvme2n1    9.8G   89M  9.7G   1% /var/lib/scylla
tmpfs           7.8G   12K  7.8G   1% /run/secrets/kubernetes.io/serviceaccount
tmpfs           7.8G     0  7.8G   0% /proc/acpi
tmpfs           7.8G     0  7.8G   0% /sys/firmware

파드에도 별다른 조작없이 적용된것을 확인 할 수 있다

'클라우드 > 쿠버네티스' 카테고리의 다른 글

EKS의 CNI비교 및 선택  (0) 2022.05.24
secret data 수동으로 base64인코딩시 주의점  (0) 2022.05.24
Pod 스케쥴링 전략  (0) 2022.05.24
Configmap과 Secret  (0) 2022.05.24
Internal LoadBalancer 생성하기  (0) 2022.05.24
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함