1개의 데이터베이스 리소스에 맞게 스토리지 크기 조정
전제 조건
스토리지 클래스는 크기 조정을 지원해야 함
영구 볼륨이 사용하는 StorageClass 및 볼륨 플러그인 제공자 가 크기 조정을 지원하는지 확인합니다.
kubectl patch storageclass/<my-storageclass> --type='json' \ -p='[{"op": "add", "path": "/allowVolumeExpansion", "value": true }]'
크기 조정을 지원하는 StorageClass가 없는 경우 Kubernetes 관리자에게 도움을 요청하세요.
절차
1
영구 사용자 지정 리소스 생성 또는 식별 .
기존 데이터베이스 리소스를 사용하거나 영구 저장으로 새 데이터베이스 리소스를 만듭니다. 영구 볼륨이 Running
상태가 될 때까지 기다립니다.
예시
영구 저장이 있는 데이터베이스 리소스에는 다음이 포함됩니다.
1 apiVersion: mongodb.com/v1 2 kind: MongoDB 3 metadata: 4 name: <my-replica-set> 5 spec: 6 members: 3 7 version: "4.4.0" 8 project: my-project 9 credentials: my-credentials 10 type: ReplicaSet 11 podSpec: 12 persistence: 13 single: 14 storage: "1Gi"
2
리소스가 제공하는 데이터베이스에 데이터를 삽입합니다.
Kubernetes 클러스터에서
mongo
을(를) 시작합니다.kubectl exec -it <my-replica-set>-0 \ /var/lib/mongodb-mms-automation/mongodb-linux-x86_64-4.4.0/bin/mongo test
데이터베이스에 데이터를 삽입합니다.<my-replica-set>:PRIMARY> use test switched to db test <my-replica-set>:PRIMARY> db.tmp.insertOne({"foo":"bar"}) { "acknowledged" : true, "insertedId" : ObjectId("61128cb4a783c3c57ae5142d") }
3
각 지속성 볼륨을 패치합니다.
전체 복제본 세트에 대해 다음 명령을 실행합니다.
kubectl patch pvc/"data-<my-replica-set>-0" -p='{"spec": {"resources": {"requests": {"storage": "2Gi"}}}}' kubectl patch pvc/"data-<my-replica-set>-1" -p='{"spec": {"resources": {"requests": {"storage": "2Gi"}}}}' kubectl patch pvc/"data-<my-replica-set>-2" -p='{"spec": {"resources": {"requests": {"storage": "2Gi"}}}}'
각 영구 볼륨 클레임 이 발생할 때까지 기다립니다. 다음과 같은 조건에 도달합니다.
- lastProbeTime: null lastTransitionTime: "2019-08-01T12:11:39Z" message: Waiting for user to (re-)start a pod to finish file system resize of volume on node. status: "True" type: FileSystemResizePending
4
StatefulSet를 제거합니다.
참고
이 단계에서는 StatefulSet 만. pod는 변경되지 않고 계속 실행됩니다.
StatefulSet 삭제 리소스.
kubectl delete sts --cascade=false <my-replica-set>
5
데이터베이스 리소스를 새 스토리지 값으로 업데이트합니다.
디스크 크기를 업데이트합니다. 원하는 텍스트 편집기를 열고 다음 예시와 유사하게 변경합니다.
예시
복제본 세트의 디스크 크기를 2GB로 업데이트하려면 데이터베이스 리소스 사양에서
storage
값을 변경합니다.1 apiVersion: mongodb.com/v1 2 kind: MongoDB 3 metadata: 4 name: <my-replica-set> 5 spec: 6 members: 3 7 version: "4.4.0" 8 project: my-project 9 credentials: my-credentials 10 type: ReplicaSet 11 podSpec: 12 persistence: 13 single: 14 storage: "2Gi" StatefulSet 다시 만들기 리소스를 새 볼륨 크기로 변경합니다.
kubectl apply -f my-replica-set-vol.yaml 이 StatefulSet가
Running
상태를 달성할 때까지 기다립니다.
6
7
업데이트된 영구 볼륨 클레임 에 데이터가 있는지 확인합니다.
영구 볼륨 이 단계 에서 삽입한 데이터는 Persistent 2 Volumes 에 저장된 데이터베이스에서 찾을 수 있습니다.:
kubectl exec -it <my-replica-set>-1 \ /var/lib/mongodb-mms-automation/mongodb-linux-x86_64-4.4.0/bin/mongo
<my-replica-set>:PRIMARY> use test switched to db test <my-replica-set>:PRIMARY> db.tmp.count() 1