Linee guida per la scalabilità di Config Controller

Questa pagina fornisce suggerimenti per aiutarti a pianificare l'architettura di gestione della configurazione nelle istanze di Config Controller e mantenere la creazione e la gestione delle risorse Google Cloud all'interno degli 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 GitOps di Config Sync. Puoi utilizzare questi target per pianificare l'architettura di Config Management.

Questi obiettivi non sono limiti rigidi. L'estensione 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 di cui puoi eseguire il deployment.

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

Singolo spazio dei nomi

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

Tipo di risorsa

Limite suggerito

SQLInstance

450

SQLDatabase

2250

SQLUser

2500

StorageBucket

5000

ContainerCluster

50

ContainerNodepool

200

IAMServiceAccount

2500

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

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 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 di Config Connector

/18

64

600

/19

32

300

/20 (predefinita e consigliata)

16

120

/21

8

60

Controllo dei target di scalabilità

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

Quote delle API Google Cloud

Puoi visualizzare le quote dell'API Google Cloud nella console Google Cloud. Quando alcune quote sono vicine al limite, puoi prendere in considerazione la quota API di sharding per progetti Google Cloud. Per saperne di più sul monitoraggio e sugli avvisi sulle metriche della quota, consulta Monitorare e inviare avvisi sulle metriche di quota.

Utilizzo memoria di Config Connector

Puoi visualizzare l'utilizzo della memoria di Config Connector nella dashboard di monitoraggio di GKE. Quando l'utilizzo della memoria da parte di Config Connector sta per raggiungere il limite, prendi in considerazione lo sharding per spazio dei nomi.

Fare lo scale up di Config Controller

Se hai raggiunto i target di scalabilità, dovresti prendere in considerazione un'ulteriore scalabilità delle istanze Config Controller. Questa sezione illustra i diversi metodi che puoi utilizzare per fare lo scale up delle istanze di Config Controller.

Sharding per spazio dei nomi

Se raggiungi un target di scalabilità con un singolo spazio dei nomi di 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 degli operatori, 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 uno spazio dei nomi di Config Connector per gestire ogni progetto Google Cloud.

Quota dell'API in 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 progetti diversi.

Sharding per istanze di Config Connector

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

Altre considerazioni sulla scalabilità

Quote dell'API Google Cloud

Se si sono verificati errori che indicano il superamento del limite della quota API, è possibile che tu abbia 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 è basato su GKE, esistono limitazioni di GKE che devi tenere in considerazione. Le seguenti sezioni 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 Pianificare 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 essere superiore a 3000 perché potresti riscontrare un problema di arresto anomalo dei pod gke-metadata-server.

Ogni volta che aggiungi uno spazio dei nomi di 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ò presentare 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 di Config Connector, viene creato anche un pod controller.

Passaggi successivi