Best practice per Config Connector

Questa pagina illustra le best practice da prendere in considerazione quando utilizzi Config Connector.

Gestisci i limiti di quota API

Se si sono verificati errori che indicano che hai superato il limite di quota API, potrebbe essere che tu abbia creato troppe risorse Config Connector con lo stesso tipo di oggetto, ad esempio deployment, nello stesso progetto di 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 rispetto alle risorse Google Cloud gestite dalle risorse Config Connector, potresti prendere in considerazione una delle seguenti opzioni:

Aumentare l'intervallo di riconciliazione

Puoi aumentare il tempo che intercorre tra la riconciliazione di una risorsa da parte di Config Connector per evitare di raggiungere le quote API. Il suggerimento è di impostare l'intervallo di riconciliazione su 1 ora.

Per aumentare l'intervallo di riconciliazione, segui i passaggi descritti in Configurazione dell'intervallo di riconciliazione.

Suddividi le risorse in più progetti

Questo approccio distribuisce le risorse Config Connector in progetti diversi. Questo approccio funziona bene quando si aggiungono nuove risorse, ma può essere rischioso dividere 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 dividere le risorse Config Connector esistenti in progetti diversi, completa i seguenti passaggi:

  1. Decidi quali risorse Config Connector prevedi di spostare in progetti diversi.
  2. Elimina le risorse 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 Config Connector che intendi 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 Config Connector.

Passa alla modalità con spazio dei nomi

Puoi associare diversi service account IAM di proprietà di progettiGoogle Cloud diversi a spazi dei nomi diversi in cui Config Connector è installato in modalità con spazio dei nomi e dividere le risorse in spazi dei nomi diversi. Per farlo, completa i seguenti passaggi:

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

  2. Concedi ai nuovi service account IAM le autorizzazioni appropriate per il progetto che contiene le risorse.

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

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

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

  6. Abbandona le risorse Config Connector.

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

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

Gestire i node pool nei cluster GKE

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

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 ilpool di nodil 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 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 seguenti 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