DevOps 엔지니어는 생성 후 영구 블록 볼륨을 확장할 수 있습니다. vSphere IaaS control plane에서 두 가지 유형의 클러스터 즉, 감독자Tanzu Kubernetes Grid가 모두 오프라인 및 온라인 볼륨 확장을 지원합니다.

참고: 영구 블록 볼륨만 확장할 수 있습니다. 현재 vSphere IaaS control plane는 ReadWriteMany 볼륨에 대한 볼륨 확장을 지원하지 않습니다.

vSphere IaaS control plane 환경에 나타나는 모든 스토리지 클래스는 기본적으로 allowVolumeExpansiontrue로 설정되어 있습니다. 이 매개 변수를 사용하면 오프라인 또는 온라인 볼륨의 크기를 수정할 수 있습니다.

볼륨이 노드 또는 포드에 연결되어 있지 않으면 오프라인으로 간주됩니다. 온라인 볼륨은 노드 또는 포드에서 사용할 수 있는 볼륨입니다.

볼륨 확장 기능에 대한 지원 수준은 vSphere 버전에 따라 다릅니다. 확장을 지원하는 적절한 버전으로 vSphere 환경을 업그레이드하는 경우 이전 버전의 vSphere에서 생성된 볼륨을 확장할 수 있습니다.

볼륨을 확장할 때는 다음 사항에 유의하십시오.
  • 볼륨은 스토리지 할당량에 지정된 제한까지 확장할 수 있습니다. vSphere IaaS control plane는 영구 볼륨 할당 개체에 대한 연속적인 크기 조정 요청을 지원합니다.
  • VMFS, vSAN, vSAN Direct, vVols 및 NFS를 포함한 모든 유형의 데이터스토어는 볼륨 확장을 지원합니다.
  • 배포 또는 독립형 포드에 대한 볼륨 확장을 수행할 수 있습니다.
  • 감독자Tanzu Kubernetes Grid 클러스터에서 정적으로 프로비저닝된 볼륨의 크기를 조절할 수 있습니다(볼륨에 연결된 스토리지 클래스가 있는 경우).
  • StatefulSet 정의를 사용할 때는 StatefulSet의 일부로 생성된 볼륨을 확장할 수 없습니다. 현재 Kubernetes는 이 기능을 지원하지 않습니다. 그 결과 StatefulSet 정의에서 스토리지 크기를 늘려 볼륨을 확장하려는 시도가 실패합니다.
  • 볼륨을 지원하는 가상 디스크에 스냅샷이 있으면 크기를 조정할 수 없습니다.
  • vSphere IaaS control plane는 인-트리(in-tree) 또는 마이그레이션된 볼륨에 대한 볼륨 확장을 지원하지 않습니다.

오프라인 모드에서 영구 볼륨 확장

볼륨이 노드 또는 포드에 연결되어 있지 않으면 오프라인으로 간주됩니다. 두 가지 유형의 클러스터 즉, 감독자Tanzu Kubernetes Grid 클러스터는 모두 오프라인 볼륨 확장을 지원합니다.

사전 요구 사항

vSphere 환경을 오프라인 볼륨 확장을 지원하는 적절한 버전으로 업그레이드해야 합니다.

