このプロセスでは、Apigee ハイブリッド Cassandra データベースで使用される永続ボリュームを拡張することによって、ストレージ容量増加のニーズに対応できます。ストレージ容量を増やすためだけに新しいノードを作成する必要はありません。
概要
Apigee ハイブリッド 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
apigee-system
Namespace 内のapigee-controller-manager
Deployment のレプリカを0
に設定します。kubectl get deployments -n apigee-system
NAME READY UP-TO-DATE AVAILABLE AGE apigee-controller-manager 1/1 1 1 28m
kubectl edit deployments -n apigee-system apigee-controller-manager
kubectl get deployments -n apigee-system
NAME READY UP-TO-DATE AVAILABLE AGE apigee-controller-manager 0/0 0 0 30m
- 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=false 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
- 更新された構成をクラスタに適用します。
../apigeectl apply --datastore -f overrides/overrides.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
- コントローラの Deployment レプリカを更新し、以前の状態(
`1`
)にします。kubectl edit deployments -n apigee-system apigee-controller-manager
- 新しく作成された 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