9.4. デフォルトストレージクラスの変更
クラスターのデフォルトのストレージクラスを変更する方法を学びます。たとえば、デフォルトのステータスを gp3 から standard に再割り当てします。
前提条件
- クラスター管理者権限でクラスターにアクセスできる。
手順
ストレージクラスを一覧表示します。
$ oc get storageclass出力例
NAME TYPE gp3 (default) ebs.csi.aws.com standard ebs.csi.aws.com(デフォルト)は、デフォルトのストレージクラスを示します。必要なストレージクラスをデフォルトに設定します。
必要なストレージクラスについては、以下のコマンドを実行して
storageclass.kubernetes.io/is-default-classアノテーションをtrueに設定してください。$ oc patch storageclass standard -p '{"metadata": {"annotations": {"storageclass.kubernetes.io/is-default-class": "true"}}}'注記短期間であれば、複数のデフォルトストレージクラスを設定できます。ただし、最終的にはデフォルトのストレージクラスが 1 つだけ存在するようにする必要があります。
デフォルトストレージクラスが多数存在する場合、デフォルトストレージクラスを要求する永続ボリューム要求 (PVC)(
pvc.spec.storageClassName=nil) は、そのストレージクラスのデフォルトステータスに関係なく、最近作成されたデフォルトストレージクラスを取得します。管理者は、アラートダッシュボードで、デフォルトのストレージクラスが多数存在するというアラートを受け取ります(MultipleDefaultStorageClasses)。古いデフォルトストレージクラスからデフォルトのストレージクラス設定を削除します。
古いデフォルトのストレージクラスの場合は、次のコマンドを実行して
storageclass.kubernetes.io/is-default-classアノテーションの値をfalseに変更します。$ oc patch storageclass gp3 -p '{"metadata": {"annotations": {"storageclass.kubernetes.io/is-default-class": "false"}}}'変更内容を確認します。
$ oc get storageclass出力例
NAME TYPE gp3 ebs.csi.aws.com standard (default) ebs.csi.aws.com