Problemi noti di Config Sync

Questa pagina elenca i problemi noti per le versioni supportate di Config Sync.

Molti dei problemi elencati qui sono stati risolti. La colonna Versione corretta indica la versione in cui è stata introdotta la correzione. Per ricevere questa correzione, esegui l'upgrade alla versione elencata o a una successiva.

Se fai parte del programma per sviluppatori Google, salva questa pagina per ricevere notifiche quando viene pubblicata una nota di rilascio correlata a questa pagina. Per scoprire di più, consulta Pagine salvate.

Per filtrare i problemi noti in base a una versione del prodotto o a una categoria di problemi, seleziona i filtri dai seguenti menu a discesa.

Seleziona la versione di Config Sync:

Seleziona la categoria del problema:

In alternativa, filtra i problemi noti:

Categoria Versione identificata Versione corretta Problema e soluzione alternativa
Metriche 1.5.0 1.21.0

Correzione: metriche segnalate per i pacchetti eliminati

Se elimini un oggetto RootSync o RepoSync, ma non elimini l'oggetto ResourceGroup con lo stesso nome, Config Sync continua a segnalare le seguenti metriche per quell'oggetto ResourceGroup:

  • rg_reconcile_duration_seconds
  • resource_group_total
  • resource_count
  • ready_resource_count
  • resource_ns_count
  • cluster_scoped_resource_count
  • crd_count
  • kcc_resource_count
  • pipeline_error_observed
L'oggetto ResourceGroup viene eliminato automaticamente solo se la propagazione dell'eliminazione è stata attivata prima dell'eliminazione dell'oggetto RootSync o RepoSync.

Soluzione:

Elimina l'oggetto ResourceGroup:

kubectl delete resourcegroup RESOURCE_GROUP_NAME -n config-management-system

Sostituisci RESOURCE_GROUP_NAME con il nome dell'oggetto ResourceGroup da eliminare. Per saperne di più sulla denominazione di ResourceGroup, consulta Controller ResourceGroup e oggetti ResourceGroup.

Integrità componente 1.15.0

Reconciler non pianificabile

I riconciliatori Config Sync richiedono quantità variabili di risorse, a seconda della configurazione di RootSync o RepoSync. Alcune configurazioni richiedono più risorse di altre.

Se un riconciliatore non è pianificabile, il motivo potrebbe essere la richiesta di un numero maggiore di risorse rispetto a quelle disponibili sui nodi.

Se utilizzi cluster GKE in modalità standard, le richieste di risorse del reconciler sono impostate su un valore molto basso. Questa impostazione è stata scelta nel tentativo di consentire la pianificazione, anche se ciò comporterebbe la limitazione e il rallentamento delle prestazioni, in modo che Config Sync funzioni su cluster e nodi di piccole dimensioni. Tuttavia, nei cluster GKE Autopilot, le richieste del riconciliatore sono impostate su un valore più alto, per rappresentare in modo più realistico l'utilizzo durante la sincronizzazione.

Soluzione:

GKE Autopilot o GKE Standard con provisioning automatico dei nodi abilitato dovrebbe essere in grado di vedere quante risorse vengono richieste e creare nodi di dimensioni appropriate per consentire la pianificazione. Tuttavia, se configuri manualmente le dimensioni dei nodi o delle istanze dei nodi, potresti dover modificare queste impostazioni per soddisfare i requisiti delle risorse del pod di riconciliazione.

Metriche 1.15.0

Esportazione non riuscita. Autorizzazione negata

Per impostazione predefinita, quando reconciler-manager rileva credenziali predefinite dell'applicazione, otel-collector è configurato per esportare le metriche in Prometheus, Cloud Monitoring e Monarch.

Soluzione:

otel-collector registra gli errori se non hai Configurato Cloud Monitoring o Disattivato Cloud Monitoring e Cloud Monarch.

Metriche 1.15.0

