StorageClass の構成

Cassandra データベースにデータを保存する場合、ハイブリッド ランタイムは動的に作成された永続ボリュームを使用します。Cassandra を適切に構成するには、SSD(ソリッド ステート ドライブ)を基盤とする StorageClass の定義を構成する必要があります。

このトピックでは、SSD を使用する新しい StorageClass を作成し、それをデフォルト クラスにする方法について説明します。Cassandra が起動すると、このデフォルトの StorageClass が使用されます。

デフォルトの StorageClass を変更する

以下では、StorageClass を作成し、それをデフォルト クラスにする方法について説明します。詳細については、Kubernetes ドキュメントのデフォルトのストレージ クラスを変更するをご覧ください。

  1. 現在��デフォルトの StorageClass の名前を取得します。
    kubectl get sc

    次に例を示します。

    kubectl get sc
      NAME                  PROVISIONER            RECLAIMPOLICY
      VOLUMEBINDINGMODE     ALLOWVOLUMEEXPANSION   AGE
      premium-rwo           pd.csi.storage.gke.io  Delete
      WaitForFirstConsumer  true                   40m
      standard (default)    kubernetes.io/gce-pd   Delete
      Immediate             true                   40m
      standard-two          pd.csi.storage.gke.io  Delete
      WaitForFirstConsumer  true                   40m
    
  2. standard という StorageClass の詳細を確認します。タイプが pd-standard であることにご注意ください。
    kubectl describe sc standard

    次に例を示します。

    kubectl describe sc standard
      Name:                  standard
      IsDefaultClass:        Yes
      Annotations:           storageclass.beta.kubernetes.io/is-default-class=true
      Provisioner:           kubernetes.io/gce-pd
      Parameters:            type=pd-standard
      AllowVolumeExpansion:  <unset>
      MountOptions:          <none>
      ReclaimPolicy:         Delete
      VolumeBindingMode:     Immediate
      Events:                <none>
  3. storageclass.yaml という名前の新しいファイルを作成します。
  4. 次のコードをファイルに追加します。ここでは、新しいクラスの名前を 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
    
  5. 新しい StorageClass を Kubernetes クラスタに適用します。
    kubectl apply -f storageclass.yaml
  6. 次の 2 つのコマンドを実行して、デフォルトの StorageClass を変更します。
    kubectl patch storageclass standard \
      -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"}}}'
  7. 次のコマンドを実行して、新しいデフォルトの StorageClass が apigee-sc であることを確認します。
    kubectl get sc

    次に例を示します。

    kubectl get sc
      NAME                 PROVISIONER            RECLAIMPOLICY
      VOLUMEBINDINGMODE    ALLOWVOLUMEEXPANSION   AGE
      apigee-sc (default)  pd.csi.storage.gke.io  Delete
      WaitForFirstConsumer true                   67s
      premium-rwo          pd.csi.storage.gke.io  Delete
      WaitForFirstConsumer true                   49m
      standard             kubernetes.io/gce-pd   Delete
      Immediate            true                   49m
      standard-rwo         pd.csi.storage.gke.io  Delete
      WaitForFirstConsumer true                   49m