Fehlerbehebung bei Kf ServiceInstances

Führen Sie folgende Schritte aus, um verschiedene Probleme zu beheben, die bei der Verwendung von Kf ServiceInstances auftreten können.

Das Objekt hängt im Löschvorgang fest.

Führen Sie den folgenden Befehl aus, um die Ressourceninformationen abzurufen, und prüfen Sie dann auf die unten aufgeführten Gründe:

kubectl get serviceinstances.kf.dev -n SPACE_NAME SERVICEINSTANCE_NAME -o yaml

Mit der kf-Befehlszeile können Sie auf einige der Probleme prüfen:

kf doctor --space SPACE_NAME serviceinstance/SERVICEINSTANCE_NAME
Mögliche UrsacheLösung
Der Löschzeitstempel liegt in der Zukunft.

Bei zeitlicher Abweichung kann metadata.deletionTimestamp noch in der Zukunft liegen. Warten Sie einige Minuten, um zu sehen, ob das Objekt gelöscht wird.

Auf dem Objekt gibt es Finalizer.

Auf dem Objekt sind Finalizer vorhanden und müssen vor dem Löschen des Objekts von dem Controller entfernt werden, der sie festgelegt hat.

Wenn Sie einen Löschvorgang erzwingen möchten, ohne auf die Finalizer zu warten, bearbeiten Sie das Objekt, um sie aus dem metadata.finalizers-Array zu entfernen.

Verwenden Sie den Befehl kubectl edit RESOURCE_TYPE RESOURCE_NAME -n my-space, um den Finalizer aus einem Objekt zu entfernen.

Weitere Informationen finden Sie unter Finalizer zur Steuerung des Löschvorgangs.

Warnung: Wenn Sie Finalizer entfernen, ohne den Controllern den Abschluss des Vorgangs zuzulassen, kann dies zu Fehlern, Sicherheitsproblemen, Datenverlusten oder verwaisten Ressourcen führen.

Abhängige Objekte können vorhanden sein.

Das Objekt wartet möglicherweise darauf, dass abhängige Objekte gelöscht werden, bevor es gelöscht wird. Weitere Informationen finden Sie im Kubernetes-Leitfaden zur automatischen Speicherbereinigung. Ein Administrator muss alle Objekte im Namespace und Cluster darauf untersuchen, ob eines davon das Löschen blockiert.

Wenn Sie das Objekt ohne Rücksicht auf Abhängigkeiten entfernen möchten, verwenden Sie kubectl delete, wobei das Cascade-Flag auf --cascade=orphan gesetzt sein muss.

Generierungszustandsabweichung bei Objekt.

Führen Sie den folgenden Befehl aus, um die Ressourceninformationen abzurufen, und prüfen Sie dann auf die unten aufgeführten Gründe:

kubectl get serviceinstances.kf.dev -n SPACE_NAME SERVICEINSTANCE_NAME -o yaml

Mit der kf-Befehlszeile können Sie auf einige der Probleme prüfen:

kf doctor --space SPACE_NAME serviceinstance/SERVICEINSTANCE_NAME
Mögliche UrsacheLösung
Objekt hat Generierungsversionsabweichung.

Dieser Fehler tritt normalerweise auf, wenn der Kf-Controller die neueste Version des Objekts nicht gelesen hat. Dieser Fehler wird normalerweise automatisch behoben, wenn die Kubernetes-Replikate Eventual Consistency erreichen, und erfordert in der Regel keine Aktion von Nutzern.

Objektabgleich fehlgeschlagen.

Führen Sie den folgenden Befehl aus, um die Ressourceninformationen abzurufen, und prüfen Sie dann auf die unten aufgeführten Gründe:

kubectl get serviceinstances.kf.dev -n SPACE_NAME SERVICEINSTANCE_NAME -o yaml

Mit der kf-Befehlszeile können Sie auf einige der Probleme prüfen:

kf doctor --space SPACE_NAME serviceinstance/SERVICEINSTANCE_NAME
Mögliche UrsacheLösung
Objekt hat TemplateError

