Linee guida sulla scalabilità di Config Controller

Questa pagina fornisce suggerimenti per aiutarti a pianificare l'architettura di gestione della configurazione sulle istanze di Config Controller e a mantenere la creazione e la gestione delle risorse Google Cloud entro gli obiettivi di livello del servizio (SLO).

Questa pagina è rivolta ad amministratori, architetti e operatori che gestiscono il ciclo di vita dell'infrastruttura tecnologica di base e pianificano le esigenze di capacità e infrastruttura. Per scoprire di più sui ruoli comuni e sulle attività di esempio a cui facciamo riferimento nei contenuti di Google Cloud, consulta Ruoli e attività comuni degli utenti di GKE Enterprise.

Utilizza la modalità con spazio dei nomi

Consigliamo di utilizzare Config Connector in modalità con nome spazio dei nomi perché può essere più facile gestire un numero elevato di risorse. Puoi impostare ogni spazio dei nomi in modo che corrisponda a un singolo spazio dei nomi, il che può aiutarti a gestire quote e configurazioni, poiché le risorse hanno quote di lettura e scrittura per progetto. A partire dalla versione 1.119.0, puoi aumentare i limiti di frequenza di riconciliazione in base allo spazio dei nomi. Aumentando i limiti di frequenza, puoi consentire la riconciliazione di più di 10.000 risorse per spazio dei nomi in un intervallo di 10 minuti. Sia Config Connector sia Config Sync supportano la modalità con spazi dei nomi, che consente di mappare ogni spazio dei nomi a un singolo progetto Google Cloud.

Target di scalabilità

La tabella seguente mostra i valori che testiamo regolarmente. Sappiamo che Config Connector può gestire numeri più grandi. Abbiamo dimostrato che è possibile gestire 30.000 risorse in un unico spazio dei nomi. Tuttavia, è necessaria una certa ottimizzazione per farlo funzionare. Ti consigliamo di esaminare la modalità con nome per avere suggerimenti su queste modifiche.

Gli obiettivi di scalabilità di Config Controller sono gruppi di risorse testate da Google e con l'utilizzo di Config Sync GitOps. Puoi utilizzare questi target per pianificare l'architettura di Config Management.

Questi target non sono limiti rigidi. L'aumento della quantità di un tipo di risorsa non rende necessariamente non disponibile l'istanza di Config Controller, ma potrebbe ridurre la quantità totale di altri tipi di risorse nella stessa istanza di Config Controller che puoi implementare.

Le tabelle in questa pagina sono da intendersi come riferimenti e non sono esaustive.

Spazio dei nomi singolo

L'esempio seguente mostra un'istanza di Config Controller con un solo spazio dei nomi Config Connector nel cluster. Config Connector può creare e gestire il seguente numero di risorse nello spazio dei nomi:

Tipo di risorsa

Limite consigliato

SQLInstance

450

SQLDatabase

2250

SQLUser

2.500

StorageBucket

5000

ContainerCluster

50

ContainerNodepool

200

IAMServiceAccount

2.500

IAMPartialPolicy

7.500

Più spazi dei nomi

L'esempio seguente mostra un'istanza di Config Controller con 50 spazi dei nomi Config Connector in un cluster. Config Connector può creare e gestire il seguente numero di risorse in ogni spazio dei nomi:

Tipo di risorsa

Limite consigliato

SQLInstance

9

SQLDatabase 45
SQLUser 45
StorageBucket 100
ContainerCluster 1
ContainerNodepool 4
IAMServiceAccount 50
IAMPartialPolicy 150

Spazi dei nomi di Config Connector

Per impostazione predefinita, Config Controller utilizza la modalità con spazio dei nomi di Config Connector. Le tabelle seguenti mostrano un esempio del numero di spazi dei nomi Config Connector che puoi avere in una singola istanza di Config Connector.

--cluster-ipv4-cidr-block

Numero di nodi

Numero di spazi dei nomi Config Connector

/18

64

600

/19

32

300

/20 (valore predefinito e consigliato)

16

120

/21

8

60

Verifica dei target di scalabilità