프로시저

  1. 스토리지 클래스를 사용하여 PVC(영구 볼륨 할당)를 생성합니다.
    1. 예를 들어 다음 YAML 매니페스트를 사용하여 PVC를 정의합니다.
      이 예에서 요청된 스토리지의 크기는 1Gi입니다.
      apiVersion: v1
      kind: PersistentVolumeClaim
      metadata:
        name: example-block-pvc
      spec:
        accessModes:
        - ReadWriteOnce
        resources:
          requests:
            storage: 1Gi
        storageClassName: example-block-sc
    2. Kubernetes 클러스터에 PVC를 적용합니다.
      kubectl apply -f example-block-pvc.yaml 
  2. PVC에 패치를 적용하여 크기를 늘립니다.
    PVC가 노드에 연결되어 있지 않거나 포드에서 사용 중이면 다음 명령을 사용하여 PVC에 패치를 적용합니다. 이 예에서 요청된 스토리지 증가량은 2Gi입니다.
    kubectl patch pvc example-block-pvc -p '{"spec": {"resources": {"requests": {"storage": "2Gi"}}}}'
    이 작업은 PVC와 연결된 볼륨에서 확장을 트리거합니다.
  3. 볼륨의 크기가 증가했는지 확인합니다.
    kubectl get pv
    NAME                                       CAPACITY ACCESS MODES RECLAIM POLICY STATUS   CLAIM                       STORAGECLASS           REASON AGE
    pvc-9e9a325d-ee1c-11e9-a223-005056ad1fc1   2Gi           RWO         Delete     Bound    default/example-block-pvc   example-block-sc              6m44s
    참고: PVC의 크기는 포드에서 PVC가 사용될 때까지 변경되지 않은 상태로 유지됩니다.
    다음 예는 PVC 크기가 변경되지 않았음을 보여 줍니다. PVC를 설명하는 경우 PVC에 적용된 FilesystemResizePending 조건을 확인할 수 있습니다.
    kubectl get pvc
    NAME                STATUS VOLUME                                     CAPACITY ACCESS MODES   STORAGECLASS       AGE
    example-block-pvc   Bound  pvc-9e9a325d-ee1c-11e9-a223-005056ad1fc1   1Gi           RWO       example-block-sc   6m57s
  4. PVC를 사용하려면 포드를 생성합니다.
    포드에서 PVC를 사용하는 경우 파일 시스템이 확장됩니다.
  5. PVC의 크기가 수정되었는지 확인합니다.
    kubectl get pvc
    NAME                STATUS VOLUME                                    CAPACITY ACCESS MODES STORAGECLASS     AGE
    example-block-pvc   Bound  pvc-24114458-9753-428e-9c90-9f568cb25788   2Gi         RWO      example-block-sc 2m12s
    FilesystemResizePending 조건이 PVC에서 제거되었습니다. 볼륨 확장이 완료되었습니다.

다음에 수행할 작업

vSphere 관리자는 vSphere Client에서 새 볼륨 크기를 볼 수 있습니다. vSphere Client에서 영구 볼륨 모니터링의 내용을 참조하십시오.

온라인 모드에서 영구 볼륨 확장

온라인 볼륨은 노드 또는 포드에서 사용할 수 있는 볼륨입니다. DevOps 엔지니어는 온라인 영구 블록 볼륨을 확장할 수 있습니다. 두 가지 유형의 클러스터 즉, 감독자Tanzu Kubernetes Grid 클러스터는 모두 온라인 볼륨 확장을 지원합니다.

사전 요구 사항

vSphere 환경을 온라인 볼륨 확장을 지원하는 적절한 버전으로 업그레이드해야 합니다.

프로시저

  1. 크기를 조정할 영구 볼륨 할당을 찾습니다.
    $ kubectl get pv,pvc,pod
    NAME                                                        CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS      CLAIM               STORAGECLASS   REASON   AGE
    persistentvolume/pvc-5cd51b05-245a-4610-8af4-f07e77fdc984   1Gi        RWO            Delete           Bound       default/block-pvc   block-sc                4m56s
     
    NAME                              STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   AGE
    persistentvolumeclaim/block-pvc   Bound    pvc-5cd51b05-245a-4610-8af4-f07e77fdc984   1Gi        RWO            block-sc       5m3s
     
    NAME            READY   STATUS    RESTARTS   AGE
    pod/block-pod   1/1     Running   0          26s

    볼륨이 사용하는 스토리지 크기는 1Gi입니다.

  2. PVC에 패치를 적용하여 크기를 늘립니다.
    예를 들어 크기를 2Gi로 늘립니다.
    $ kubectl patch pvc block-pvc -p '{"spec": {"resources": {"requests": {"storage": "2Gi"}}}}'
    persistentvolumeclaim/block-pvc edited
    이 작업은 PVC와 연결된 볼륨에서 확장을 트리거합니다.
  3. PVC와 PV의 크기가 모두 증가했는지 확인합니다.
    $ kubectl get pvc,pv,pod
    NAME                              STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   AGE
    persistentvolumeclaim/block-pvc   Bound    pvc-5cd51b05-245a-4610-8af4-f07e77fdc984   2Gi        RWO            block-sc       6m18s
     
    NAME                                                        CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS      CLAIM               STORAGECLASS   REASON   AGE
    persistentvolume/pvc-5cd51b05-245a-4610-8af4-f07e77fdc984   2Gi        RWO            Delete           Bound       default/block-pvc   block-sc                6m11s
     
    NAME            READY   STATUS    RESTARTS   AGE
    pod/block-pod   1/1     Running   0          101s

다음에 수행할 작업

vSphere 관리자는 vSphere Client에서 새 볼륨 크기를 볼 수 있습니다. vSphere Client에서 영구 볼륨 모니터링의 내용을 참조하십시오.