Questa pagina descrive i codici di errore di Config Sync e le azioni consigliate per gestirli.
I messaggi di errore di Config Sync sono costituiti da un ID errore nel formato KNV1234
dove 1234 è un numero univoco, seguito da una descrizione del problema e da un
suggerimento su come risolverlo. K viene ereditato dalle convenzioni di Kubernetes,
le regole con il prefisso N sono specifiche di nomos, V è specifico per
gli errori rilevabili nello stato iniziale del repository e del cluster. I codici
per gli errori rilevabili nello stato iniziale del repository e del cluster sono
della forma KNV1XXX. I codici per gli errori rilevabili solo in fase di runtime sono
della forma KNV2XXX.
Tabella degli errori KNV
| Codice di errore | Descrizione | Azione consigliata |
|---|---|---|
|
L'ID di InternalError è stato modificato in |
N/D |
|
Ritirato in Config Sync 1.3. |
N/D |
|
Ritirato in Config Sync 1.3. |
N/D |
|
Quando utilizzi una struttura di repository gerarchica, una directory che contiene una configurazione dello spazio dei nomi non deve contenere sottodirectory. Una directory senza una configurazione dello spazio dei nomi è una directory dello spazio dei nomi astratto e contiene directory che ereditano da essa. Di conseguenza, le directory dello spazio dei nomi astratto devono avere sottodirectory. Una directory contenente una configurazione dello spazio dei nomi è una directory dello spazio dei nomi e non può essere ereditata, quindi non deve avere sottodirectory. |
Rimuovi la configurazione dello spazio dei nomi dalla directory principale o sposta la sottodirectory altrove. |
|
Un oggetto con ambito cluster non deve dichiarare l'annotazione
|
Rimuovi |
|
L'unica impostazione valida per l'annotazione di gestione è
|
Assicurati che l'annotazione di gestione sia
Per saperne di più, consulta Gestione degli oggetti. |
|
Impossibile analizzare un oggetto dichiarato nel repository. |
Convalida il formato YAML. Ad esempio, puoi utilizzare il
comando
Se |
|
Quando utilizzi un repository non strutturato, le configurazioni non devono essere dichiarate in una directory dello spazio dei nomi astratto. |
Sposta la configurazione elencata nel messaggio di errore in una directory dello spazio dei nomi. Per saperne di più, consulta la pagina Utilizzo di un repository non strutturato. |
|
Quando utilizzi una struttura di repository gerarchica, le configurazioni devono dichiarare spazi dei nomi che corrispondono alla directory dello spazio dei nomi che li contiene oppure omettere il campo. |
Aggiorna il campo dello spazio dei nomi identificato nel messaggio di errore. Per maggiori informazioni, consulta la pagina Struttura del repository gerarchico. |
|
Le configurazioni non devono dichiarare annotazioni non supportate che iniziano con |
Assicurati di utilizzare una delle seguenti annotazioni supportate:
|
|
Le configurazioni non devono avere etichette con chiavi che iniziano con
|
Aggiorna le etichette identificate nel messaggio di errore. Ad esempio, se
hai provato a dichiarare un'etichetta denominata |
|
Ritirato in Config Sync 1.3. |
N/D |
|
La configurazione fa riferimento a un ClusterSelector o NamespaceSelector inesistente. Prima di poter utilizzare un selettore in un'annotazione per una configurazione, il selettore deve esistere. |
Crea i selettori mancanti oppure, se il selettore è stato rimosso, rimuovi le configurazioni che vi fanno riferimento. |
|
Le configurazioni ClusterSelector e NamespaceSelector utilizzano la sintassi corretta, ma è stato rilevato un errore di sintassi. |
Assicurati di specificare la configurazione utilizzando lo schema dei dati appropriato: |
|
Deprecato in Config Sync 1.3.2. | N/D |
|
Quando utilizzi la struttura gerarchica del repository, deve esistere una configurazione per l'operatore ConfigManagement
nella directory |
Definisci almeno una configurazione minima per l'operatore ConfigManagement. Per maggiori informazioni, consulta la pagina Struttura del repository gerarchico. |
|
Ritirato in Config Sync 1.3. | N/D |
|
Quando utilizzi la struttura gerarchica del repository, gli spazi dei nomi non devono essere dichiarati direttamente
nella directory |
Crea una sottodirectory per le configurazioni dello spazio dei nomi elencate nel messaggio di errore. Per maggiori informazioni, consulta la pagina Struttura del repository gerarchico. |
|
Quando utilizzi una struttura di repository gerarchica, una configurazione dello spazio dei nomi dichiara
metadata.name e il suo valore deve corrispondere al nome della directory dello spazio dei nomi.
|
Correggi metadata.name dello spazio dei nomi o la relativa directory. |
|
Non è definita alcuna CustomResourceDefinition per la risorsa nel cluster. |
Crea una CustomResourceDefinition per la risorsa a cui viene fatto riferimento nel messaggio di errore. I tipi di risorse che non sono oggetti Kubernetes integrati devono avere una CustomResourceDefinition. |
|
Quando utilizzi un repository gerarchico, le configurazioni di questo tipo non possono essere dichiarate nella
directory |
Sposta la risorsa a cui viene fatto riferimento nel messaggio di errore fuori dalla directory |
|
Il campo |
Se il formato del repository è compatibile con la versione supportata, aggiorna il campo
|
|
I nomi delle directory devono avere meno di 64 caratteri, essere composti da caratteri alfanumerici minuscoli o "-" e iniziare e terminare con un carattere alfanumerico. |
Rinomina o rimuovi la directory con il nome errato. |
|
Le configurazioni dello stesso tipo devono avere nomi univoci nello stesso spazio dei nomi e nei relativi spazi dei nomi astratti padre. |
Rinomina o rimuovi le configurazioni a cui viene fatto riferimento nel messaggio di errore in modo che abbiano tutte nomi univoci. |
|
Non possono esistere più risorse dello spazio dei nomi nella stessa directory. |
Rimuovi le configurazioni duplicate in modo che rimanga una sola risorsa spazio dei nomi. |
|
Tutte le configurazioni devono dichiarare |
Aggiungi il campo |
|
Il tipo |
Rimuovi la configurazione problematica o converti il repository in modo che utilizzi
|
|
Se utilizzi un repository gerarchico, puoi dichiarare solo i tipi
|
Assicurati che tutte le configurazioni dichiarate nella directory |
|
È vietato dichiarare |
Se hai dichiarato lo spazio dei nomi
Se hai dichiarato gli spazi dei nomi
Se in precedenza eseguivi la sincronizzazione con un repository gerarchico e dovevi dichiarare lo spazio dei nomi del controller insieme a tutte le risorse, valuta la possibilità di passare a un repository non strutturato per una maggiore flessibilità nella struttura delle origini. |
|
Il formato di |
Modifica
Se |
|
Ritirato in Config Sync 1.3. | N/D |
|
È vietato dichiarare un oggetto con ambito spazio dei nomi al di fuori della directory |
Sposta le configurazioni problematiche in una directory legale. Per maggiori informazioni sugli oggetti con ambito di spazio dei nomi, consulta Oggetti con ambito di spazio dei nomi. |
|
È vietato dichiarare un oggetto con ambito cluster al di fuori della directory |
Sposta le configurazioni problematiche in una directory legale. Per saperne di più sugli oggetti con ambito cluster, consulta Oggetti con ambito cluster. |
|
Ritirato in Config Sync 1.3. | N/D |
|
Questo tipo di risorsa non deve essere dichiarato in un |
Rimuovi la risorsa problematica. Per saperne di più su |
|
È stato rilevato un valore non valido per |
Modifica |
|
Config Sync non può configurare questo oggetto. |
Rimuovi la configurazione problematica dal repository. |
|
Una directory dello spazio dei nomi astratto con configurazioni deve avere almeno una sottodirectory dello spazio dei nomi. |
Aggiungi una directory dello spazio dei nomi alla directory dello spazio dei nomi astratto, aggiungi una configurazione dello spazio dei nomi alla directory dello spazio dei nomi astratto o rimuovi le configurazioni nella directory dello spazio dei nomi astratto. |
|
Le configurazioni con |
Rimuovi il campo |
|
Questo |
Aggiorna |
|
La rimozione di una definizione di risorsa personalizzata (CRD) e il mantenimento delle risorse personalizzate corrispondenti nel repository non sono consentiti. |
Rimuovi la CRD insieme alle risorse personalizzate. |
|
CustomResourceDefinition ha un nome non valido. |
Modifica il nome in base al suggerimento nel messaggio di errore. |
|
La configurazione utilizza un gruppo e un tipo deprecati. |
Modifica il gruppo o il tipo in base al suggerimento nel messaggio di errore. |
|
Le risorse con ambito cluster non devono dichiarare |
Rimuovi il campo metadata.namespace dalla risorsa con ambito cluster. |
|
Le risorse con ambito a livello di spazio dei nomi devono dichiarare |
Aggiungi il campo mancante alla risorsa con ambito dello spazio dei nomi. |
|
Le configurazioni contengono un valore non valido per un'annotazione. |
Segui le istruzioni nel messaggio di errore per risolvere il problema. |
|
Il valore di |
Aggiorna il valore di
|
|
Una risorsa è dichiarata in uno spazio dei nomi non gestito. |
Rimuovi l'annotazione |
|
Una risorsa ha un'etichetta non valida. |
Rimuovi le etichette illegali elencate nel messaggio di errore. |
|
Un repository dello spazio dei nomi può dichiarare solo risorse con ambito a livello di spazio dei nomi nello spazio dei nomi a cui si applica il repository. |
Assicurati che tutti i repository dello spazio dei nomi dichiarino correttamente le risorse con ambito a livello di spazio dei nomi.
Ad esempio, il repository per il repository dello spazio dei nomi
Ad esempio, se una configurazione nel repository dello spazio dei nomi Oltre ad assicurarti che le risorse con ambito spazio dei nomi siano dichiarate correttamente, assicurati che gli spazi dei nomi siano dichiarati nel repository principale. Ciò è necessario perché gli spazi dei nomi sono limitati al cluster. |
|
Un repository dello spazio dei nomi può dichiarare al massimo una risorsa Kptfile. |
Rimuovi tutte le risorse Kptfile tranne una. |
|
Quando gestisci oggetti in più origini attendibili, possono verificarsi conflitti quando lo stesso oggetto (gruppo corrispondente, tipo, nome e spazio dei nomi) viene dichiarato in più origini. Ad esempio, quando lo stesso oggetto viene gestito da un RootSync e un RepoSync, vince RootSync. Se RootSync viene applicato per primo, RepoSync segnala un errore di stato KNV1060. Se viene applicato prima RepoSync, RootSync sovrascrive l'oggetto di RepoSync e RepoSync segnala un errore di stato KNV1060 quando vede l'aggiornamento. |
Risolvi il conflitto aggiornando la configurazione in modo che corrisponda all'altra fonte attendibile o eliminando l'oggetto in conflitto da una delle fonti.
Il comando |
|
Un |
Segui le istruzioni nel messaggio di errore per correggere gli errori di configurazione. |
|
Il Kptfile non ha un campo inventory valido. Un Kptfile deve avere un campo inventory non vuoto con identificatore e spazio dei nomi specificati. |
Specifica i valori per |
|
Sono stati trovati file Kpt nel repository principale. I file Kptfiles sono supportati solo nei repository con ambito namespace. |
Rimuovi i Kptfile dal repository radice. |
|
Impossibile analizzare il file |
Segui le istruzioni riportate nel messaggio di errore. Ad esempio, potresti dover eseguire di nuovo
|
|
Il formato di CustomResourceDefinition non è corretto. |
Controlla il campo specificato dal messaggio di errore e assicurati che il suo valore sia formattato correttamente. |
|
Un oggetto di configurazione deve dichiarare solo l'annotazione cluster-selector. Questo errore si verifica quando esistono sia
l'annotazione legacy ( |
Rimuovi una delle annotazioni dal campo |
|
Il riconciliatore non riesce a codificare i campi dichiarati in un formato compatibile con l'applicazione lato server. Potrebbe essere causato da uno schema obsoleto. |
Controlla il campo specificato dal messaggio di errore e assicurati che corrisponda allo schema del tipo di risorsa. |
|
Il processo di rendering ha rilevato un problema che richiede l'intervento dell'utente. |
Se il repository Git contiene configurazioni Kustomize, ma non esiste alcun file
Se l'errore è causato da errori
Se si verifica un errore |
|
Un riconciliatore ha riconciliato il proprio oggetto RootSync o RepoSync. Un oggetto RootSync può gestire altri oggetti RootSync e RepoSync; un oggetto RepoSync può gestire altri oggetti RepoSync, ma non può autogestirsi. |
Rimuovi l'oggetto RootSync o RepoSync dall'origine attendibile da cui viene sincronizzato. |
|
Una chiamata di sistema a livello di sistema operativo che accede a una risorsa del file system non va a buon fine. |
Questo errore è probabilmente causato da una configurazione YAML non valida o dall'utilizzo di caratteri speciali. Se
hai una configurazione YAML non valida, viene visualizzato un messaggio di errore simile al seguente:
Se il nome o il percorso del file contiene caratteri speciali, potresti visualizzare un messaggio di errore
simile a |
|
Una richiesta di accesso al server API Kubernetes non va a buon fine. |
Le richieste API Kubernetes possono non riuscire per diversi motivi. Alcune cause comuni sono:
Config Sync riprova dopo la maggior parte degli errori del server API. Alcuni potrebbero essere problemi temporanei che si risolvono da soli, ma la maggior parte richiederà l'intervento dell'utente per essere risolti. Gli errori del server API sono raramente causati da Config Sync stesso, ma se sospetti che possano esserlo, invia una segnalazione di bug. |
|
Una chiamata di sistema generica a livello di sistema operativo non riesce. | |
|
Config Sync non può leggere dalla fonte attendibile. |
Questo errore può essere causato da diversi problemi. Per risolvere i problemi di connessione all'origine attendibile, consulta la pagina Risolvere i problemi di connessione all'origine attendibile.
Per scoprire i problemi noti che causano errori |
|
Config Sync è in conflitto con un altro controller per una risorsa. Queste battaglie consumano una grande quantità di risorse e possono peggiorare il rendimento. | Per suggerimenti su come diagnosticare e risolvere i conflitti tra controller, consulta Risolvere i problemi di conflitti tra controller. |
|
Per evitare l'eliminazione accidentale, Config Sync non consente di rimuovere tutti gli spazi dei nomi o le risorse con ambito cluster in un unico commit. |
Se il webhook di ammissione di Config Sync è disattivato, ripristina il commit che elimina tutte le risorse.
Se vuoi eliminare l'intero insieme di risorse gestite, completa i seguenti passaggi:
|
|
Una risorsa sul server API viene modificata o eliminata mentre Config Sync tenta anche di modificarla. |
Se questo tipo di errore viene visualizzato solo all'avvio o di rado, puoi ignorarlo.
Se questi errori non sono temporanei (persistono per diversi minuti), potrebbero indicare un problema grave e |
|
Si tratta di un errore generico che indica che Config Sync non è riuscito a sincronizzare alcune configurazioni con il cluster. |
Esistono diversi problemi che possono causare questo errore. Per suggerimenti su come risolvere i problemi comuni di sincronizzazione, consulta la sezione Risolvere i problemi di sincronizzazione. |
|
Si tratta di un errore generico che indica un problema con una risorsa o un insieme di risorse. |
Il messaggio di errore include le risorse specifiche che hanno causato l'errore. Esamina queste risorse. |
|
Per procedere è necessaria una risorsa specifica, ma non è stata trovata. Ad esempio, l'operatore ConfigManagement ha tentato di aggiornare una risorsa, ma la risorsa è stata eliminata durante il calcolo dell'aggiornamento. |
Crea o ripristina la risorsa mancante. |
|
Questo errore segnala che è stata trovata più di un'istanza di un APIResource in un contesto
in cui è consentita esattamente una di queste APIResource. Ad esempio, in un cluster deve esistere una sola risorsa |
Rimuovi l'APIResource aggiuntiva. |
|
Un riconciliatore dello spazio dei nomi non dispone di autorizzazioni sufficienti per gestire le risorse. |
Assicurati che il riconciliatore disponga di autorizzazioni sufficienti. |
|
Questo avviso si verifica quando la configurazione del webhook Config Sync viene modificata illegalmente. Le configurazioni webhook illegali vengono ignorate. |
Rimuovi il webhook modificato illegalmente. |
|
Il processo di rendering ha riscontrato un problema interno. Ad esempio, Config Sync non è in grado di accedere al file system. |
Questo errore potrebbe indicare che il pod non è integro. Puoi riavviare i pod del reconciler eseguendo i seguenti comandi: # 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 |
|
Questo errore rappresenta un problema temporaneo che dovrebbe risolversi automaticamente in un secondo momento. Ad esempio, se lo stato di rendering non corrisponde alla configurazione di origine, potresti visualizzare questo errore. |
L'errore dovrebbe risolversi automaticamente. |
|
Si è verificato un problema con Config Sync. |
Invia una segnalazione di bug. |
|
Si è verificato un errore senza un messaggio di errore documentato. |
Non abbiamo ancora scritto una documentazione specifica per l'errore che hai riscontrato. |
Messaggi di errore senza codice KNV
Gli errori segnalati dai riconciliatori di Config Sync hanno il codice di errore KNV, ma gli errori segnalati da altri componenti non hanno il codice KNV. Ad esempio, l'errore di autorizzazione negata proviene dal controller del parco risorse, che è un livello sopra Config Sync.
La seguente tabella elenca alcuni errori comuni senza il prefisso KNV.
| Messaggio di errore | Azione consigliata |
|---|---|
|
|
Impossibile creare esportatori
Quando un componente di OpenTelemetry Collector non riesce ad accedere al account di servizio predefinito nello stesso spazio dei nomi, potresti notare che il pod Questo problema si verifica in genere quando Workload Identity Federation for GKE è abilitato in un cluster. Per risolvere il problema, segui le istruzioni riportate in Monitoraggio di Config Sync per concedere l'autorizzazione di scrittura delle metriche al account di servizio predefinito.
Se l'errore persiste dopo la configurazione di IAM, riavvia il
pod |
server certificate verification failed. CAfile:/etc/ca-cert/cert CRLfile: none
|
Verifica del certificato del server non riuscita
Se il contenitore Questo messaggio indica che il server è configurato con certificati di un'autorità di certificazione (CA) personalizzata. Tuttavia, la CA personalizzata non è configurata correttamente, pertanto il container non riesce a recuperare i dati dal server.
Per risolvere il problema, innanzitutto puoi verificare se il campo
Successivamente, se il campo è stato configurato e l'oggetto Secret esiste,
assicurati che l'oggetto Secret contenga i certificati completi. Ecco un esempio di come elencare i certificati del server: echo -n | openssl s_client -showcerts -connect HOST:PORT -servername SERVER_NAME 2>/dev/null | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' Puoi chiedere al tuo team di amministrazione di rete di ottenere i certificati CA per te. |
Error message: "MESSAGE": "Unable to retrieve pull secret, the image pull may not succeed."
|
Impossibile recuperare il pull secret, il pull dell'immagine potrebbe non riuscireSe utilizzi un registro privato con Google Distributed Cloud, l'installazione o l'upgrade di Config Sync può bloccarsi. Visualizzerai un errore simile a questo messaggio. Per risolvere il problema, segui i passaggi descritti in Aggiorna Config Sync utilizzando un registro privato prima di installare o eseguire l'upgrade di Config Sync. |
Permission 'gkehub.features.create' denied on 'projects/PROJECT_ID/locations/global/features/configmanagement'
|
Autorizzazione negataSe ricevi un errore simile a questo esempio quando provi a configurare Config Sync, potresti non disporre del ruolo Amministratore GKE Hub. Per assicurarti di disporre delle autorizzazioni richieste, assicurati di aver concesso i ruoli IAM richiesti. |
Passaggi successivi
- Visualizza i problemi noti.
- Leggi l'introduzione alla risoluzione dei problemi di Config Sync.
- Se hai bisogno di ulteriore assistenza, contatta l'assistenza clienti Google Cloud.