Fehlerbehebung bei Kf-SourcePackages

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

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 sourcepackages.kf.dev -n SPACE_NAME SOURCEPACKAGE_NAME -o yaml

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

kf doctor --space SPACE_NAME sourcepackage/SOURCEPACKAGE_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.

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 sourcepackages.kf.dev -n SPACE_NAME SOURCEPACKAGE_NAME -o yaml

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

kf doctor --space SPACE_NAME sourcepackage/SOURCEPACKAGE_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 sourcepackages.kf.dev -n SPACE_NAME SOURCEPACKAGE_NAME -o yaml

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

kf doctor --space SPACE_NAME sourcepackage/SOURCEPACKAGE_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.