otel-collector che si arresta in modo anomalo con configurazione personalizzata

Se provi a modificare o eliminare uno dei ConfigMap predefiniti, otel-collector o otel-collector-google-cloud, otel-collector potrebbe generare errori o arrestarsi in modo anomalo perché non è in grado di caricare il ConfigMap richiesto.

Soluzione:

Per personalizzare la configurazione dell'esportazione delle metriche, crea un ConfigMap denominato otel-collector-custom nello spazio dei nomi config-management-monitoring.

Azioni

Config Sync in conflitto con se stesso

Config Sync potrebbe sembrare in una lotta tra controller. con se stesso. Questo problema si verifica se imposti il valore predefinito per un campo facoltativo di una risorsa nel repository Git. Ad esempio, l'impostazione di apiGroup: "" per l'oggetto di un RoleBinding attiva questa operazione perché il campo apiGroup è facoltativo e una stringa vuota è il valore predefinito. I valori predefiniti dei campi stringa, booleano e intero sono "", false e 0 (rispettivamente).

Soluzione:

Rimuovi il campo dalla dichiarazione della risorsa.

Azioni

Config Sync in conflitto con le risorse Config Connector

Config Sync potrebbe sembrare in conflitto con Config Connector per una risorsa, ad esempio un StorageBucket. Questo problema si verifica se non imposti il valore di un campo facoltativo di una risorsa spec.lifecycleRule.condition.withState nella fonte attendibile.

Soluzione:

Puoi evitare questo problema aggiungendo il campo withState=ANY nella dichiarazione della risorsa. In alternativa, puoi abbandonare e poi acquisire nuovamente la risorsa con l'annotazione cnrm.cloud.google.com/state-into-spec: absent.

Fonte attendibile 1.17.3 1.18.3

Correzione: errore di autenticazione SSH Git con GitHub

git-sync v4.2.1 ha un bug che rimuove il nome utente dall'URL del repository quando si utilizza SSH, causando l'autenticazione non riuscita durante la connessione a GitHub, che richiede che l'utente sia git.

Il messaggio di errore di Git è: git-sync@github.com: Permission denied (publickey).\r\nfatal: Could not read from remote repository.

Soluzione:

Utilizza un altro metodo di autenticazione.

Fonte attendibile 1.15.0 1.18.0

Correzione: credenziali di autenticazione non valide periodicamente per Cloud Source Repositories

Config Sync può generare errori periodicamente quando il token di autenticazione scade per Cloud Source Repositories. Questo problema è causato dall'attesa dell'aggiornamento del token fino alla scadenza prima di aggiornarlo.

Nella versione 1.18.0 e successive, il token viene aggiornato alla prima richiesta entro cinque minuti dalla scadenza del token. In questo modo si evita l'errore Credenziali di autenticazione non valide, a meno che le credenziali non siano effettivamente non valide.

Fonte attendibile 1.13.0 1.20.1

Correzione: impossibile generare il token di accesso per l'origine OCI

Quando Config Sync è configurato per utilizzare OCI come fonte attendibile e l'autenticazione viene eseguita con Workload Identity Federation for GKE, Config Sync potrebbe occasionalmente riscontrare errori temporanei KNV2004 quando tenta di autenticarsi con il registro dei container.

Questo problema è causato dal fatto che la libreria oauth2 aggiorna il token di autenticazione solo dopo la scadenza del token.

Il messaggio di errore potrebbe includere il seguente testo: "oauth2/google: unable to generate access token" o "ID Token issued at (xxx) is stale to sign-in."

Soluzione:

L'errore dovrebbe risolversi al successivo tentativo di Config Sync di recuperare i dati dalla fonte attendibile.

Quando Config Sync ha generato errori più volte, i tentativi diventano meno frequenti. Per forzare Config Sync a riprovare prima, elimina il pod del riconciliatore. Questa azione fa sì che Config Sync ricrei il pod del riconciliatore e recuperi immediatamente i dati dalla fonte attendibile:

    kubectl delete pod -n config-management-system RECONCILER_NAME
    
