Fehlerreferenz
Auf dieser Seite werden Config Sync-Fehlercodes und empfohlene Maßnahmen zum Beheben dieser Fehler beschrieben.
Config Sync-Fehlermeldungen enthalten eine Fehler-ID im Format KNV1234
, wobei 1234
eine eindeutige Nummer ist, gefolgt von einer Beschreibung des Problems und einem Vorschlag zur Behebung. K
wird von den Kubernetes-Konventionen übernommen, Regeln mit dem Präfix N
gelten spezifisch für nomos
und V
bezieht sich speziell auf Fehler, die im Anfangszustand des Repositorys und des Clusters erkannt werden können. Codes für Fehler, die im Anfangszustand des Repositorys und des Clusters erkennbar sind, haben die Form KNV1XXX
. Codes für Fehler, die nur während der Laufzeit erkannt werden können, haben das Format KNV2XXX
.
KNV-Fehlertabelle
Fehlercode | Beschreibung | Empfohlene Maßnahmen |
---|---|---|
|
Die ID von InternalError wurde mit Config Sync-Version 1.6.1 zu |
– |
|
In Config Sync 1.3 verworfen. |
– |
|
In Config Sync 1.3 verworfen. |
– |
|
Bei Verwendung einer hierarchischen Repository-Struktur darf ein Verzeichnis, das eine Namespace-Konfiguration enthält, keine Unterverzeichnisse enthalten. Ein Verzeichnis ohne Namespace-Konfiguration ist ein abstraktes Namespace-Verzeichnis, aus dessen Verzeichnissen übernommen werden. Daher müssen abstrakte Namespace-Verzeichnisse Unterverzeichnisse haben. Ein Verzeichnis, das eine Namespace-Konfiguration enthält, ist ein Namespace-Verzeichnis und kann nicht übernommen werden. Daher darf es keine Unterverzeichnisse enthalten. |
Entfernen Sie entweder die Namespace-Konfiguration aus dem übergeordneten Verzeichnis oder verschieben Sie das Unterverzeichnis an einen anderen Ort. |
|
Ein clusterbezogenes Objekt darf nicht die Annotation |
Entfernen Sie |
|
Die einzige gültige Einstellung für die Verwaltungsanmerkung ist |
Die Verwaltungsannotation muss Weitere Informationen finden Sie unter Objekte verwalten. |
|
Ein im Repository deklariertes Objekt konnte nicht geparst werden. |
Prüfen Sie Ihr YAML-Format. Sie können beispielsweise den Befehl
Wenn |
|
Bei Verwendung eines unstrukturierten Repositorys dürfen Konfigurationen nicht in einem abstrakten Namespace-Verzeichnis deklariert werden. |
Verschieben Sie die in der Fehlermeldung aufgeführte Konfiguration in ein Namespace-Verzeichnis. Weitere Informationen finden Sie unter Unstrukturiertes Repository verwenden. |
|
Wenn Sie eine hierarchische Repository-Struktur verwenden, müssen Konfigurationen entweder Namespaces deklarieren, die dem Namespace-Verzeichnis entsprechen, das sie enthalten, oder das Feld weglassen. |
Aktualisieren Sie das in der Fehlermeldung angegebene Namespace-Feld. Weitere Informationen finden Sie unter Struktur des hierarchischen Repositorys. |
|
Konfigurationen dürfen keine nicht unterstützten Annotationen deklarieren, die mit |
Achten Sie darauf, eine der folgenden unterstützten Annotationen zu verwenden:
|
|
Konfigurationen dürfen keine Labels mit Schlüsseln haben, die mit |
Aktualisieren Sie alle in der Fehlermeldung angegebenen Labels. Wenn Sie beispielsweise versucht haben, ein Label mit dem Namen |
|
In Config Sync 1.3 verworfen. |
– |
|
Die Konfiguration verweist auf einen nicht vorhandenen ClusterSelector oder NamespaceSelector. Bevor Sie einen Selektor in einer Annotation für eine Konfiguration verwenden können, muss der Selektor vorhanden sein. |
Erstellen Sie entweder fehlende Selektoren oder entfernen Sie alle Konfigurationen, die sich darauf beziehen, falls der Selektor entfernt wurde. |
|
ClusterSelector- und NamespaceSelector-Konfigurationen verwenden die richtige Syntax, es wurde jedoch ein Syntaxfehler gefunden. |
Geben Sie die Konfiguration mit dem entsprechenden Datenschema an: |
|
In Config Sync 1.3.2 verworfen. | – |
|
Wenn Sie die hierarchische Repository-Struktur verwenden, muss im Verzeichnis |
Definieren Sie mindestens eine Mindestkonfiguration für den ConfigManagement Operator. Weitere Informationen finden Sie unter Struktur des hierarchischen Repositorys. |
|
In Config Sync 1.3 verworfen. | – |
|
Bei Verwendung der hierarchischen Repository-Struktur dürfen Namespaces nicht direkt im Verzeichnis |
Erstellen Sie ein Unterverzeichnis für die in der Fehlermeldung aufgeführten Namespace-Konfigurationen. Weitere Informationen finden Sie unter Struktur des hierarchischen Repositorys. |
|
Bei Verwendung einer hierarchischen Repository-Struktur deklariert eine Namespace-Konfiguration metadata.name und der Wert muss mit dem Namen des Namespace-Verzeichnisses übereinstimmen.
|
Korrigieren Sie die metadata.name des Namespace oder sein Verzeichnis. |
|
Für die Ressource im Cluster ist keine CustomResourceDefinition definiert. |
Erstellen Sie eine CustomResourceDefinition für die Ressource, auf die in der Fehlermeldung verwiesen wird. Ressourcentypen, die keine integrierten Kubernetes-Objekte sind, müssen eine CustomResourceDefinition haben. |
|
Wenn Sie ein hierarchisches Repository verwenden, können Konfigurationen dieser Art nicht im Verzeichnis |
Verschieben Sie die Ressource, auf die in der Fehlermeldung verwiesen wird, aus dem Verzeichnis |
|
Das Feld |
Wenn das Format Ihres Repositorys mit der unterstützten Version kompatibel ist, aktualisieren Sie das Feld |
|
Verzeichnisnamen müssen weniger als 64 Zeichen lang sein, aus alphanumerischen Kleinbuchstaben oder „-“ bestehen und mit einem alphanumerischen Zeichen beginnen und enden. |
Benennen Sie das Verzeichnis um oder entfernen Sie es. |
|
Konfigurationen derselben Art müssen eindeutige Namen im selben Namespace und in ihren übergeordneten abstrakten Namespaces haben. |
Benennen Sie alle Konfigurationen um, auf die in der Fehlermeldung verwiesen wird, oder entfernen Sie sie, sodass sie eindeutige Namen haben. |
|
Mehrere Namespace-Ressourcen dürfen nicht im selben Verzeichnis vorhanden sein. |
Entfernen Sie die doppelten Konfigurationen, damit nicht mehr als eine Namespace-Ressource übrig bleibt. |
|
Alle Konfigurationen müssen |
Fügen Sie den problematischen Konfigurationen das Feld |
|
Der Typ |
Entfernen Sie die problematische Konfiguration oder konvertieren Sie Ihr Repository zur Verwendung von |
|
Wenn Sie ein hierarchisches Repository verwenden, können Sie nur die Arten |
Achten Sie darauf, dass alle im Verzeichnis |
|
Der
Ab Config Sync Version 1.17.0 können auch die Namespaces |
Wenn Sie den Namespace
Wenn Sie die Namespaces
Wenn Sie zuvor eine Synchronisierung mit einem hierarchischen Repository durchgeführt haben und den Controller-Namespace zusammen mit allen Ressourcen deklarieren mussten, sollten Sie für mehr Flexibilität in Ihrer Quellstruktur zu einem unstrukturierten Repository wechseln. |
|
Das angegebene |
Ändern Sie
Wenn |
|
In Config Sync 1.3 verworfen. | – |
|
Namespace-bezogene Objekte dürfen außerhalb des Verzeichnisses |
Verschieben Sie die problematischen Konfigurationen so, dass sie sich in einem legalen Verzeichnis befinden. Weitere Informationen zu Namespace-bezogenen Objekten finden Sie unter Namespace-bezogene Objekte. |
|
Clusterbezogene Objekte dürfen außerhalb des Verzeichnisses |
Verschieben Sie die problematischen Konfigurationen so, dass sie sich in einem legalen Verzeichnis befinden. Weitere Informationen zu clusterbezogenen Objekten finden Sie unter Clusterbezogene Objekte. |
|
In Config Sync 1.3 verworfen. | – |
|
Diese Ressourcenart darf nicht in einem |
Entfernen Sie die problematische Ressource. Weitere Informationen zu |
|
Auf einem |
Ändern Sie |
|
Config Sync kann dieses Objekt nicht konfigurieren. |
Entfernen Sie die problematische Konfiguration aus dem Repository. |
|
Ein abstraktes Namespace-Verzeichnis mit Konfigurationen muss mindestens ein Namespace-Unterverzeichnis haben. |
Fügen Sie entweder ein Namespace-Verzeichnis unter Ihrem abstrakten Namespace-Verzeichnis hinzu, fügen Sie Ihrem abstrakten Namespace-Verzeichnis eine Namespace-Konfiguration hinzu oder entfernen Sie die Konfigurationen in Ihrem abstrakten Namespace-Verzeichnis. |
|
Konfigurationen, für die |
Entfernen Sie das Feld |
|
Dieser |
Aktualisieren Sie |
|
Eine benutzerdefinierte Ressourcendefinition (CRD) kann nicht entfernt werden und die entsprechenden benutzerdefinierten Ressourcen im Repository bleiben. |
Entfernen Sie die CRD zusammen mit den benutzerdefinierten Ressourcen. |
|
Die CustomResourceDefinition hat einen ungültigen Namen. |
Ändern Sie den Namen in die Empfehlung aus der Fehlermeldung. |
|
Die Konfiguration verwendet eine verworfene Gruppe und Art. |
Ändern Sie die Gruppe oder Art in die Empfehlung, die in der Fehlermeldung angegeben ist. |
|
Clusterbezogene Ressourcen dürfen |
Entfernen Sie das Feld metadata.namespace aus der clusterbezogenen Ressource. |
|
Namespace-bezogene Ressourcen müssen entweder |
Fügen Sie der Namespace-bezogenen Ressource das fehlende Feld hinzu. |
|
Konfigurationen enthalten einen ungültigen Wert für eine Annotation. |
Folgen Sie der Anleitung in der Fehlermeldung, um den Fehler zu beheben. |
|
Der Wert von |
Aktualisieren Sie den Wert von
|
|
Eine Ressource wird in einem nicht verwalteten Namespace deklariert. |
Entfernen Sie entweder die Annotation |
|
Eine Ressource hat ein ungültiges Label. |
Entfernen Sie die in der Fehlermeldung aufgeführten unzulässigen Labels. |
|
Ein Namespace-Repository kann nur Namespace-bezogene Ressourcen in dem Namespace deklarieren, für das das Repository gilt. |
Achten Sie darauf, dass alle Namespace-Repositories Namespace-bezogene Ressourcen korrekt deklarieren.
Mit dem Repository für das Namespace-Repository
Wenn beispielsweise eine Konfiguration im Namespace-Repository Achten Sie nicht nur darauf, dass Namespace-bezogene Ressourcen korrekt deklariert sind, sondern auch, dass Namespaces im Root-Repository deklariert sind. Dies ist erforderlich, da Namespaces clusterbezogen sind. |
|
Ein Namespace-Repository kann höchstens eine Kptfile-Ressource deklarieren. |
Entfernen Sie alle Kptfile-Ressourcen bis auf eine. |
|
Bei der Verwaltung von Objekten in mehreren „Sources of Truth“ können Konflikte auftreten, wenn dasselbe Objekt (übereinstimmende Gruppe, Art, Name und Namespace) in mehr als einer Quelle deklariert wird. Wenn beispielsweise dasselbe Objekt über RootSync und RepoSync verwaltet wird, gewinnt RootSync. Wenn RootSync zuerst angewendet wird, meldet RepoSync einen KNV1060-Statusfehler. Wenn RepoSync zuerst angewendet wird, überschreibt RootSync das RepoSync-Objekt und RepoSync meldet einen KNV1060-Statusfehler, wenn das Update erkannt wird. |
Lösen Sie den Konflikt, indem Sie die Konfiguration so aktualisieren, dass sie mit der anderen „Source of Truth“ übereinstimmt, oder das in Konflikt stehende Objekt aus einer der Quellen löschen.
Der Befehl |
|
|
Folgen Sie der Anleitung in der Fehlermeldung, um die Konfigurationsfehler zu beheben. |
|
Die Kptfile enthält kein gültiges Inventarfeld. Eine Kptfile muss ein nicht leeres Inventarfeld enthalten, in dem sowohl die ID als auch der Namespace angegeben sind. |
Geben Sie die Werte für |
|
Kptfiles wurden im Root-Repository gefunden. Kptfiles werden nur in Namespace-bezogenen Repositories unterstützt. |
Entfernen Sie die Kptfiles aus dem Root-Repository. |
|
Die Datei |
Folgen Sie der Anleitung in der Fehlermeldung. Möglicherweise müssen Sie beispielsweise
In |
|
Die CustomResourceDefinition ist fehlerhaft. |
Prüfen Sie, ob das in der Fehlermeldung angegebene Feld richtig formatiert ist. |
|
Ein Konfigurationsobjekt muss nur eine Annotation für die Clusterauswahl deklarieren. Dieser Fehler tritt auf, wenn sowohl die Legacy-Annotation ( |
Entfernen Sie eine der Anmerkungen aus dem Feld |
|
Die deklarierten Felder werden vom Abgleich nicht in einem Format codiert, das mit server-side apply kompatibel ist. Dies kann durch ein veraltetes Schema verursacht werden. |
Prüfen Sie, ob das in der Fehlermeldung angegebene Feld mit dem Schema der Ressourcenart übereinstimmt. |
|
Beim Rendering ist ein Problem aufgetreten, das vom Nutzer behoben werden kann. |
Wenn das Git-Repository Kustomize-Konfigurationen enthält, aber keine
Wenn der Fehler durch
Wenn beim Abrufen von Remote-Basen aus öffentlichen Repositories der Fehler |
|
Ein Abgleicher hat sein eigenes RootSync- oder RepoSync-Objekt abgeglichen. Ein RootSync-Objekt kann andere RootSync- und RepoSync-Objekte verwalten. Ein RepoSync-Objekt kann andere RepoSync-Objekte verwalten, aber nicht selbst verwalten. |
Entfernen Sie das RootSync- oder RepoSync-Objekt aus der „Source of Truth“, mit der das Objekt synchronisiert wird. |
|
Ein Systemaufruf auf Betriebssystemebene, der auf eine Dateisystemressource zugreift, schlägt fehl. |
Dieser Fehler wird wahrscheinlich durch eine ungültige YAML-Konfiguration oder die Verwendung von Sonderzeichen verursacht. Wenn Sie eine ungültige YAML-Konfiguration haben, wird eine Fehlermeldung wie diese angezeigt:
Wenn der Dateiname oder Pfad Sonderzeichen enthält, wird möglicherweise eine Fehlermeldung wie |
|
Eine Anfrage, die auf den API-Server zugreift, schlägt fehl. |
Möglicherweise tritt ein API-Erkennungsfehler auf. Weitere Informationen finden Sie unter API-Erkennungsfehler. |
|
Ein allgemeiner Systemaufruf auf Betriebssystemebene schlägt fehl. | |
|
Config Sync kann nicht aus der Source of Truth lesen. |
Dieser Fehler kann verschiedene Ursachen haben. Tipps zur Behebung häufiger Probleme beim Herstellen einer Verbindung zur „Source of Truth“ finden Sie hier. |
|
Config Sync konkurriert mit einem anderen Controller um eine Ressource. Solche Streitigkeiten verbrauchen große Mengen an Ressourcen und können die Leistung beeinträchtigen. | Tipps zur Diagnose und Behebung von Controller-Kämpfen findest du unter Fehlerbehebung bei Controller-Kämpfen. |
|
Um versehentliches Löschen zu verhindern, können Sie mit Config Sync nicht alle Namespaces oder clusterbezogenen Ressourcen in einem einzelnen Commit entfernen. |
Wenn der Config Sync-Zulassungs-Webhook deaktiviert ist, setzen Sie den Commit zurück, durch den alle Ressourcen gelöscht werden.
Wenn Sie alle verwalteten Ressourcen löschen möchten, führen Sie die folgenden Schritte aus:
|
|
Eine Ressource auf dem API-Server wird geändert oder gelöscht, während Config Sync ebenfalls versucht, sie zu ändern. |
Wenn diese Art von Fehler nur beim Start oder selten auftritt, können Sie sie ignorieren.
Wenn diese Fehler nicht vorübergehend sind (mehrere Minuten andauern), kann dies auf ein schwerwiegendes Problem hindeuten und |
|
Dies ist ein allgemeiner Fehler, der darauf hinweist, dass Config Sync einige Konfigurationen nicht mit dem Cluster synchronisieren konnte. |
Dieser Fehler kann verschiedene Ursachen haben. Tipps zur Behebung häufiger Probleme bei der Synchronisierung finden Sie unter Fehlerbehebung bei der Synchronisierung. |
|
Dies ist ein allgemeiner Fehler, der auf ein Problem mit einer Ressource oder einer Gruppe von Ressourcen hinweist. |
Die Fehlermeldung enthält die spezifischen Ressourcen, die den Fehler verursacht haben. Sehen Sie sich diese Ressourcen an. |
|
Zum Fortfahren ist eine bestimmte Ressource erforderlich, die jedoch nicht gefunden wurde. Beispiel: Der ConfigManagement Operator hat versucht, eine Ressource zu aktualisieren, aber die Ressource wurde beim Berechnen der Aktualisierung gelöscht. |
Erstellen Sie die fehlende Ressource oder stellen Sie sie wieder her. |
|
Dieser Fehler meldet, dass mehr als eine Instanz einer APIResource in einem Kontext gefunden wurde, in dem genau eine dieser APIResource-Instanzen zulässig ist. In einem Cluster darf beispielsweise nur eine |
Entfernen Sie die zusätzliche APIResource. |
|
Ein Namespace-Abgleicher hat nicht genügend Berechtigungen zum Verwalten von Ressourcen. |
Prüfen Sie, ob der Abgleicher die erforderlichen Berechtigungen hat. |
|
Diese Warnung wird angezeigt, wenn die Config Sync-Webhook-Konfiguration illegal geändert wird. Die ungültigen Webhook-Konfigurationen werden ignoriert. |
Entfernen Sie den illegal geänderten Webhook. |
|
Beim Rendering ist ein internes Problem aufgetreten. Config Sync kann beispielsweise nicht auf das Dateisystem zugreifen. |
Dieser Fehler kann darauf hindeuten, dass der Pod nicht fehlerfrei ist. Sie können die Abgleich-Pods neu starten, indem Sie die folgenden Befehle ausführen: # restart a root reconciler kubectl delete pod -n config-management-system -l configsync.gke.io/reconciler=root-reconciler # restart a namespace reconciler kubectl delete pod -n config-management-system -l configsync.gke.io/reconciler=ns-reconciler-NAMESPACE |
|
Dieser Fehler ist ein vorübergehendes Problem, das später automatisch behoben werden sollte. Wenn der Renderingstatus beispielsweise nicht mit der Quellkonfiguration übereinstimmt, wird möglicherweise dieser Fehler angezeigt. |
Der Fehler sollte automatisch behoben werden. |
|
Es gibt ein Problem mit dem |
Senden Sie einen Fehlerbericht, der genau den Befehl enthält, den Sie ausgeführt haben, und die Meldung, die Sie erhalten haben. |
|
Es ist ein Fehler aufgetreten, für den keine Fehlermeldung vorliegt. |
Wir haben noch keine Dokumentation zu dem aufgetretenen Fehler verfasst. |
Fehlermeldungen ohne KNV-Code
Fehler, die von Config Sync-Abgleichen gemeldet werden, haben den KNV-Fehlercode, aber Fehler, die von anderen Komponenten gemeldet werden, haben keinen KNV-Code. Der Fehler „Berechtigung verweigert“ stammt beispielsweise vom Flottencontroller, der eine Ebene über Config Sync ist.
In der folgenden Tabelle sind einige häufige Fehler ohne das KNV-Präfix aufgeführt.
Fehlermeldung | Empfohlene Maßnahmen |
---|---|
|
Exporter können nicht erstellt werden
Wenn eine Komponente in Open Telemetry Collector nicht auf das Standarddienstkonto unter demselben Namespace zugreifen kann, stellen Sie möglicherweise fest, dass der Pod Dieses Problem tritt normalerweise auf, wenn Workload Identity in einem Cluster aktiviert ist. Folgen Sie der Anleitung in Monitoring Config Sync, um dem Standarddienstkonto die Berechtigung zum Schreiben von Messwerten zu gewähren.
Wenn der Fehler nach dem Einrichten von IAM weiterhin besteht, starten Sie den |
server certificate verification failed. CAfile:/etc/ca-cert/cert CRLfile: none
|
Serverzertifikatüberprüfung fehlgeschlagen
Wenn der
Diese Nachricht gibt an, dass der Git-Server mit Zertifikaten von einer benutzerdefinierten Zertifizierungsstelle konfiguriert ist. Da die benutzerdefinierte Zertifizierungsstelle jedoch nicht richtig konfiguriert ist, kann der Container
Zur Behebung dieses Problems können Sie zuerst prüfen, ob das Feld
Wenn das Feld konfiguriert wurde und das Secret-Objekt vorhanden ist, prüfen Sie als Nächstes, ob das Secret-Objekt die vollständigen Zertifikate enthält. Hier ist ein Beispiel dafür, wie die Serverzertifikate aufgelistet werden können: echo -n | openssl s_client -showcerts -connect HOST:PORT -servername SERVER_NAME 2>/dev/null | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' Sie können Ihr Netzwerkverwaltungsteam bitten, die CA-Zertifikate für Sie abzurufen. |
Error message: "MESSAGE": "Unable to retrieve pull secret, the image pull may not succeed."
|
Pull-Secret kann nicht abgerufen werden. Der Image-Abruf ist möglicherweise nicht erfolgreich.Wenn Sie eine private Registry mit GKE on VMware verwenden, kann die Installation oder das Upgrade von Config Sync hängen bleiben. Es wird ein Fehler wie diese Meldung angezeigt. Führen Sie die Schritte unter Config Sync mit einer privaten Registry aktualisieren aus, bevor Sie Config Sync installieren oder aktualisieren, um dieses Problem zu beheben. |
Permission 'gkehub.features.create' denied on 'projects/PROJECT_ID/locations/global/features/configmanagement'
|
Berechtigung verweigertWenn Sie beim Konfigurieren von Config Sync einen Fehler wie in diesem Beispiel erhalten, haben Sie möglicherweise nicht die Rolle GKE-Hub-Administrator. Prüfen Sie, ob Sie die erforderlichen IAM-Rollen gewährt haben, damit Sie die erforderlichen Berechtigungen haben. |
Nächste Schritte
- Bekannte Probleme ansehen
- Lesen Sie die Einführung zur Fehlerbehebung bei Config Sync.
- Wenn Sie weitere Unterstützung benötigen, wenden Sie sich an Cloud Customer Care.