vSphere Client を使用して vCenter Server または スーパーバイザー 内の名前空間からストレージ ポリシーを削除すると、それに一致するストレージ クラスは Kubernetes 環境に残りますが、使用できません。

問題

kubectl get sc コマンドを実行すると、出力には名前空間で使用できるストレージ クラスとして引き続き表示されます。ただし、そのストレージ クラスは使用できません。たとえば、新しいパーシステント ボリュームの要求に対してそのストレージ クラスを使用すると失敗します。

ストレージ クラスがすでに Kubernetes 環境で使用されている場合は、その環境で予期しない動作が発生する可能性があります。

解決方法

  1. 名前空間にあるストレージ クラスを確認するには、kubectl describe namespace namespace_name コマンドを実行します。
    一致するストレージ ポリシーが削除されている場合、このコマンドの出力にストレージ クラスは表示されません。
  2. ストレージ クラスがすでにデプロイ環境で使用されている場合は、そのストレージ クラスをリストアします。
    1. vSphere Client を使用して、削除したポリシーと同じ名前の新しいストレージ ポリシーを作成します。
      たとえば、 Gold ポリシーを削除した場合は、新しいポリシーに Gold という名前を付けます。 vSphere with Tanzu のインストールと構成Create Storage Policies for vSphere with Tanzuを参照してください。
    2. ポリシーを名前空間に割り当てます。
      vSphere with Tanzu のサービスとワークロード名前空間のストレージ設定の変更を参照してください。
      ポリシーを名前空間に割り当てると、 vSphere with Tanzu によって古いストレージ クラスが削除され、一致するストレージ クラスが同じ名前で作成されます。