볼륨 확장 사용

Google Kubernetes Engine(GKE)에서는 영구 볼륨을 만든 후 Kubernetes 볼륨 확장 기능을 사용하여 간편하게 영구 볼륨 용량을 변경할 수 있습니다.

기본 요건

볼륨 확장에는 다음 기본 요건이 있습니다.

  • 크기를 조절하려는 볼륨이 CSI 드라이버에서 관리되는 경우:
    • GKE 클러스터 버전이 1.16 이상인지 확인합니다.
    • 스토리지 공급업체의 문서를 확인하여 CSI 드라이버가 볼륨 확장을 지원하는지 확인합니다(Compute Engine 영구 디스크의 경우 CSI 드라이버가 지원함).
  • 크기를 조절하려는 볼륨이 트리 내 볼륨 플러그인에서 관리되는 경우:
    • GKE 클러스터 버전이 1.11 이상인지 확인합니다. GKE 클러스터 버전 1.11~1.14는 트리 내 플러그인에서 관리되는 볼륨 확장을 지원합니다. 하지만 볼륨 확장을 완료하려면 볼륨을 사용하는 모든 Pod를 종료한 후 다시 만들어야 합니다.
    • 스토리지 공급업체의 문서를 확인하여 트리 내 볼륨 플러그인이 볼륨 확장을 지원하는지 확인합니다(Compute Engine 영구 디스크의 경우 트리 내 플러그인이 지원함).

볼륨 확장 사용

볼륨 확장을 사용하려면 다음 태스크를 수행합니다.

  1. StorageClass에 아직 allowVolumeExpansion: true 필드가 없으면 이 필드를 StorageClass에 추가합니다. 예를 들면 다음과 같습니다.

    apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
      name: standard
    provisioner: my.driver
    ...
    allowVolumeExpansion: true
    
  2. PersistentVolumeClaim의 spec.resources.requests.storage 필드를 수정하여 볼륨 용량 변경을 요청합니다. 예를 들어 다음 PVC를 30GiB 디스크에서 40GiB 디스크로 변경할 수 있습니다.

    수정 전:

     # pvc-demo.yaml
     apiVersion: v1
     kind: PersistentVolumeClaim
     metadata:
       name: pvc-demo
     spec:
       accessModes:
         - ReadWriteOnce
       resources:
         requests:
           storage: 30Gi
    

    수정 후:

     # pvc-demo.yaml
     apiVersion: v1
     kind: PersistentVolumeClaim
     metadata:
       name: pvc-demo
     spec:
       accessModes:
         - ReadWriteOnce
       resources:
         requests:
           storage: 40Gi
    
  3. PVC를 보고 변경사항을 확인합니다. PVC를 보려면 다음 명령어를 실행합니다.

    kubectl get pvc pvc-name -o yaml
    

    status.capacity 필드에 새 볼륨이 표시됩니다. 예를 들면 다음과 같습니다.

    ...
    spec:
      accessModes:
      - ReadWriteOnce
      resources:
        requests:
          storage: 40Gi
      storageClassName: standard
      volumeMode: Filesystem
      volumeName: pvc-078b7484-cc8d-4077-9bcb-2c17d8d4550c
    status:
      accessModes:
      - ReadWriteOnce
      capacity:
        storage: 40Gi
    ...
    

다음 단계