Dieser Fehler tritt normalerweise auf, wenn der Nutzer in der benutzerdefinierten Ressourcen-Spezifikation ein ungültiges Attribut eingegeben hat oder die Konfiguration im Bereich/Cluster fehlerhaft ist.

Um die Ursache zu verstehen, kann der Nutzer die längere Fehlermeldung in den status.conditions des Objekts mit dem folgenden Befehl lesen: kubectl describe RESOURCE_TYPE RESOURCE_NAME -n space. Beispiel: kubectl describe serviceinstance my-service -n my-space.

Objekt hat einen Fehler "ChildNotOwned" (Namenskonflikte)

Dieser Fehler bedeutet normalerweise, dass die Objekte, die der Controller zu erstellen versucht, bereits vorhanden sind. Dies ist der Fall, wenn der Nutzer eine K8s-Ressource erstellt hat, die mit dem Namen dessen übereinstimmt, was der Controller zu erstellen versucht. Häufiger tritt dies jedoch auf, wenn der Nutzer eine Ressource löscht und der Kf-Controller dann versucht, sie neu zu erstellen. Wenn noch eine untergeordnete Ressource vorhanden ist, ist ihr Inhaber die alte Ressource, die nicht mehr vorhanden ist.

Zur Behebung des Fehlers sollte der Nutzer die betroffene Ressource löschen und dann neu erstellen. Verwenden Sie zum Löschen des Objekts einen Kf-Löschbefehl oder den Befehl kubectl delete RESOURCE_TYPE RESOURCE_NAME -n SPACE. Beispiel: kf delete-space my-spaceoder kubectl delete space my-space.

Verwenden Sie zum Neuerstellen einer Ressource einen Kf-Befehl. Beispiel: kf create-space my-space.

Objekt hat ReconciliationError

Dieser Fehler weist in der Regel darauf hin, dass beim HTTP-Aufruf des Kubernetes API-Servers (durch den Kf-Controller) zum Erstellen oder Aktualisieren einer Ressource ein Fehler aufgetreten ist.

Um die Ursache zu verstehen, kann der Nutzer die längere Fehlermeldung in den status.conditions des Objekts mit dem folgenden Befehl lesen: kubectl describe RESOURCE_TYPE RESOURCE_NAME -n space. Beispiel: kubectl describe serviceinstance my-service -n my-space.

Abgleich unterstützender Ressourcen fehlgeschlagen.

Führen Sie den folgenden Befehl aus, um die Ressourceninformationen abzurufen, und prüfen Sie dann auf die unten aufgeführten Gründe:

kubectl get serviceinstances.kf.dev -n SPACE_NAME SERVICEINSTANCE_NAME -o yaml

Mit der kf-Befehlszeile können Sie auf einige der Probleme prüfen:

kf doctor --space SPACE_NAME serviceinstance/SERVICEINSTANCE_NAME
Mögliche UrsacheLösung
DeprovisionFailed-Fehler für unterstützende Ressourcen.

Dieser Fehler tritt normalerweise auf, wenn die Bereitstellung unterstützender Ressourcen (MySQL-Datenbank, die auf einem externen OSB-Server gehostet wird) nicht aufgehoben wird. Kf kann nicht sicher feststellen, ob die Bereitstellung der abhängigen Ressource aufgehoben wurde.

Zur Behebung des Fehlers wird empfohlen, die detaillierte Fehlermeldung in den status.conditions des Objekts mit dem folgenden Befehl zu lesen: kubectl describe RESOURCE_TYPE RESOURCE_NAME -n space. Beispiel: kubectl describe servipropogatesceinstance my-service -n my-space.

Sobald die Fehlermeldung bestätigt wurde, bitten Sie einen Administrator, die unterstützende Ressource zu prüfen und manuell zu bereinigen. Wenn festgestellt wird, dass die unterstützende Ressource sicher freigegeben wurde, kann die betroffene Kf-Ressource erfolgreich abgeglichen werden. Dazu wird Finalizer mit dem Befehl kubectl edit serviceinstance my-service -n my-space manuell aus der Objektspezifikation entfernt.