使用 vSphere ClientvCenter Server主管 中的命名空间中移除存储策略时,其匹配的存储类仍保留在 Kubernetes 环境中,但无法使用。

问题

如果运行 kubectl get sc 命令,则输出会继续在命名空间中将存储类列为可用。但是,不能使用存储类。例如,尝试对新的持久卷声明使用存储类会失败。

如果 Kubernetes 部署已经使用存储类,则部署的行为可能会不可预测。

解决方案

  1. 要验证命名空间中存在哪些存储类,请运行 kubectl describe namespace namespace_name 命令。
    如果移除存储类匹配的存储策略,则该命令的输出不会列出该存储类。
  2. 如果存储类已被部署使用,请还原该存储类。
    1. 通过 vSphere Client,使用与您移除的策略相同的名称创建新的存储策略。
      例如,如果您删除了 Gold 策略,请将新策略命名为 Gold。请参见 《安装和配置 vSphere with Tanzu》中的 为 vSphere with Tanzu 创建存储策略
    2. 将策略分配给命名空间。
      请参见 《vSphere with Tanzu 服务和工作负载》中的 更改命名空间上的存储设置
      将策略分配给命名空间后, vSphere with Tanzu 将删除旧存储类,并使用相同名称创建匹配的存储类。