Puoi utilizzare le seguenti risorse per determinare se hai raggiunto gli obiettivi di scalabilità.

Quote API Google Cloud

Puoi visualizzare le quote delle API Google Cloud nella console Google Cloud. Quando alcune quote sono vicine ai limiti, valuta la possibilità di suddividere la quota dell'API per progetti Google Cloud. Per scoprire di più sul monitoraggio e sugli avvisi relativi alle metriche delle quote, consulta Monitorare e generare avvisi sulle metriche delle quote.

Utilizzo della memoria di Config Connector

Puoi visualizzare l'utilizzo della memoria di Config Connector nella dashboard di monitoraggio GKE. Quando l'utilizzo della memoria di Config Connector è vicino al limite, valuta la possibilità di eseguire lo sharding per spazio dei nomi.

Eseguire il ridimensionamento di Config Controller

Se hai raggiunto i target di scalabilità, ti consigliamo di eseguire un ulteriore ridimensionamento delle istanze Config Controller. Questa sezione illustra i diversi metodi che puoi utilizzare per eseguire lo scaling delle istanze Config Controller.

Sharding per spazio dei nomi

Se raggiungi un target di scalabilità con un singolo spazio dei nomi Config Connector, puoi configurare Config Connector per gestire le risorse nei tuoi spazi dei nomi.

Ogni spazio dei nomi utilizza i propri account di servizio e carichi di lavoro dell'operatore, il che consente a Config Connector di gestire le risorse su larga scala. Se utilizzi un'istanza di Config Connector per gestire più progetti Google Cloud, puoi utilizzare un singolo spazio dei nomi Config Connector per gestire ciascun progetto Google Cloud.

Suddivisione della quota dell'API per progetti Google Cloud

Se raggiungi un target di scalabilità a causa del raggiungimento delle quote per le API Google Cloud, puoi associare diversi account di servizio IAM di proprietà di diversi progetti Google Cloud a diversi spazi dei nomi in cui Config Connector è installato in modalità con spazi dei nomi. Puoi quindi suddividere le risorse in progetti diversi.

Sharding per istanze Config Connector

Se raggiungi un target di scalabilità con più spazi dei nomi di Config Connector, puoi creare e utilizzare più istanze di Config Controller. Con più istanze di Config Controller, puoi suddividere la gestione della configurazione delle risorse, ad esempio in base a diversi ambienti di sviluppo, team di applicazioni o directory GitOps all'interno della tua organizzazione.

Altre considerazioni sulla scalabilità

Quote API Google Cloud

Se hai riscontrato errori che indicano che hai superato il limite di quota dell'API, potresti aver creato troppe risorse Config Connector dello stesso tipo nello stesso progetto. Queste risorse possono generare troppe richieste API allo stesso endpoint API a causa della strategia di riconciliazione in Config Connector.

Per risolvere il problema, puoi suddividere la quota dell'API per progetto Google Cloud o richiedere un limite di quota più elevato.

Limitazioni di GKE

Poiché Config Controller è basato su GKE, devi tenere conto delle limitazioni di GKE. Le sezioni seguenti trattano considerazioni specifiche relative a Config Controller. Per saperne di più su limiti generali e best practice per cluster GKE di grandi dimensioni, consulta Pianificare i cluster GKE di grandi dimensioni.

Limite per gli account di servizio Kubernetes

​​Il numero di account di servizio Kubernetes (KSA) creati in un singolo cluster GKE non deve superare 3000 perché potresti riscontrare un gke-metadata-server problema di arresto anomalo del pod.

Ogni volta che aggiungi uno spazio dei nomi Config Connector, viene creato anche un account di servizio Kubernetes.

Problemi di prestazioni del piano di controllo GKE

Il piano di controllo del cluster GKE può avere problemi di prestazioni se un'istanza di Config Controller ha troppi spaci dei nomi Config Connector. Dovresti limitare il numero di spazi dei nomi di Config Connector a meno di 500 per cluster.

Ogni volta che aggiungi uno spazio dei nomi Config Connector, viene creato anche un pod del controller.

Passaggi successivi