Sostituisci RECONCILER_NAME con il nome del riconciliatore dell'oggetto RootSync o RepoSync.
Fonte attendibile 1.19.0 1.20.0

Correzione: file di blocco Git persistente

Se viene visualizzato un errore simile al seguente dal container git-sync, significa che una precedente chiamata git potrebbe non essere riuscita e aver lasciato un file di blocco persistente nel container:

    KNV2004: error in the git-sync container: ... fatal: Unable to create '/repo/source/.git/shallow.lock': File exists. ...
    

Soluzione:

Per risolvere questo problema, riavvia il pod del riconciliatore interessato per assegnargli un nuovo volume effimero:

    kubectl delete pod -n config-management-system RECONCILER_NAME
    
Sostituisci RECONCILER_NAME con il nome del riconciliatore dell'oggetto RootSync o RepoSync.
Sincronizzazione 1.7.0 1.21.0

Corretto: l'annotazione di mutazione Ignora non viene rispettata

Un bug nel riconciliatore di Config Sync fa sì che applichi le modifiche dalle configurazioni dichiarate anche quando è presente l'annotazione client.lifecycle.config.k8s.io/mutation. Ciò potrebbe causare la sovrascrittura dello stato dell'oggetto nel cluster.

Soluzione:

Puoi interrompere la gestione dell'oggetto gestito aggiungendo l'annotazione configmanagement.gke.io/managed: disabled. Tuttavia, la disattivazione della gestione impedisce a Config Sync di ricreare l'oggetto se viene eliminato dal cluster. Inoltre, impedisce l'applicazione di ulteriori aggiornamenti nella fonte attendibile.

Sincronizzazione 1.5.0 1.20.1

Corretto: gli errori di rilevamento dell'API possono causare l'erronea classificazione degli oggetti gestiti come Not Found

Se il backend di un servizio API non è integro, può causare un errore nel rilevamento delle API. Se ciò si verifica durante l'avvio di ResourceGroup Controller, dopo l'aggiornamento o la riprogrammazione, l'inizializzazione della cache delle risorse non riesce, causando la segnalazione di tutti gli oggetti gestiti come Not Found nello stato di ResourceGroup.

Questo problema si verifica spesso quando metrics-server non è integro.

Soluzione:

Riavvia il pod resource-group-controller dopo che metrics-server torna in stato integro:

    kubectl delete pod -n resource-group-system RESOURCE_GROUP_CONTROLLER_NAME
    
Sostituisci RESOURCE_GROUP_CONTROLLER_NAME con il nome del controller ResourceGroup, che corrisponde al nome di RootSync o RepoSync per quel pacchetto.
Sincronizzazione 1.15.0

Numero elevato di richieste PATCH inefficaci nei log di controllo

Il correttore di Config Sync utilizza Dry-run per rilevare la deriva. Ciò può causare la visualizzazione delle richieste PATCH nel log di controllo, anche quando PATCH non viene reso persistente, perché il log di controllo non distingue tra simulazioni e richieste normali.

Soluzione:

Poiché il log di controllo non è in grado di distinguere tra richieste di prova e non di prova, puoi ignorare le richieste PATCH.
Registro privato 1.19.0

Config Sync non utilizza il registro privato per i deployment del riconciliatore

Config Sync deve sostituire le immagini per tutti i deployment quando è configurato un registro privato. Tuttavia, Config Sync non sostituisce il registro delle immagini per le immagini nei deployment del riconciliatore.

Soluzione:

Una soluzione alternativa per questo problema consiste nel configurare il mirror del registro delle immagini in containerd.

Sincronizzazione 1.17.0 1.18.3

Correzione: il riconciliatore Config Sync è in crashloop

