StorageClass の構成

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

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

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

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

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

    次に例を示します。

    kubectl get sc
      NAME                 PROVISIONER            AGE
      standard (default)   kubernetes.io/gce-pd   98d
    
  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: kubernetes.io/gce-pd
    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            AGE
      apigee-sc (default)  kubernetes.io/gce-pd   1d
      standard             kubernetes.io/gce-pd   98d