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