Nelle versioni 1.17.0 o successive di Config Sync, potresti riscontrare un problema in cui il riconciliatore non riesce a creare una configurazione rest in alcuni provider Kubernetes.

Il seguente esempio mostra come potrebbe apparire questo problema nei log del riconciliatore:

Error creating rest config: failed to build rest config: reading local kubeconfig: loading REST config from "/.kube/config": stat /.kube/config: no such file or directory
Sincronizzazione 1.7.0 1.21.0

Correzione: impossibile scrivere l'inventario aggiornato nel cluster

Se Config Sync non riesce ad aggiornare lo stato di un oggetto ResourceGroup, nei log del riconciliatore potresti riscontrare un errore intermittente simile al seguente:

    KNV2009: task failed (action: "Inventory", name: "inventory-set-0"): failed to write updated inventory to cluster: Operation cannot be fulfilled on resourcegroups.kpt.dev "root-sync": the object has been modified; please apply your changes to the latest version and try again
    

Questo errore è dovuto a una race condition tra il riconciliatore e il controller ResourceGroup. Il controller ResourceGroup potrebbe aggiornare lo stato di ResourceGroup prima che il riconciliatore possa aggiornare la specifica ResourceGroup, causando l'errore KNV2009.

Soluzione:

Non esiste una soluzione alternativa per questo problema. L'errore dovrebbe risolversi da solo.

Terraform Versione Terraform 5.41.0

Config Sync non può essere installato o aggiornato utilizzando Terraform

La versione 5.41.0 di Terraform ha introdotto un nuovo campo nella risorsa google_gke_hub_feature_membership: config_sync.enabled. Poiché il valore predefinito di questo campo è false, se questo campo non è impostato esplicitamente su true, le installazioni o gli upgrade di Config Sync non vanno a buon fine quando si utilizza Terraform versione 5.41.0 o successive. Se si verifica questo problema, potresti anche visualizzare un messaggio di errore che indica git spec not included in configmanagement spec.

Soluzione:

  • Se utilizzi la risorsa google_gke_hub_feature_membership, imposta manualmente config_sync.enabled su true.
  • Se utilizzi il sottomodulo acm, ti consigliamo di passare a un modo alternativo per installare Config Sync. Se non riesci a cambiare, esegui l'upgrade alla versione v33.0.0.

Google Cloud console

Errori relativi a dati mancanti nella dashboard di Config Sync nella console Google Cloud

Potresti visualizzare errori come "dati mancanti" o "credenziali cluster non valide" per i cluster Config Sync nelle dashboard della console Google Cloud . Questo problema può verificarsi quando non hai eseguito l'accesso ai cluster GDC (VMware) o GDC (bare metal).

Soluzione:

Se visualizzi questi tipi di errori nella console Google Cloud sui tuoi cluster GDC (VMware) o GDC (bare metal), assicurati di aver eseguito l'accesso ai cluster con GKE Identity Service o Connect Gateway.

Sincronizzazione 1.21.0

Corretto: Config Sync impedisce gli aggiornamenti delle risorse abbandonate

Prima della versione 1.21.0, un oggetto RootSync o RepoSync eliminato può lasciare diverse etichette e annotazioni che Config Sync utilizza per monitorare questi oggetti risorsa.

Queste etichette e annotazioni possono causare i seguenti effetti collaterali dopo l'eliminazione di un oggetto RootSync o RepoSync:

Strumento a riga di comando nomos 1.17.0

L'interfaccia a riga di comando nomos non supporta il plug-in di autenticazione oidc

Quando utilizzi lo strumento a riga di comando nomos, potresti visualizzare errori come no Auth Provider found for name "oidc". Questo problema può verificarsi quando utilizzi il plug-in di autenticazione oidc.

Soluzione:

Non è disponibile alcuna soluzione alternativa. Il plug-in di autenticazione oidc verrà aggiunto nuovamente in una release successiva.

Torna all'inizio

Passaggi successivi