StorageClass の構成

Cassandra データベースでは、ハイブリッド ランタイムは動的に作成された永続ボリュームを使用して、データを保存します。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
    
  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