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:
- Aumenta l'intervallo di riconciliazione per le risorse Config Connector
- Suddividi le risorse in più progetti
- Passa alla modalità con spazi dei nomi di Config Connector
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:
- Decidi quali risorse Config Connector prevedi di spostare in progetti diversi.
- Elimina le risorse Config Connector.
Assicurati che l'annotazione
cnrm.cloud.google.com/deletion-policy
non sia impostata suabandon
. - Aggiorna il campo
spec.projectRef
o l'annotazionecnrm.cloud.google.com/project-id
nella configurazione YAML delle risorse Config Connector che intendi spostare nei nuovi progetti. - Concedi all'account di servizio IAM utilizzato da Config Connector le autorizzazioni appropriate per i nuovi progetti.
- 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:
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.
Concedi ai nuovi service account IAM le autorizzazioni appropriate per il progetto che contiene le risorse.
Decidi quali risorse Config Connector prevedi di spostare in spazi dei nomi diversi.
Aggiorna la configurazione YAML delle risorse Config Connector e imposta l'annotazione
cnrm.cloud.google.com/deletion-policy
abandon
.Applica la configurazione YAML aggiornata per aggiornare la policy di eliminazione delle risorse Config Connector.
Aggiorna il campo
metadata.namespace
nella configurazione YAML delle risorse Config Connector che prevedi di spostare negli spazi dei nomi diversi.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