vSphere Client を使用して vCenter Server または スーパーバイザー 内の名前空間からストレージ ポリシーを削除すると、それに一致するストレージ クラスは Kubernetes 環境に残りますが、使用できません。
問題
kubectl get sc コマンドを実行すると、出力には名前空間で使用できるストレージ クラスとして引き続き表示されます。ただし、そのストレージ クラスは使用できません。たとえば、新しいパーシステント ボリュームの要求に対してそのストレージ クラスを使用すると失敗します。
ストレージ クラスがすでに Kubernetes 環境で使用されている場合は、その環境で予期しない動作が発生する可能性があります。
解決方法
- 名前空間にあるストレージ クラスを確認するには、kubectl describe namespace namespace_name コマンドを実行します。
一致するストレージ ポリシーが削除されている場合、このコマンドの出力にストレージ クラスは表示されません。
- ストレージ クラスがすでにデプロイ環境で使用されている場合は、そのストレージ クラスをリストアします。
- vSphere Client を使用して、削除したポリシーと同じ名前の新しいストレージ ポリシーを作成します。
- ポリシーを名前空間に割り当てます。
ポリシーを名前空間に割り当てると、
vSphere with Tanzu によって古いストレージ クラスが削除され、一致するストレージ クラスが同じ名前で作成されます。