Messaggi di errore
In questa pagina vengono descritti i codici di errore di Config Sync e le azioni consigliate per gestire questi errori.
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 un suggerimento su come risolverlo. K
viene ereditato dalle convenzioni Kubernetes, le regole con il prefisso N
sono specifiche per nomos
, mentre V
è specifica 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 nel formato KNV1XXX
. I codici per gli errori che possono essere rilevati solo in fase di runtime sono nel formato KNV2XXX
.
Tabella degli errori KNV
Codice di errore | Descrizione | Azione consigliata |
---|---|---|
|
L'ID di InternalError è stato modificato in |
N/A |
|
Deprecato in Config Sync 1.3. |
N/A |
|
Deprecato in Config Sync 1.3. |
N/A |
|
Quando utilizzi una struttura di repository gerarchica, una directory che contiene una configurazione dello spazio dei nomi non deve contenere sottodirectory. Una directory senza configurazione dello spazio dei nomi è una directory dello spazio dei nomi astratta dalle cui directory vengono ereditate. Di conseguenza, le directory degli spazi dei nomi astratte devono avere sottodirectory. Una directory contenente una configurazione dello spazio dei nomi è una directory dello spazio dei nomi da cui non può essere ereditata, perciò non deve avere sottodirectory. |
Rimuovi la configurazione dello spazio dei nomi dalla directory padre 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 ulteriori informazioni, consulta Gestione degli oggetti. |
|
Impossibile analizzare un oggetto dichiarato nel repository. |
Convalida il formato YAML. Ad esempio, puoi usare il comando
Se |
|
Se utilizzi un repository non strutturato, le configurazioni non devono essere dichiarate in una directory dello spazio dei nomi astratta. |
Sposta la configurazione elencata nel messaggio di errore in una directory dello spazio dei nomi. Per maggiori informazioni, consulta 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 le contiene oppure omettere il campo. |
Aggiorna il campo dello spazio dei nomi identificato nel messaggio di errore. Per maggiori informazioni, consulta 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 |
|
Deprecato in Config Sync 1.3. |
N/A |
|
La configurazione fa riferimento a un ClusterSelector o NamespaceSelector che non esiste. Prima di poter utilizzare un selettore in un'annotazione per una configurazione, è necessario che esista. |
Crea i selettori mancanti o, 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 di dati appropriato: |
|
Deprecato in Config Sync 1.3.2. | N/A |
|
Se utilizzi la struttura gerarchica del repository, è necessario che esista una configurazione per l'operatore ConfigManagement nella directory |
Definisci almeno una configurazione minima per l'operatore ConfigManagement. Per saperne di più, consulta Struttura del repository gerarchico. |
|
Deprecato in Config Sync 1.3. | N/A |
|
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 saperne di più, consulta 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 o la relativa directory dello spazio dei nomi. |
|
Non è definito CustomResourceDefinition per la risorsa nel cluster. |
Creare una risorsa 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. |
|
Se utilizzi un repository gerarchico, configurazioni di questo tipo non possono essere dichiarate nella
directory |
Sposta la risorsa a cui si fa 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 contenere meno di 64 caratteri, essere costituiti da caratteri alfanumerici minuscoli o "-" e devono 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 i relativi spazi dei nomi astratti padre. |
Rinomina o rimuovi tutte le configurazioni indicate nel messaggio di errore in modo che abbiano nomi univoci. |
|
Non possono esistere più risorse dello spazio dei nomi nella stessa directory. |
Rimuovi le configurazioni duplicate in modo che non rimanga più di una risorsa dello 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 le configurazioni dichiarate nella directory |
|
È vietato dichiarare lo spazio dei nomi
A partire da Config Sync versione 1.17.0, anche gli spazi dei nomi |
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 qualsiasi risorsa, valuta la possibilità di passare a un repository non strutturato per una maggiore flessibilità nella struttura di origine. |
|
Il formato |
Modifica
Se |
|
Deprecato in Config Sync 1.3. | N/A |
|
È vietato dichiarare un oggetto con ambito dello spazio dei nomi al di fuori della
directory |
Sposta le configurazioni problematiche in modo che si trovino in una directory legale. Per saperne di più sugli oggetti con ambito dello spazio dei nomi, consulta Oggetti con ambito a livello di spazio dei nomi. |
|
È vietato dichiarare un oggetto con ambito cluster al di fuori della directory |
Sposta le configurazioni problematiche in modo che si trovino in una directory legale. Per saperne di più sugli oggetti con ambito cluster, consulta Oggetti con ambito cluster. |
|
Deprecato in Config Sync 1.3. | N/A |
|
Questo tipo di risorsa non deve essere dichiarato in un |
Rimuovi la risorsa problematica. Per saperne di più su |
|
È stato rilevato un valore non ammesso per |
Modifica |
|
Config Sync non può configurare questo oggetto. |
Rimuovi la configurazione problematica dal repository. |
|
Una directory dello spazio dei nomi astratta con configurazioni deve avere almeno una sottodirectory dello spazio dei nomi. |
Aggiungi una directory dello spazio dei nomi astratta, aggiungi una configurazione dello spazio dei nomi astratta o rimuovi le configurazioni nella directory dello spazio dei nomi astratta. |
|
Le configurazioni con |
Rimuovi il campo |
|
Questo |
Aggiorna |
|
Non è consentito rimuovere una definizione di risorse personalizzate (CRD) e lasciare le risorse personalizzate corrispondenti nel repository. |
Rimuovi il CRD insieme alle risorse personalizzate. |
|
CustomResourceDefinition ha un nome non valido. |
Modifica il nome scegliendo quello consigliato nel messaggio di errore. |
|
La configurazione utilizza un gruppo e un tipo deprecati. |
Modifica Gruppo o Tipo con il consiglio 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 per correggere l'errore. |
|
Il valore di |
Aggiorna il valore di
|
|
Una risorsa è stata dichiarata in uno spazio dei nomi non gestito. |
Rimuovi l'annotazione |
|
Una risorsa ha un'etichetta non valida. |
Rimuovi le etichette non consentite elencate nel messaggio di errore. |
|
Un repository dello spazio dei nomi può dichiarare le risorse con ambito dello spazio dei nomi solo nello spazio dei nomi in cui si applica. |
Assicurati che tutti i repository dello spazio dei nomi dichiarano correttamente le risorse con ambito dello 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 dello spazio dei nomi siano dichiarate correttamente, assicurati che gli spazi dei nomi siano dichiarati nel repository principale. Questa operazione è necessaria perché gli spazi dei nomi sono basati sul cluster. |
|
Un repository dello spazio dei nomi può dichiarare al massimo una risorsa Kptfile. |
Rimuovi tutte le risorse Kptfile tranne una. |
|
Quando si gestiscono oggetti in più fonti attendibili, possono verificarsi conflitti quando lo stesso oggetto (gruppo, tipo, nome e spazio dei nomi corrispondente) viene dichiarato in più di un'origine. Ad esempio, quando lo stesso oggetto è gestito da un RootSync e un RepoSync, RootSync vince. Se RootSync viene applicato prima, RepoSync segnala un errore di stato KNV1060. Se viene applicato prima il RepoSync, RootSync sovrascrive l'oggetto di RepoSync e segnala un errore di stato KNV1060 quando rileva l'aggiornamento. |
Risolvi il conflitto aggiornando la configurazione in modo che corrisponda all'altra fonte di riferimento oppure eliminando l'oggetto in conflitto da una delle origini.
Il comando |
|
Un |
Segui le istruzioni nel messaggio per correggere gli errori di configurazione. |
|
Il file Kptfile non ha un campo inventario valido. Un Kptfile deve avere un campo dell'inventario non vuoto con sia identificatore che spazio dei nomi specificati. |
Specifica i valori per |
|
Sono stati trovati file kpt nel repository radice. I file kptfile sono supportati solo nei repository con ambito dello spazio dei nomi. |
Rimuovi i Kptfile dal repository root. |
|
Impossibile analizzare il file |
Segui le istruzioni nel messaggio di errore. Ad esempio, potresti dover eseguire nuovamente
In |
|
Il formato di CustomResourceDefinition non è valido. |
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 codifica i campi dichiarati in un formato compatibile con l'attributo applicazione lato server. Il problema potrebbe essere dovuto a 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 riscontrato un problema utilizzabile dall'utente. |
Se il repository Git contiene configurazioni Kustomize, ma non esiste nessun file
Se l'errore è causato da errori relativi a
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 possono gestirsi autonomamente. |
Rimuovi l'oggetto RootSync o RepoSync dalla fonte attendibile da cui viene sincronizzato l'oggetto. |
|
Una chiamata di sistema a livello di sistema operativo che accede a una risorsa di file system non riesce. |
Questo errore è probabilmente causato da una configurazione YAML non valida o dall'utilizzo di caratteri speciali. Se hai
una configurazione YAML non valida, vedrai un messaggio di errore simile al seguente:
Se il nome del file o il percorso contiene caratteri speciali, potresti visualizzare un messaggio di errore simile a |
|
Una richiesta di accesso al server API ha esito negativo. |
È possibile che si sia verificato un errore di rilevamento dell'API. Per scoprire di più, consulta la pagina Errori di rilevamento delle API. |
|
Una chiamata di sistema generica a livello di sistema operativo ha esito negativo. | |
|
Config Sync non può leggere dall'origine attendibile. |
Esistono diversi problemi che possono causare questo errore. Per suggerimenti su come risolvere i problemi comuni di connessione alla fonte attendibile, consulta la pagina Risolvere i problemi di connessione alla fonte attendibile. |
|
Config Sync sta lottando con un altro controller su una risorsa. Questi combattimenti consumano un'elevata quantità di risorse e possono compromettere le prestazioni. | Per suggerimenti su come diagnosticare e risolvere i problemi dei controller, consulta la pagina Risolvere i problemi relativi ai 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 singolo commit. |
Se il webhook di ammissione Config Sync è disabilitato, ripristina il commit che elimina tutte le risorse.
Se vuoi eliminare l'insieme completo di risorse in gestione, segui questi passaggi:
|
|
Una risorsa sul server API viene modificata o eliminata mentre anche Config Sync sta tentando di modificarla. |
Se questo tipo di errore viene visualizzato solo all'avvio o raramente, puoi ignorarli.
Se questi errori non sono temporanei (permangono 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 più 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 la risorsa non è stata trovata. Ad esempio, l'operatore ConfigManagement ha provato ad aggiornare una risorsa, ma questa è 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'APIAPI in un contesto in cui è consentita una sola risorsa API. Ad esempio, in un cluster deve esistere una sola risorsa |
Rimuovi l'APIResource aggiuntiva. |
|
Uno strumento di riconciliazione dello spazio dei nomi non ha 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 di webhook illegali vengono ignorate. |
Rimuovi il webhook modificato illegalmente. |
|
Si è verificato un problema interno durante il processo di rendering. 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 riconciliatore eseguendo i comandi seguenti: # 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 del rendering non corrisponde alla configurazione di origine, potresti visualizzare questo errore. |
L'errore dovrebbe risolversi automaticamente. |
|
Si è verificato un problema con lo strumento a riga di comando |
Invia una segnalazione di bug con il comando esatto che hai eseguito e il messaggio che hai ricevuto. |
|
Si è verificato un errore senza alcun messaggio di errore documentato. |
Non abbiamo ancora scritto documentazione specifica sull'errore che hai riscontrato. |
Messaggi di errore senza codice KNV
Gli errori segnalati dai riconciliatori di Config Sync presentano il codice KNV, mentre gli errori segnalati da altri componenti sono privi di questo codice. Ad esempio, l'errore di autorizzazione negata proviene dal controller del parco risorse, che è un livello superiore a Config Sync.
Nella tabella seguente sono elencati alcuni errori comuni senza il prefisso KNV.
Messaggio di errore | Azione consigliata |
---|---|
|
Impossibile creare esportatori
Quando un componente in Open Telemetry Collector non può accedere all'account di servizio predefinito nello stesso spazio dei nomi, potresti notare che il pod Questo problema di solito si verifica quando Workload Identity è abilitato in un cluster. Per risolvere il problema, segui le istruzioni in Monitoring Config Sync per concedere l'autorizzazione di scrittura delle metriche all'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 server non riuscita
Se il container Questo messaggio indica che il server è configurato con certificati di un'autorità di certificazione (CA) personalizzata. Tuttavia, la CA personalizzata non è configurata correttamente e ciò comporta l'impossibilità di recuperare il container dal server.
Per risolvere il problema, innanzitutto puoi verificare se il campo
Quindi, se il campo è stato configurato ed esiste l'oggetto Secret, assicurati che l'oggetto Secret contenga i certificati completi. Ecco un esempio di come elencare i certificati server: echo -n | openssl s_client -showcerts -connect HOST:PORT -servername SERVER_NAME 2>/dev/null | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' Puoi richiedere al tuo team di amministrazione di rete di ottenere i certificati CA per tuo conto. |
Error message: "MESSAGE": "Unable to retrieve pull secret, the image pull may not succeed."
|
Impossibile recuperare il secret di pull, il pull dell'immagine potrebbe non riuscireSe utilizzi un registro privato con GKE su VMware, l'installazione o l'upgrade di Config Sync potrebbe bloccarsi. Verrà visualizzato un errore simile a questo messaggio. Per risolvere questo problema, segui i passaggi descritti in Aggiornare 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 supporto, contatta l'assistenza clienti Google Cloud.