Kubernetes 볼륨 확장 기능을 사용하여 영구 블록 볼륨을 생성한 후 확장할 수 있습니다. TKG 서비스 클러스터는 오프라인 및 온라인 볼륨 확장을 지원합니다.
영구 볼륨 확장 정보
TKG 클러스터 환경에 나타나는 모든 스토리지 클래스는 기본적으로 allowVolumeExpansion
이 true
로 설정되어 있습니다. 이 매개 변수를 사용하면 오프라인 또는 온라인 볼륨의 크기를 수정할 수 있습니다.
볼륨이 노드 또는 포드에 연결되어 있지 않으면 오프라인으로 간주됩니다. 온라인 볼륨은 노드 또는 포드에서 사용할 수 있는 볼륨입니다.
볼륨 확장 기능에 대한 지원 수준은 vSphere 버전에 따라 다릅니다. 확장을 지원하는 적절한 버전으로 vSphere 환경을 업그레이드하는 경우 이전 버전의 vSphere에서 생성된 볼륨을 확장할 수 있습니다.
- 볼륨은 스토리지 할당량에 지정된 제한까지 확장할 수 있습니다. vSphere IaaS control plane는 영구 볼륨 할당 개체에 대한 연속적인 크기 조정 요청을 지원합니다.
- VMFS, vSAN, vSAN Direct, vVols 및 NFS를 포함한 모든 유형의 데이터스토어는 볼륨 확장을 지원합니다.
- 배포 또는 독립형 포드에 대한 볼륨 확장을 수행할 수 있습니다.
- Tanzu Kubernetes Grid 클러스터에서 정적으로 프로비저닝된 볼륨의 크기를 조절할 수 있습니다(볼륨에 연결된 스토리지 클래스가 있는 경우).
- StatefulSet의 일부로 생성된 볼륨은 확장할 수 없습니다.
- 볼륨을 지원하는 가상 디스크에 스냅샷이 있으면 크기를 조정할 수 없습니다.
- vSphere IaaS control plane는 인-트리(in-tree) 또는 마이그레이션된 볼륨에 대한 볼륨 확장을 지원하지 않습니다.
온라인 모드에서 영구 볼륨 확장
온라인 볼륨은 노드 또는 포드에서 사용할 수 있는 볼륨입니다. DevOps 엔지니어는 온라인 영구 블록 볼륨을 확장할 수 있습니다. Tanzu Kubernetes Grid 클러스터는 온라인 볼륨 확장을 지원합니다.
- 다음 명령을 사용하여 크기를 조정할 영구 볼륨 할당을 찾습니다.
이 예에서 볼륨이 사용하는 스토리지 크기는 1Gi입니다.
$ 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
- PVC에 패치를 적용하여 크기를 늘립니다. 예를 들어 크기를 2Gi로 늘립니다.
이 작업은 PVC와 연결된 볼륨에서 확장을 트리거합니다.
$ kubectl patch pvc block-pvc -p '{"spec": {"resources": {"requests": {"storage": "2Gi"}}}}' persistentvolumeclaim/block-pvc edited
- 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 Client를 사용하여 새 영구 볼륨 크기를 확인합니다.
Tanzu Kubernetes Grid 클러스터의 볼륨 상태 모니터링의 내용을 참조하십시오.
오프라인 모드에서 영구 볼륨 확장
볼륨이 노드 또는 포드에 연결되어 있지 않으면 오프라인으로 간주됩니다. Tanzu Kubernetes Grid 클러스터는 오프라인 볼륨 확장을 지원합니다.
- 기존 스토리지 클래스에 대한 PVC(영구 볼륨 할당)를 생성합니다.
이 예에서 요청된 스토리지의 크기는 1Gi입니다.
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: example-block-pvc spec: accessModes: - ReadWriteOnce resources: requests: storage: 1Gi storageClassName: example-block-sc
kubectl apply -f example-block-pvc.yaml
- PVC에 패치를 적용하여 크기를 늘립니다.
PVC가 노드에 연결되어 있지 않거나 포드에서 사용 중이면 다음 명령을 사용하여 PVC에 패치를 적용합니다. 이 예에서 요청된 스토리지 증가량은 2Gi입니다.
이 작업은 PVC와 연결된 볼륨에서 확장을 트리거합니다.kubectl patch pvc example-block-pvc -p '{"spec": {"resources": {"requests": {"storage": "2Gi"}}}}'
- 볼륨의 크기가 증가했는지 확인합니다.
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 크기가 포드에서 사용되지 않았기 때문에 변경되지 않았음을 보여줍니다.
kubectl describe 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
- PVC를 사용하려면 포드를 생성합니다.
포드에서 PVC를 사용하는 경우 파일 시스템이 확장됩니다.
- 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 Client를 사용하여 새 영구 볼륨 크기를 확인합니다.
Tanzu Kubernetes Grid 클러스터의 볼륨 상태 모니터링의 내용을 참조하십시오.