이 프로세스를 수행하면 더 많은 스토리지를 제공하기 위해 새 노드를 만들지 않고도 Apigee Hybrid Cassandra 데이터베이스에서 사용하는 영구 볼륨을 확장하여 스토리지 추가 요구사항을 충족할 수 있습니다.
개요
Apigee Hybrid cassandra
구성요소는 영구 볼륨을 사용하여 데이터를 저장합니다. 영구 볼륨 크기는 설치 및 초기 구성 중에 정의됩니다. 이 초기 스토리지 크기의 값은 변경할 수 없습니다. 따라서 클러스터에 추가된 새 노드는 동일한 영구 볼륨 크기를 사용합니다.
영구 볼륨 신청에서 직접 크기를 변경하여 기존 영구 볼륨 크기를 늘릴 수 있습니다. 새 노드는 계속 보다 작은 초기 영구 볼륨 크기를 계속 사용합니다.
하이브리드 Cassandra 데이터베이스가 저장용량 한도에 가까워지면 이 절차에 따라 기존 영구 볼륨을 확장하고 새 노드에서도 영구 볼륨을 확장하도록 할 수 있습니다.
Cassandra 영구 볼륨 확장
- 볼륨 크기를 원하는 크기로 업데이트합니다.
kubectl -n apigee edit pvc
- 업데이트된 볼륨 용량을 확인합니다.
kubectl get pvc -n apigee
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE cassandra-data-apigee-cassandra-default-0 Bound pvc-92234ba7-941b-4dab-82c6-8a5288a2c8d4 100Gi RWO standard 21m cassandra-data-apigee-cassandra-default-1 Bound pvc-6be911fc-91f7-465d-a02e-933428ee10b2 100Gi RWO standard 20m cassandra-data-apigee-cassandra-default-2 Bound pvc-14ba34e4-fd5c-4d59-8413-a331dcad3404 100Gi RWO standard 19m
- 새 스토리지 크기로 statefulset를 백업, 삭제, 재생성합니다. 다음 명령어는 현재 Cassandra 구성을 캡처하는 데 사용할 수 있는
apigee-cassandra-default.yaml
구성 파일을 만듭니다. 그런 다음 이 구성을 수정하여 적용합니다.kubectl -n apigee get sts apigee-cassandra-default -o yaml > apigee-cassandra-default.yaml
kubectl -n apigee delete sts --cascade=orphan apigee-cassandra-default
delete
작업이 완료되었는지 확인합니다.kubectl get sts -n apigee
출력은 다음과 같이 표시됩니다.
No resources found in apigee namespace.
apigee-cassandra-default.yaml
파일의 스토리지 크기를 새 스토리지 크기로 업데이트합니다.overrides.yaml
에 적용하려는 크기와 일치해야 합니다. 예를 들면 다음과 같습니다.resources: requests: storage: 100Gi
- 업데이트된 스토리지 크기로 statefulset 구성을 다시 적용합니다.
kubectl apply -f apigee-cassandra-default.yaml
- statefulset가 올바르게 다시 생성되었는지 확인합니다.
kubectl get sts -n apigee
다음과 비슷한 결과가 출력됩니다.
NAME READY AGE apigee-cassandra-default 3/3 6m56s
- 재정의 파일을 pvc를 수정할 때 지정한 새 볼륨 크기로 업데이트합니다.
cassandra: storage: capacity: 100Gi
- 클러스터에 업데이트된 구성을 적용합니다.
Helm
helm upgrade datastore apigee-datastore/ \ --namespace apigee \ --atomic \ -f OVERRIDES_FILE.yaml
apigeectl
$APIGEECTL_HOME/apigeectl apply datastore -f OVERRIDES_FILE.yaml
Parsing file: config/values.yaml Parsing file: overrides/overrides.yaml cleansing older AD's (v1alpha1) istio resources... Invoking "kubectl apply" with YAML config... apigeedatastore.apigee.cloud.google.com/apigee-cassandra unchanged
- 새로 만든 STS에 업데이트된 저장용량 크기가 있는지 확인합니다.
kubectl get sts -n apigee apigee-cassandra -o yaml |grep storage
storage: 100Gi
-
C* pod 데이터 볼륨이 새 크기로 업데이트되었는지 확인합니다.
kubectl exec -n apigee -it apigee-cassandra-default-0 -- df -h|grep "/opt/apigee/data"
/dev/sdb 99G 69M 99G 1% /opt/apigee/data