8.4. デフォルトストレージクラスの変更
次の手順を使用して、デフォルトのストレージクラスを変更します。
たとえば、gp3 と standard の 2 つのストレージクラスがあり、デフォルトのストレージクラスを gp3 から standard に変更する必要がある場合などです。
前提条件
- クラスター管理者権限でクラスターにアクセスできる。
手順
デフォルトのストレージクラスを変更するには、以下を実行します。
ストレージクラスを一覧表示します。
$ oc get storageclass
出力例
NAME TYPE gp3 (default) kubernetes.io/aws-ebs 1 standard kubernetes.io/aws-ebs- 1
(default)はデフォルトのストレージクラスを示します。
目的のストレージクラスをデフォルトにします。
目的のストレージクラスについて、次のコマンドを実行して
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があるというアラートを受け取ります。古いデフォルトストレージクラスからデフォルトのストレージクラス設定を削除します。
古いデフォルトのストレージクラスの場合は、次のコマンドを実行して
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 kubernetes.io/aws-ebs standard (default) kubernetes.io/aws-ebs