8.4. 更改默认存储类
使用以下步骤更改默认存储类。
例如,您有两个定义的存储类 gp3
和 standard
,您想要将默认存储类从 gp3
改为 standard
。
先决条件
- 使用 cluster-admin 权限访问集群。
流程
更改默认存储类:
列出存储类:
$ 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"}}}'
注意您可以短时间内有多个默认存储类。但是,您应该确保最终只有一个默认存储类。
当存在多个默认存储类时,任何请求默认存储类 (
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