Linee guida per la scalabilità di Config Controller

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

Target di scalabilità

I target di scalabilità di Config Controller sono gruppi di risorse testati da Google e con l'uso di Config Sync di GitOps. Puoi utilizzare questi target per pianificare l'architettura di gestione della configurazione.

Questi obiettivi non sono limiti rigidi. L'ampliamento della quantità di un tipo di risorsa non renderà necessariamente l'istanza Config Controller non disponibile, ma potrebbe ridurre la quantità totale di altri tipi di risorse nella stessa istanza Config Controller di cui puoi eseguire il deployment.

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

Spazio dei nomi singolo

L'esempio seguente mostra un'istanza Config Controller con uno 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 suggerito

SQLInstance

450

SQLDatabase

2.250

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 di 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 suggerito

SQLInstance

9

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

Spazi dei nomi di Config Connector

Config Controller utilizza la modalità con spazio dei nomi di Config Connector per impostazione predefinita. La tabella seguente mostra un esempio del numero di spazi dei nomi di 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

Controllo dei target di scalabilità in corso...

Per determinare se hai raggiunto i target di scalabilità, puoi utilizzare le risorse riportate di seguito.

Quote dell'API Google Cloud

Puoi visualizzare le quote dell'API Google Cloud nella console Google Cloud. Quando alcune quote sono vicine ai limiti, prendi in considerazione la quota dell'API da parte dei 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 di GKE. Quando l'utilizzo della memoria di Config Connector sta per raggiungere il limite, valuta la possibilità di eseguire il partizionamento per spazio dei nomi.

Fare lo scale up di Config Controller

Se hai raggiunto gli obiettivi di scalabilità, valuta la possibilità di fare ulteriormente lo scale up delle istanze di Config Controller. Questa sezione illustra i diversi metodi che puoi usare per fare lo scale up delle istanze di Config Controller.

Partizionamento 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, consentendo 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 uno spazio dei nomi di Config Connector per gestire ogni progetto Google Cloud.

Quota dell'API di sharding per progetti Google Cloud

Se raggiungi un target di scalabilità perché hai raggiunto le quote dell'API Google Cloud, puoi associare diversi account di servizio IAM di proprietà di diversi progetti Google Cloud a spazi dei nomi diversi in cui Config Connector è installato in modalità con spazio dei nomi. Puoi quindi suddividere le risorse in diversi progetti.

Sharding per istanze di Config Connector

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

Altre considerazioni sulla scalabilità

Quote dell'API Google Cloud

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

Per risolvere il problema, puoi suddividere la quota API in base al progetto Google Cloud o richiedere un limite di quota più elevato.

Limitazioni di GKE

Poiché Config Controller si basa su GKE, esistono limitazioni da considerare per GKE. Le sezioni seguenti trattano considerazioni specifiche relative a Config Controller. Per ulteriori informazioni sui limiti generali e sulle best practice per cluster GKE di grandi dimensioni, consulta Pianificare cluster GKE di grandi dimensioni.

Limite account di servizio Kubernetes

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

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 spazi dei nomi di 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 controller.

Passaggi successivi