Warum ist der Namespace, in dem mein Speicheroperator implementiert wurde, im Status Beenden hängen geblieben?
Beheben Sie Namespaces, die nach dem Entfernen einer Satellite-Speicherkonfiguration im Status Terminating stuck hängen geblieben sind.
Wenn Sie eine Speicherkonfiguration aus einem Cluster entfernen, werden die Ressourcen, wie z. B. Operatorpods und Speicherklassen, entfernt, aber der Namensbereich befindet sich im Status Terminating fest.
Finalizer verhindern, dass die verbleibenden Ressourcen im Namensraum und der Namensraum selbst gelöscht werden.
Führen Sie die folgenden Schritte aus, um die Ressourcen und den Namespace zu entfernen.
Patchen oder löschen Sie keine Ressourcen-Finalizer im Namespace kube-system.
- Geben Sie den Namensbereich an, der im Status
Terminatingblockiert ist. Notieren Sie die Ressourcen, die im Abschnittmessage: 'Some resources are remaining:aufgelistet sind.
Beispielausgabe für einen NetApp-Trident-Namespaceoc get ns <namespace> -o yamlstatus: conditions: - lastTransitionTime: "2021-05-18T17:40:31Z" message: All resources successfully discovered reason: ResourcesDiscovered status: "False" type: NamespaceDeletionDiscoveryFailure - lastTransitionTime: "2021-05-18T17:40:31Z" message: All legacy kube types successfully parsed reason: ParsedGroupVersions status: "False" type: NamespaceDeletionGroupVersionParsingFailure - lastTransitionTime: "2021-05-18T17:40:31Z" message: All content successfully deleted, may be waiting on finalization reason: ContentDeleted status: "False" type: NamespaceDeletionContentFailure - lastTransitionTime: "2021-05-18T17:40:31Z" message: 'Some resources are remaining: tridentbackends.trident.netapp.io has 1 resource instances, tridentnodes.trident.netapp.io has 3 resource instances, tridentversions.trident.netapp.io has 1 resource instances, tridentvolumes.trident.netapp.io has 1 resource instances' reason: SomeResourcesRemain status: "True" type: NamespaceContentRemaining - lastTransitionTime: "2021-05-18T17:40:31Z" message: 'Some content in the namespace has finalizers remaining: trident.netapp.io in 6 resource instances' reason: SomeFinalizersRemain status: "True" type: NamespaceFinalizersRemaining phase: Terminating - Führen Sie den Befehl
oc getaus, um die Ressourcen abzurufen, die bis zum Entfernen stehen. In der Beispielausgabe listet die Ressourcetridentbackends.trident.netapp.ioeine Ressourceninstanz auf. Wiederholen Sie diesen Schritt für jede Ressource, die Instanzen im Abschnittmessagedes zuvor abgerufenen Namespace-YAML-Dokuments auflistet.
Beispielbefehl für die Ressourceoc get <resource> -n <namespace>tridentbackends.trident.netapp.io.
Beispielausgabeoc get tridentbackends.trident.netapp.io -n tridenttbe-bhb5rpvc-26d97ecd-c268-47ff-a2fd-a0a1a51a9e12 - Führen Sie für jede Ressource, die Instanzen auflistet, den folgenden
kubectl patchBefehl aus, um die Finalizer zu entfernen und die Ressource zu löschen. Nachdem alle Ressourcen korrigiert wurden, wird der Namensbereich entfernt.Beispielbefehl für die Ressourcekubectl -n <namespace> patch <resource>/<instance> -p '{"metadata":{"finalizers":[]}}' --type=mergetridentbackends.trident.netapp.io.kubectl -n trident patch tridentbackends.trident.netapp.io/tbe-bhb5r -p '{"metadata":{"finalizers":[]}}' --type=merge - Nachdem Sie die Finalizer für die verbleibenden Ressourcen entfernt haben, führen Sie den Befehl
oc get nsaus, um zu überprüfen, ob der Namensbereich entfernt wurde.oc get ns