StorageClassのデフォルトを変更
KubernetesでPersistent Volumeを作成する場合,マニフェストでPersistent VolumeのStorage Classを指定しないとデフォルトのStorage Classが選択される.この記事では新たにStorage Classを導入し,デフォルトのStorage Classを変更する.
環境
$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
kushida001 Ready control-plane,etcd,master 384d v1.22.6+rke2r1
kushida002 Ready control-plane,etcd,master 384d v1.22.6+rke2r1
kushida003 Ready control-plane,etcd,master 384d v1.22.6+rke2r1
手順
Storge Classの一覧を取得する.現状のデフォルトはlonghornである.これをlocal-pathへ変更する.
$ kubectl get storageclass
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE
local-path rancher.io/local-path Delete WaitForFirstConsumer false 6m
longhorn (default) driver.longhorn.io Delete Immediate true 108d
longhornのデフォルトを解除する.
$ kubectl patch storageclass longhorn -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"false"}}}'
storageclass.storage.k8s.io/longhorn patched
local-pathへデフォルトを設定する.
$ kubectl patch storageclass local-path -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'
storageclass.storage.k8s.io/local-path patched
設定を確認する.適切にStorage Classのデフォルトがlonghornからlocal-pathへ変更された.
$ kubectl get storageclass
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE
local-path (default) rancher.io/local-path Delete WaitForFirstConsumer false 19m
longhorn driver.longhorn.io Delete Immediate true 108d