Questa pagina mostra come risolvere i problemi relativi a Config Controller.
Troubleshoot installation
No network named default
Quando crei l'istanza Config Controller, potresti ricevere un errore che indica che la rete predefinita non è disponibile:
Error 400: Project \"PROJECT_ID\" has no network named \"default\"., badRequest\n\n on main.tf line 35, in resource \"google_container_cluster\" \"acp_cluster\"
Questo errore si verifica se non hai specificato una rete esistente con il
--network
flag e la tua rete predefinita in Google Cloud
è stata eliminata o disattivata. Per impostazione predefinita, Config Controller crea il cluster Google Kubernetes Engine che supporta l'istanza Config Controller nella rete predefinita.
Se vuoi creare l'istanza in una rete esistente, aggiungi il
--network=NETWORK flag quando crei la tua
istanza Config Controller. Sostituisci NETWORK con il nome di una rete esistente.
Se vuoi creare l'istanza Config Controller nella rete predefinita, ricrea la rete predefinita con il seguente comando:
gcloud compute networks create default --subnet-mode=auto
Affinché questo comando funzioni, è necessario abilitare le subnet automatiche con il flag --subnet-mode=auto.
Dopo aver ricreato la rete predefinita, puoi omettere il flag --network quando crei l'istanza Config Controller.
Invalid value for MasterIpv4CidrBlock
La creazione di Config Controller utilizza una subnet predefinita di 172.16.0.128/28 per
il CIDR IPv4 del control plane.
Se si verifica un conflitto nel blocco CIDR IPv4, la creazione di Config Controller non riesce e viene visualizzato il seguente errore:
Cloud SSA\n\nError: Error waiting for creating GKE cluster: Invalid value for field PrivateClusterConfig.MasterIpv4CidrBlock: 172.16.0.128/28 conflicts with an existing subnet in one of the peered VPCs.
Se visualizzi questo errore, seleziona un CIDR IPv4 privato diverso e utilizzalo con il flag --master-ipv4-cidr-block nel comando gcloud anthos config controller create.
Per trovare i blocchi CIDR IPv4 già in uso, completa i seguenti passaggi:
Trova il nome del peering:
gcloud compute networks peerings list --network=NETWORKSostituisci
NETWORKcon il nome della rete che vuoi cercare.L'output è simile al seguente:
NAME NETWORK PEER_PROJECT PEER_NETWORK PEER_MTU IMPORT_CUSTOM_ROUTES EXPORT_CUSTOM_ROUTES STATE STATE_DETAILS gke-n210ce17a4dd120e16b6-7ebf-959a-peer default gke-prod-us-central1-59d2 gke-n210ce17a4dd120e16b6-7ebf-0c27-net False False ACTIVE [2021-06-08T13:22:07.596-07:00]: Connected.Mostra il CIDR IPv4 utilizzato dal peering:
gcloud compute networks peerings list-routes PEERING_NAME \ --direction=INCOMING \ --network=NETWORK \ --region=REGIONSostituisci quanto segue:
PEERING_NAME: il nome del peering che vuoi cercareNETWORK: il nome della rete che vuoi cercareREGION: il nome della regione in cui si trova l'istanza Config Controller
Troubleshoot issues while running Config Controller
Ran out of pool di nodi IPs
Se visualizzi il seguente messaggio di errore, è possibile che i tuoi node pool non abbiano indirizzi IP sufficienti:
Can't scale up because instances in managed instance groups hosting node pools ran out of IPs
Questo problema può verificarsi se ometti il flag --cluster-ipv4-cidr-block. Se ometti questo flag, Config Controller utilizza per impostazione predefinita l'intervallo CIDR pod /20.
Questo intervallo ti offre un massimo di 16 nodi.
Se hai bisogno di più nodi, elimina l'istanza Config Controller perché non puoi modificare il blocco CIDR dopo la creazione. Quando ricrei l'
istanza Config Controller, utilizza il parametro facoltativo
--cluster-ipv4-cidr-block e specifica l'
CIDR range or netmask size.
Missing dashboard information
Se non vedi i dettagli di Config Controller nella Google Cloud console dashboard, è possibile che l'account di servizio predefinito utilizzato da Config Controller non disponga delle autorizzazioni Google Cloud Observability necessarie.
Per concedere queste autorizzazioni, utilizza i seguenti comandi:
# Cloud Monitoring metrics permissions
gcloud projects add-iam-policy-binding PROJECT_ID \
--role=roles/monitoring.metricWriter \
--condition=None \
--member="serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com"
gcloud projects add-iam-policy-binding PROJECT_ID \
--role=roles/stackdriver.resourceMetadata.writer \
--condition=None \
--member="serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com"
gcloud projects add-iam-policy-binding PROJECT_ID \
--role=roles/opsconfigmonitoring.resourceMetadata.writer \
--condition=None \
--member="serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com"
# Cloud Logging permissions
gcloud projects add-iam-policy-binding PROJECT_ID \
--role=roles/logging.logWriter \
--condition=None \
--member="serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com"
# Cloud Trace permissions\
gcloud projects add-iam-policy-binding PROJECT_ID \
--role=roles/cloudtrace.agent \
--condition=None \
--member="serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com"
Sostituisci quanto segue:
PROJECT_ID: l'ID del progetto in cui hai creato l'istanza Config ControllerPROJECT_NUMBER: il numero del Google Cloud progetto
Troubleshoot components
Poiché l'istanza Config Controller viene fornita con Policy Controller, Config Sync e Config Connector preinstallati, potresti riscontrare problemi con questi componenti. Per scoprire come risolvere i problemi relativi a questi componenti, consulta le seguenti pagine:
- Risolvere i problemi di Policy Controller
- Introduzione alla risoluzione dei problemi di Config Sync
- Risolvere i problemi di Config Connector
Le sezioni seguenti forniscono indicazioni su alcuni dei problemi più comuni che potresti riscontrare quando utilizzi Config Controller con questi componenti.
Sync errors
Le configurazioni nella tua fonte attendibile (ad esempio un repository Git o un'immagine OCI) vengono sincronizzate con l'istanza Config Controller tramite Config Sync. Verifica la presenza di errori in questo processo di sincronizzazione utilizzando il
nomos status comando:
nomos status --contexts $(kubectl config current-context)
Troubleshoot Config Connector resources
Immutable fields and resources
Alcuni campi dellerisorse sottostanti Google Cloud sono immutabili, ad esempio gli ID progetto o il nome della rete VPC. Config Connector blocca le modifiche a questi campi e non è in grado di attuare le modifiche. Se vuoi modificare uno di questi campi immutabili, devi eliminare la risorsa originale (tramite Git) prima di aggiungerla di nuovo con i valori che preferisci.
Stuck resources
A volte, l'eliminazione delle risorse potrebbe non riuscire correttamente (come indicato da nomos
status). Puoi risolvere questo problema rimuovendo i
finalizzatori
dalla risorsa e poi eliminando la risorsa manualmente.
Ad esempio, per eliminare un IAMPolicyMember bloccato, esegui il seguente comando:
kubectl patch IAMPolicyMember logging-sa-iam-permissions \
-p '{"metadata":{"finalizers":[]}}' --type=merge -n config-control
kubectl delete IAMPolicyMember logging-sa-iam-permissions -n config-control
Passaggi successivi
- Se hai bisogno di ulteriore assistenza, contatta l'assistenza clienti Google Cloud.