8.4. デフォルトストレージクラスの変更

次の手順を使用して、デフォルトのストレージクラスを変更します。

たとえば、gp3standard の 2 つのストレージクラスがあり、デフォルトのストレージクラスを gp3 から standard に変更する必要がある場合などです。

前提条件

  • クラスター管理者権限でクラスターにアクセスできる。

手順

デフォルトのストレージクラスを変更するには、以下を実行します。

  1. ストレージクラスを一覧表示します。

    $ oc get storageclass

    出力例

    NAME                 TYPE
    gp3 (default)        kubernetes.io/aws-ebs 1
    standard             kubernetes.io/aws-ebs

    1
    (default) はデフォルトのストレージクラスを示します。
  2. 目的のストレージクラスをデフォルトにします。

    目的のストレージクラスについて、次のコマンドを実行して storageclass.kubernetes.io/is-default-class アノテーションを true に設定します。

    $ oc patch storageclass standard -p '{"metadata": {"annotations": {"storageclass.kubernetes.io/is-default-class": "true"}}}'
    注記

    短期間であれば、複数のデフォルトのストレージクラスを使用できます。ただし、最終的には 1 つのデフォルトのストレージクラスのみが存在することを確認する必要があります。

    複数のデフォルトストレージクラスが存在する場合、デフォルトストレージクラス (pvc.spec.storageClassName =nil) を要求するすべての永続ボリューム要求 (PVC) は、そのストレージクラスのデフォルトステータスと管理者に関係なく、最後に作成されたデフォルトストレージクラスを取得します。アラートダッシュボードで、複数のデフォルトストレージクラス MultipleDefaultStorageClasses があるというアラートを受け取ります。

  3. 古いデフォルトストレージクラスからデフォルトのストレージクラス設定を削除します。

    古いデフォルトのストレージクラスの場合は、次のコマンドを実行して storageclass.kubernetes.io/is-default-class アノテーションの値を false に変更します。

    $ oc patch storageclass gp3 -p '{"metadata": {"annotations": {"storageclass.kubernetes.io/is-default-class": "false"}}}'
  4. 変更内容を確認します。

    $ oc get storageclass

    出力例

    NAME                 TYPE
    gp3                  kubernetes.io/aws-ebs
    standard (default)   kubernetes.io/aws-ebs