8.4. 更改默认存储类
使用以下步骤更改默认存储类。
例如,您有两个定义的存储类 gp3 和 standard,您想要将默认存储类从 gp3 改为 standard。
先决条件
- 使用 cluster-admin 权限访问集群。
流程
更改默认存储类:
列出存储类:
oc get storageclass
$ oc get storageclassCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME TYPE gp3 (default) kubernetes.io/aws-ebs standard kubernetes.io/aws-ebs
NAME TYPE gp3 (default) kubernetes.io/aws-ebs1 standard kubernetes.io/aws-ebsCopy 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 storageclassCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME TYPE gp3 kubernetes.io/aws-ebs standard (default) kubernetes.io/aws-ebs
NAME TYPE gp3 kubernetes.io/aws-ebs standard (default) kubernetes.io/aws-ebsCopy to Clipboard Copied! Toggle word wrap Toggle overflow