Cassandra データベースは、動的に作成された永続ボリュームを使用してデータを保存します。Apigee でデータベースを適切に機能させるには、ソリッド ステート ドライブ(SSD)を基盤とする StorageClass の定義を構成する必要があります。
現在 Cassandra 用に SSD が設定されていない場合、このトピックでは SSD を使用する新しい StorageClass を作成し、それをデフォルト クラスにする方法について説明します。Cassandra が起動すると、このデフォルトの StorageClass が使用されます。
デフォルトの StorageClass を変更する
以下では、StorageClass を作成し、それをデフォルト クラスにする方法について説明します。詳細については、Kubernetes ドキュメントのデフォルトのストレージ クラスを変更するをご覧ください。
- 現在のデフォルトの StorageClass の名前を取得します。
kubectl get sc
次に例を示します。
kubectl get sc
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE premium-rwo pd.csi.storage.gke.io Delete WaitForFirstConsumer true 15h standard kubernetes.io/gce-pd Delete Immediate true 15h standard-rwo (default) pd.csi.storage.gke.io Delete WaitForFirstConsumer true 15h standard-rwo
という StorageClass の詳細を確認します。タイプがpd-balanced
であることにご注意ください。kubectl describe sc standard-rwo
次に例を示します。
kubectl describe sc standard-rwo
Name: standard-rwo IsDefaultClass: Yes Annotations: components.gke.io/layer=addon,storageclass.kubernetes.io/is-default-class=false Provisioner: pd.csi.storage.gke.io Parameters: type=pd-balanced AllowVolumeExpansion: True MountOptions: <none> ReclaimPolicy: Delete VolumeBindingMode: WaitForFirstConsumer Events: <none>
storageclass.yaml
という名前の新しいファイルを作成します。- 次のコードをファイルに追加します。ここでは、新しいクラスの名前を
apigee-sc
にしています。クラスには任意の名前を付けることができます。また、ストレージ タイプをpd-ssd
にしています。--- kind: StorageClass apiVersion: storage.k8s.io/v1 metadata: name: "apigee-sc" provisioner: pd.csi.storage.gke.io parameters: type: pd-ssd replication-type: none volumeBindingMode: WaitForFirstConsumer allowVolumeExpansion: true
- 新しい StorageClass を Kubernetes クラスタに適用します。
kubectl apply -f storageclass.yaml
- 次の 2 つのコマンドを実行して、デフォルトの StorageClass を変更します。
kubectl patch storageclass standard-rwo \ -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"false"}}}'
kubectl patch storageclass apigee-sc \ -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'
- 次のコマンドを実行して、新しいデフォルトの StorageClass が
apigee-sc
であることを確認します。kubectl get sc
次に例を示します。
kubectl get sc
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE apigee-sc (default) kubernetes.io/gce-pd Delete WaitForFirstConsumer true 14h premium-rwo pd.csi.storage.gke.io Delete WaitForFirstConsumer true 15h standard kubernetes.io/gce-pd Delete Immediate true 15h standard-rwo pd.csi.storage.gke.io Delete WaitForFirstConsumer true 15h