Risoluzione dei problemi di Config Controller

Questa pagina mostra come risolvere i problemi relativi a Config Controller.

Rete predefinita non disponibile

Quando crei il controller di configurazione, potresti ricevere un messaggio di errore relativo alla 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 perché Config Controller dipende dalla rete predefinita in Google Cloud. Per risolvere questo problema, devi creare una nuova rete predefinita:

gcloud compute networks create default --subnet-mode=auto

In alternativa, puoi selezionare una rete diversa utilizzando il flag --network nel comando gcloud anthos config controller create.

Valore non valido per MasterIpv4GoogrBlock

La creazione di Config Controller utilizza una subnet predefinita di 172.16.0.128/28 per il CIDR IPv4 del piano di controllo. In caso di conflitto nel blocco CIDR IPv4, la creazione di Config Controller non riesce con questo 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 config controller create.

Per trovare i blocchi CIDR IPv4 già in uso, segui questi passaggi:

  1. Trova il nome del peering:

    gcloud compute networks peerings list --network=NETWORK
    

    Sostituisci NETWORK con 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.
    
  2. Mostra il CIDR IPv4 utilizzato dal peering:

    gcloud compute networks peerings list-routes PEERING_NAME \
        --direction=INCOMING \
        --network=NETWORK \
        --region=us-central1
    

    Sostituisci quanto segue:

    • PEERING_NAME: il nome del peering che vuoi cercare
    • NETWORK: il nome della rete che vuoi cercare

Errori di sincronizzazione

Le configurazioni nel tuo repository Git vengono sincronizzate con Config Controller utilizzando Config Sync. Puoi controllare la presenza di errori in questo processo di sincronizzazione utilizzando il comando nomos status:

nomos status  --contexts $(kubectl config current-context)

Risolvere i problemi delle risorse di Config Connector

Campi e risorse immutabili

Alcuni campi delle risorse Google Cloud sottostanti sono immutabili, ad esempio gli ID progetto o il nome della rete VPC. Config Connector blocca le modifiche a tali campi e non è in grado di applicare le modifiche. Se vuoi modificare uno di questi campi immutabili, devi prima eliminare la risorsa originale (tramite Git) prima di riaggiungerla con i nuovi valori preferiti.

Risorse bloccate

In alcuni casi, le risorse potrebbero non essere eliminate correttamente (come segnalato da nomos status). È possibile risolvere il problema rimuovendo i finalizzatori sulla risorsa, quindi eliminandola manualmente.

Ad esempio, per eliminare un IAMPolicyMember bloccato, esegui il comando seguente:

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