Linee guida per la scalabilità di Config Controller

Questa pagina fornisce suggerimenti per aiutarti a pianificare l'architettura di gestione della configurazione sulle istanze Config Controller e mantieni la creazione e all'interno degli obiettivi del livello di servizio (SLO).

Target di scalabilità

Gli obiettivi di scalabilità di Config Controller sono gruppi di risorse testati da Google e con l'uso di Config Sync di GitOps. Tu puoi utilizzarli per pianificare l'architettura di Config Management.

Questi obiettivi non sono limiti rigidi. Ampliamento della quantità di un tipo di risorsa necessariamente l'istanza di Config Controller non sarà disponibile, ma Ridurre la quantità totale di altri tipi di risorse nello stesso 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 di Config Controller con solo uno spazio dei nomi Config Connector nel cluster. Config Connector può creare e gestire il seguente numero di risorse al suo interno:

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 Config Connector in un cluster. Config Connector può creare e gestire il numero seguente 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 Modalità con spazio dei nomi di Config Connector per impostazione predefinita. La tabella seguente mostra un esempio del numero di oggetti 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...

Puoi utilizzare le seguenti risorse per determinare se hai contattato di scalabilità automatica.

Quote dell'API Google Cloud

Puoi visualizza le quote dell'API Google Cloud nella console Google Cloud. Quando alcune quote sono vicine ai limiti, considera Quota dell'API di partizionamento da parte dei progetti Google Cloud. Per scoprire di più sul monitoraggio e sugli avvisi relativi alle metriche delle quote, consulta Monitoraggio e avvisi sulle metriche delle quote.

Utilizzo della memoria di Config Connector

Puoi visualizza l'utilizzo della memoria di Config Connector nella dashboard di monitoraggio di GKE. Quando la memoria utilizzata da Config Connector sta per raggiungere il limite, valuta la possibilità Suddivisione per spazio dei nomi.

Fare lo scale up di Config Controller

Se hai raggiunto i target di scalabilità, valuta la possibilità di scalare ulteriormente la situazione. delle istanze di Config Controller. Questa sezione illustra i diversi metodi per fare lo scale up delle istanze di Config Controller.

Partizionamento per spazio dei nomi

Se raggiungi un obiettivo di scalabilità con un singolo spazio dei nomi Config Connector, lattina Configura Config Connector per gestire le risorse negli spazi dei nomi.

Ogni spazio dei nomi utilizza i propri account di servizio e carichi di lavoro dell'operatore, consente a Config Connector di gestire le risorse su larga scala. Se utilizzi un Config Connector per gestire più progetti Google Cloud, puoi usarne uno Spazio dei nomi Config Connector per gestire ogni progetto Google Cloud.

Quota dell'API di sharding per progetti Google Cloud

Se raggiungi un obiettivo di scalabilità dovuto al raggiungimento Quote dell'API Google Cloud, puoi associare servizi IAM diversi 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 suddividono le risorse in diversi progetti.

Sharding per istanze di Config Connector

Se raggiungi un obiettivo di scalabilità con più spazi dei nomi Config Connector, creare e utilizzare più di un'istanza di Config Controller. Con più di un'istanza Config Controller, puoi eseguire lo sharding della tua risorsa della configurazione gestita, ad esempio da 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 all'interno dello stesso progetto. Queste risorse possono generare troppe richieste API lo stesso endpoint API a causa strategia di riconciliazione in Config Connector.

Per risolvere il problema, puoi quota API shard per progetto Google Cloud o richiesta un limite di quota più elevato.

Limitazioni di GKE

Poiché Config Controller si basa su GKE, di GKE, che dovresti prendere in considerazione. Le sezioni seguenti trattano considerazioni specifiche relative a Config Controller. Per ulteriori informazioni sui limiti generali e sulle best practice per i cluster GKE di grandi dimensioni, consulta Pianifica cluster GKE di grandi dimensioni.

Limite account di servizio Kubernetes

Il numero di Account di servizio Kubernetes (KSA) create in un singolo cluster GKE non dovrebbe superare i 3000 potrebbero verificarsi gke-metadata-server Problema di arresto anomalo del pod.

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

Problemi di prestazioni del piano di controllo GKE

La Piano di controllo del cluster GKE possono avere problemi di prestazioni se un'istanza di Config Controller ne ha troppe spazi dei nomi Config Connector. Devi 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