Best practice per Config Connector


Questa pagina illustra le best practice da considerare quando utilizzi Config Connector.

Gestire i limiti di quota dell'API

Se hai riscontrato errori che indicano che hai superato il limite di quota dell'API, è possibile che tu abbia creato troppe risorse Config Connector dello stesso tipo nello stesso progetto quota. Quando crei molte risorse, queste possono generare troppe richieste API allo stesso endpoint API a causa della strategia di riconciliazione utilizzata da Config Connector.

Un modo per risolvere il problema è richiedere un aumento della quota. Oltre a un aumento della quota, se hai confermato che l'errore di quota è causato da richieste GET rivolte alle Google Cloud risorse gestite da Config Connector, potresti prendere in considerazione una delle seguenti opzioni:

Aumentare l'intervallo di riconciliazione

Puoi aumentare il tempo tra una riconciliazione di una risorsa da parte di Config Connector e un'altra per evitare di raggiungere le quote dell'API. Ti consigliamo di impostare l'intervallo di riconciliazione su 1 ora.

Per aumentare l'intervallo di riconciliazione, segui la procedura descritta in Configurare l'intervallo di riconciliazione.

Suddividere le risorse in più progetti

Questo approccio distribuisce le risorse di Config Connector su diversi progetti. Questo approccio funziona bene quando aggiungi nuove risorse, ma può essere rischioso suddividere le risorse esistenti perché devi eliminarle e ricrearle in progetti diversi. L'eliminazione delle risorse può causare la perdita di dati con alcuni tipi di risorse, ad esempio le risorse SpannerInstance o BigtableTable. Ti consigliamo di eseguire il backup dei dati prima di eliminarli.

Per suddividere le risorse Config Connector esistenti in progetti diversi, completa i seguenti passaggi:

  1. Decidi quali risorse di Config Connector vuoi spostare in progetti diversi.
  2. Elimina le risorse di Config Connector. Assicurati che l'annotazione cnrm.cloud.google.com/deletion-policy non sia impostata su abandon.
  3. Aggiorna il campo spec.projectRef o l'annotazione cnrm.cloud.google.com/project-id nella configurazione YAML delle risorse del connettore di configurazione che prevedi di spostare nei nuovi progetti.
  4. Concedi all'account di servizio IAM utilizzato da Config Connector le autorizzazioni appropriate per i nuovi progetti.
  5. Applica la configurazione YAML aggiornata per creare le risorse di Config Connector.

Passare alla modalità con nome di spazio

Puoi associare diversi account di servizio IAM di proprietà di diversi Google Cloud progetti a diversi spazi dei nomi in cui Config Connector è installato in modalità con spazi dei nomi, e suddividere le risorse in diversi spazi dei nomi. Per farlo, segui questa procedura:

  1. Configura il connettore Config per l'esecuzione in modalità con spazio dei nomi. Crea nuovi account di servizio IAM da progetti diversi e associali a diversi spazi dei nomi seguendo le istruzioni per configurare Config Connector per ogni progetto.

  2. Concedi ai nuovi account di servizio IAM le autorizzazioni appropriate al progetto che contiene le risorse.

  3. Decidi quali risorse di Config Connector vuoi spostare in diversi spazi dei nomi.

  4. Aggiorna la configurazione YAML delle risorse Config Connector e imposta l'cnrm.cloud.google.com/deletion-policyannotazione abandon.

  5. Applica la configurazione YAML aggiornata per aggiornare il criterio di eliminazione delle risorse di Config Connector.

  6. Abbandona le risorse di Config Connector.

  7. Aggiorna il campo metadata.namespace nella configurazione YAML delle risorse Config Connector che prevedi di spostare nei diversi spazi dei nomi.

  8. Applica la configurazione YAML aggiornata per acquisire le risorse abbandonate.

Gestire i pool di nodi nei cluster GKE

Potresti riscontrare errori quando crei un cluster applicando una risorsa ContainerCluster in Config Connector e poi provi ad aggiornare ContainerCluster o altri campi relativi ai nodi applicando una configurazione ContainerCluster aggiornata.nodeConfig Questi errori sono dovuti a campi immutabili come nodeConfig, nodeConfig.labels, nodeConfig.taint, che rappresentano una limitazione tecnica dell'Google Cloud API di base.

Se devi aggiornare questi campi, puoi utilizzare la risorsa ContainerNodePool per gestire i pool di nodi in cui questi campi non sono immutabili. Per gestire i pool di nodi utilizzando la risorsa ContainerNodePool, devi specificare un'annotazione cnrm.cloud.google.com/remove-default-node-pool: "true". Questa annotazione rimuove il pool di nodi predefinito creato durante la creazione del cluster. Poi, per creare pool di nodi separati, specifica i campi nodeConfig in ContainerNodePool anziché in ContainerCluster. Consulta l'esempio di risorsa ContainerNodePool come riferimento.

Devi impostare l'annotazione cnrm.cloud.google.com/state-into-spec: absent per entrambe le risorse ContainerCluster e ContainerNodePool. Questa annotazione evita potenziali errori di riconciliazione durante l'interazione tra il controller Config Connector e le API sottostanti.

Gli esempi riportati di seguito mostrano una configurazione ContainerCluster e ContainerNodePool con queste annotazioni impostate:

apiVersion: container.cnrm.cloud.google.com/v1beta1
kind: ContainerCluster
metadata:
  name: containercluster-sample
  annotations:
    cnrm.cloud.google.com/remove-default-node-pool: "true"
    cnrm.cloud.google.com/state-into-spec: absent
spec:
  description: A sample cluster.
  location: us-west1
  initialNodeCount: 1
apiVersion: container.cnrm.cloud.google.com/v1beta1
kind: ContainerNodePool
metadata:
  labels:
    label-one: "value-one"
  name: containernodepool-sample
  annotations:
    cnrm.cloud.google.com/state-into-spec: absent
spec:
  location: us-west1
  autoscaling:
    minNodeCount: 1
    maxNodeCount: 3
  nodeConfig:
    machineType: n1-standard-1
    preemptible: false
    oauthScopes:
      - "https://www.googleapis.com/auth/logging.write"
      - "https://www.googleapis.com/auth/monitoring"
  clusterRef:
    name: containercluster-sample