Skalierbarkeitsrichtlinien für Config Controller

Auf dieser Seite finden Sie Empfehlungen dazu, wie Sie Ihre Architektur für die Konfigurationsverwaltung auf Config Controller-Instanzen planen und dafür sorgen können, dass die Google Cloud-Ressourcenerstellung und -verwaltung im Rahmen des Service Level Objectives (SLO) erfolgen.

Skalierbarkeitsziele

Skalierbarkeitsziele von Config Controller sind Gruppen von Ressourcen, die von Google und unter Verwendung von Config Sync GitOps getestet werden. Sie können diese Ziele zur Planung Ihrer Config Management-Architektur verwenden.

Diese Ziele sind keine festen Grenzen. Das Erweitern der Menge einer Ressourcenart führt nicht zwangsläufig dazu, dass die Config Controller-Instanz nicht mehr verfügbar ist. Es könnte jedoch die Gesamtzahl anderer Ressourcenarten in derselben Config Controller-Instanz reduzieren, die Sie bereitstellen können.

Die Tabellen auf dieser Seite dienen als Referenz und sind nicht vollständig.

Einzelner Namespace

Das folgende Beispiel zeigt eine Config Controller-Instanz mit einem Config Connector-Namespace im Cluster. Config Connector kann die folgende Anzahl von Ressourcen in diesem Namespace erstellen und verwalten:

Ressourcentyp

Vorgeschlagenes Limit

SQLInstance

450

SQLDatabase

2.250

SQLUser

2.500

StorageBucket

5.000

ContainerCluster

50

ContainerNodepool

200

IAMServiceAccount

2.500

IAMPartialPolicy

7.500

Mehrere Namespaces

Das folgende Beispiel zeigt eine Config Controller-Instanz mit 50 Config Connector-Namespaces in einem Cluster. Config Connector kann die folgende Anzahl von Ressourcen in jedem Namespace erstellen und verwalten:

Ressourcentyp

Vorgeschlagenes Limit

SQLInstance

9

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

Config Connector-Namespaces

Config Controller verwendet standardmäßig den Namespace-Modus von Config Connector. In den folgenden Tabellen sehen Sie ein Beispiel für die Anzahl der Config Connector-Namespaces, die Sie in einer einzelnen Config Connector-Instanz haben können.

--cluster-ipv4-cidr-block

Anzahl der Knoten

Anzahl der Config Connector-Namespaces

/18

64

600

/19

32

300

/20 (Standard und empfohlen)

16

120

/21

8

60

Skalierbarkeitsziele prüfen

Mit den folgenden Ressourcen können Sie feststellen, ob Sie die Skalierbarkeitsziele erreicht haben.

Google Cloud API-Kontingente

Sie können Ihre Google Cloud API-Kontingente in der Google Cloud Console ansehen. Wenn einige Kontingente ihre Limits fast erreicht haben, sollten Sie das API-Kontingent nach Google Cloud-Projekten aufteilen. Weitere Informationen zum Monitoring und zu Benachrichtigungen zu Kontingentmesswerten finden Sie unter Kontingentmesswerte überwachen und Benachrichtigungen dazu erhalten.

Config Connector-Arbeitsspeichernutzung

Sie können sich die Arbeitsspeichernutzung von Config Connector im GKE-Monitoring-Dashboard ansehen. Wenn die Arbeitsspeichernutzung von Config Connector annähernd das Limit erreicht, sollten Sie eine Fragmentierung nach Namespace in Betracht ziehen.

Config Controller hochskalieren

Wenn Sie die Skalierbarkeitsziele erreicht haben, sollten Sie Ihre Config Controller-Instanzen weiter skalieren. In diesem Abschnitt werden verschiedene Methoden beschrieben, mit denen Sie Ihre Config Controller-Instanzen hochskalieren können.

Fragmentierung nach Namespace

Wenn Sie mit einem einzelnen Config Connector-Namespace ein Skalierbarkeitsziel erreichen, können Sie Config Connector so konfigurieren, dass Ressourcen in Ihren Namespaces verwaltet werden.

Jeder Namespace verwendet seine eigenen Dienstkonten und Operatorarbeitslasten. Dadurch kann Config Connector Ihre Ressourcen in großem Umfang verwalten. Wenn Sie eine Config Connector-Instanz zum Verwalten mehrerer Google Cloud-Projekte verwenden, können Sie jedes Google Cloud-Projekt mit einem einzigen Config Connector-Namespace verwalten.

Fragmentierung des API-Kontingents nach Google Cloud-Projekten

Wenn Sie aufgrund des Erreichens der Google Cloud API-Kontingente ein Skalierbarkeitsziel erreichen, können Sie verschiedene IAM-Dienstkonten, die zu verschiedenen Google Cloud-Projekten gehören, an verschiedene Namespaces binden, in denen Config Connector im Namespace-Modus installiert ist. Anschließend können Sie Ihre Ressourcen auf verschiedene Projekte aufteilen.

Fragmentierung nach Config Connector-Instanzen

Wenn Sie ein Skalierbarkeitsziel mit mehreren Config Connector-Namespaces erreichen, können Sie mehr als eine Config Controller-Instanz erstellen und verwenden. Mit mehr als einer Config Controller-Instanz können Sie die Konfigurationsverwaltung für Ressourcen fragmentieren, z. B. nach verschiedenen Entwicklungsumgebungen, Anwendungsteams oder GitOps-Verzeichnissen innerhalb Ihrer Organisation.

Weitere Überlegungen zur Skalierbarkeit

Google Cloud API-Kontingente

Wenn Fehler auftreten, die auf eine Überschreitung des API-Kontingentlimits hinweisen, haben Sie möglicherweise zu viele Config Connector-Ressourcen derselben Art im selben Projekt erstellt. Diese Ressourcen können aufgrund der Abgleichsstrategie in Config Connector zu viele API-Anfragen an denselben API-Endpunkt generieren.

Um dieses Problem zu beheben, können Sie entweder das API-Kontingent nach Google Cloud-Projekt fragmentieren oder ein höheres Kontingentlimit anfordern.

GKE-Einschränkungen

Da Config Controller auf GKE basiert, gibt es Einschränkungen von GKE, die Sie berücksichtigen sollten. In den folgenden Abschnitten werden spezifische Überlegungen zu Config Controller behandelt. Weitere Informationen zu allgemeinen Limits und Best Practices für große GKE-Cluster finden Sie unter Große GKE-Cluster planen.

Kubernetes-Dienstkontolimit

Die Anzahl der in einem einzelnen GKE-Cluster erstellten Kubernetes-Dienstkonten (KSA) sollte 3.000 nicht überschreiten,da es möglicherweise zu einem gke-metadata-server-Pod-Absturzproblem kommt.

Wenn Sie einen Config Connector-Namespace hinzufügen, wird auch ein Kubernetes-Dienstkonto erstellt.

Leistungsprobleme der GKE-Steuerungsebene

Auf der Steuerungsebene des GKE-Clusters können Leistungsprobleme auftreten, wenn eine Config Controller-Instanz zu viele Config Connector-Namespaces hat. Sie sollten die Anzahl der Config Connector-Namespaces auf unter 500 pro Cluster begrenzen.

Wenn Sie einen Config Connector-Namespace hinzufügen, wird auch ein Controller-Pod erstellt.

Nächste Schritte