...
spec:
driverConfig:
driverType: ''
logLevel: Normal
managementState: Managed
observedConfig: null
operatorLogLevel: Normal
storageClassState: Unmanaged (1)
...
管理默认存储类允许您实现几个不同的目标
通过禁用动态配置来强制执行静态配置。
当您有其他首选存储类时,防止存储操作员重新创建初始默认存储类。
重命名或更改默认存储类
要实现这些目标,您需要更改`ClusterCSIDriver`对象中`spec.storageClassState`字段的设置。此字段的可能设置为
已管理:(默认)容器存储接口 (CSI) 运算符主动管理其默认存储类,因此集群管理员对默认存储类进行的大多数手动更改都会被移除,并且如果您尝试手动删除默认存储类,则会持续重新创建默认存储类。
未管理:您可以修改默认存储类。CSI 运算符不会主动管理存储类,因此它不会协调其自动创建的默认存储类。
已移除:CSI 运算符会删除默认存储类。
以下容器存储接口 (CSI) 驱动程序运算符支持管理默认存储类
访问 OpenShift Container Platform Web 控制台。
以集群管理员权限访问集群。
要使用 Web 控制台管理默认存储类,请执行以下操作:
登录 Web 控制台。
单击管理 > 自定义资源定义。
在自定义资源定义页面上,输入clustercsidriver
以查找ClusterCSIDriver
对象。
单击ClusterCSIDriver,然后单击实例选项卡。
单击所需实例的名称,然后单击YAML 选项卡。
添加值为Managed
、Unmanaged
或Removed
的spec.storageClassState
字段。
...
spec:
driverConfig:
driverType: ''
logLevel: Normal
managementState: Managed
observedConfig: null
operatorLogLevel: Normal
storageClassState: Unmanaged (1)
...
1 | spec.storageClassState 字段设置为“Unmanaged” |
单击保存。
以集群管理员权限访问集群。
要使用 CLI 管理存储类,请运行以下命令:
oc patch clustercsidriver $DRIVERNAME --type=merge -p "{\"spec\":{\"storageClassState\":\"${STATE}\"}}" (1)
1 | 其中${STATE} 为“Removed”、“Managed”或“Unmanaged”。其中 |
使用以下步骤更改默认存储类。
例如,如果您定义了两个存储类gp3
和standard
,并且您想将默认存储类从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"}}}'
您可能在短时间内拥有多个默认存储类。但是,您应确保最终只存在一个默认存储类。 如果存在多个默认存储类,任何请求默认存储类的持久卷声明 (PVC)( |
从旧的默认存储类中删除默认存储类设置。
对于旧的默认存储类,通过运行以下命令将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