9.4. 更改默认存储类
使用以下步骤更改默认存储类。
例如,您有两个定义的存储类 gp3
和 standard
,您想要将默认存储类从 gp3
改为 standard
。
先决条件
- 使用 cluster-admin 权限访问集群。
流程
更改默认存储类:
列出存储类:
oc get storageclass
$ oc get storageclass
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME TYPE gp3 (default) ebs.csi.aws.com standard ebs.csi.aws.com
NAME TYPE gp3 (default) ebs.csi.aws.com
1 standard ebs.csi.aws.com
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
(default)
表示默认存储类。
将所需的存储类设为默认存储类。
对于所需的存储类,运行以下命令将
storageclass.kubernetes.io/is-default-class
注解设置为true
:oc patch storageclass standard -p '{"metadata": {"annotations": {"storageclass.kubernetes.io/is-default-class": "true"}}}'
$ oc patch storageclass standard -p '{"metadata": {"annotations": {"storageclass.kubernetes.io/is-default-class": "true"}}}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意您可以短时间内有多个默认存储类。但是,您应该确保最终只有一个默认存储类。
当存在多个默认存储类时,任何请求默认存储类 (
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 patch storageclass gp3 -p '{"metadata": {"annotations": {"storageclass.kubernetes.io/is-default-class": "false"}}}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 确认更改:
oc get storageclass
$ oc get storageclass
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME TYPE gp3 ebs.csi.aws.com standard (default) ebs.csi.aws.com
NAME TYPE gp3 ebs.csi.aws.com standard (default) ebs.csi.aws.com
Copy to Clipboard Copied! Toggle word wrap Toggle overflow