Fehler bei der Installation von Kf
IP-Adresse von Istio ist nicht bereit
Das kann passieren, wenn Istio zu lange benötigt, um eine externe IP-Adresse abzurufen. Warten Sie einige Minuten und führen Sie den Schritt zum Senden von Cloud Build noch einmal aus. Es ist jedoch möglich, dass ein anderer Fehler vorliegt.
Fehler vom Server (ungültige Anforderung): Ungültiges Zeichen
Wenn dieser Fehler beim Festlegen der Standardeinstellungen für die Konfiguration angezeigt wird, enthält der Wert der im Befehl verwendete Umgebungsvariablen ${DOMAIN}
wahrscheinlich das Escapezeichen „$“. Verwenden Sie einfache Anführungszeichen, um eine Domain mit einem Bereichsnamen oder einer anderen Ersetzung zu definieren:
Error from server (BadRequest): invalid character '$' in string escape code
Fehler mit Kubernetes-Objekten
Folgen Sie dieser Anleitung, um Probleme mit Kf Kubernetes-Objekten zu beheben.
Suchen Sie nach dem Namen des Kubernetes-Ressourcentyps, den Sie beheben möchten. Listen Sie dazu alle Kf-Ressourcen auf:
kubectl api-resources --api-group=kf.dev
Beispielausgabe:
NAME SHORTNAMES APIGROUP NAMESPACED KIND apps kf.dev true App builds kf.dev true Build clusterservicebrokers kf.dev false ClusterServiceBroker routes kf.dev true Route servicebrokers kf.dev true ServiceBroker serviceinstancebindings kf.dev true ServiceInstanceBinding serviceinstances kf.dev true ServiceInstance spaces kf.dev false Space
Rufen Sie die Instanz der Ressource, für die Sie Fehler beheben möchten, mit
kubectl
ab. Wenn sich das Objekt nicht in einem Namespace befindet, lassen Sie das Flag-n
weg:kubectl get api-resource-name.kf.dev object-name -n space-name -o yaml
Beispiel:
kubectl get apps.kf.dev my-app -n my-space -o yaml
Wählen Sie Ihr Problem aus den Tabs unten aus:
Objekt wird nicht abgeglichen
- Prüfen Sie den Wert von
metadata.generation
. Diese Nummer wird bei jeder Aktualisierung des Objekts erhöht. Wenn die Zahl extrem hoch ist, haben zwei Kubernetes-Controller wahrscheinlich das Objekt. Prüfen Sie, ob in Ihrem Cluster Richtlinien zum Objekt angewendet werden, die es vom gewünschten Status ändern könnten. - Prüfen Sie, ob der Namespace, zu dem das Objekt gehört, gelöscht wird. Ist dies der Fall, kann das Objekt nicht abgeglichen werden.
- Prüfen Sie, ob das Feld
status.observedGeneration
vorhanden ist. Ist dies nicht der Fall, wurde der Controller möglicherweise noch nicht für das Objekt ausgeführt. Prüfen Sie mitkf doctor
, ob der Cluster und die Controller fehlerfrei sind. - Prüfen Sie, ob das Feld
metadata.generation
mit dem Feldstatus.observedGeneration
übereinstimmt. Falls nicht, prüfen Sie, ob der Cluster und die Controller fehlerfrei sind. Verwenden Sie dazukf doctor
. - Suchen Sie in der
status.conditions
-Liste nach Fehlern in der Liste der häufigsten Fehlerursachen:
NotOwned
: Im Cluster oder Namespace gibt es eine andere Ressource, mit der dieses Objekt erstellt wird. Lesen Sie die Nachricht, um den doppelten Namen zu ermitteln, und benennen Sie entweder die in Konflikt stehende Ressource oder das Kf-Objekt.TemplateError
: Es liegt eine Fehlkonfiguration in der Kf-Ressourcenspezifikation oder Kf-Konfiguration vor, die dazu führt, dass die untergeordnete Ressource nicht korrekt abgeglichen wird. Überprüfen Sie die Einstellungen des Kf-Objekts und des Kf-Speicherplatzes.CacheOutdated
: Der Kf-Controller erhält Aktualisierungen von Kubernetes nicht schnell genug. Integrität des Kubernetes-Clusters überprüfen.ReconciliationError
: Der Kf-Controller kann die erforderliche untergeordnete Ressource nicht erstellen. Prüfen Sie, ob Ihr Cluster fehlerfrei ist, Kf ausgeführt wird und dass keine Richtlinien erzwungen werden, die verhindern, dass Kf das in der Nachricht referenzierte Objekt erstellt.
Objekt wird nicht gelöscht
- Prüfen Sie, ob der
metadata.deletionTimestamp
des Objekts festgelegt wurde. Wenn es nicht festgelegt wurde, funktioniert der angeforderte Löschvorgang nicht. - Prüfen Sie, ob der
metadata.deletionTimestamp
des Objekts in der Vergangenheit liegt. Wenn er in Zukunft liegt, wird das Objekt möglicherweise nicht gelöscht. - Prüfen Sie, ob eine
metadata.finalizers
-Liste für das Objekt vorhanden ist. Wenn Finalizer vorhanden sind, muss das Objekt warten, bis sie entfernt werden, bevor es gelöscht wird. Wenn Sie ein Löschen erzwingen möchten, ohne auf die Finalizer zu warten, bearbeiten Sie das Objekt, um sie zu entfernen. - Unter Umständen sind untergeordnete Objekte vorhanden, die das Löschen des Objekts verhindern. Lassen Sie einen Administrator alle Objekte im Namespace und Cluster prüfen, um festzustellen, ob eines davon zuerst manuell gelöscht werden muss.
- Prüfen Sie den Wert von