Skalierbarkeitsrichtlinien für Config Controller

Auf dieser Seite finden Sie Empfehlungen, die Ihnen bei der Planung Ihrer Konfigurationsmanagement-Architektur auf Config Controller-Instanzen helfen und die Erstellung und Verwaltung Ihrer Google Cloud-Ressourcen innerhalb der Service Level Objectives (SLO) halten.

Diese Seite richtet sich an Administratoren, Architekten und Operatoren, die den Lebenszyklus der zugrunde liegenden Technologieinfrastruktur verwalten und Kapazitäts- und Infrastrukturanforderungen planen. Weitere Informationen zu gängigen Rollen und Beispielaufgaben, auf die wir in Google Cloud-Inhalten verweisen, finden Sie unter Häufig verwendete GKE Enterprise-Nutzerrollen und -Aufgaben.

Namespace-Modus verwenden

Wir empfehlen, Config Connector im Namespace-Modus zu verwenden, da damit eine große Anzahl von Ressourcen einfacher verwaltet werden kann. Sie können jeden Namespace so festlegen, dass er einem einzelnen Namespace entspricht. Das kann die Verwaltung von Kontingenten und Konfigurationen erleichtern, da Ressourcen Lese- und Schreibkontingente pro Projekt haben. Ab Version 1.119.0 können Sie die Limits für die Abgleichsrate nach Namespace erhöhen. Wenn Sie die Ratenlimits erhöhen, können Sie die Abgleiche für mehr als 10.000 Ressourcen pro Namespace in einem 10-Minuten-Intervall zulassen. Sowohl Config Connector als auch Config Sync unterstützen den Namespaced-Modus, mit dem jeder Namespace einem einzelnen Google Cloud-Projekt zugeordnet werden kann.

Skalierbarkeitsziele

In der folgenden Tabelle sind Werte aufgeführt, die wir regelmäßig testen. Wir wissen, dass Config Connector größere Zahlen verarbeiten kann. Wir haben gezeigt, dass 30.000 Ressourcen in einem einzigen Namespace verwaltet werden können. Es ist jedoch etwas Feintuning erforderlich, damit das funktioniert. Wir empfehlen Ihnen, den Namespace-Modus auf Vorschläge zu diesen Änderungen zu prüfen.

Config Controller-Skalierbarkeitsziele sind Gruppen von Ressourcen, die von Google und mithilfe von Config Sync GitOps getestet wurden. Sie können diese Ziele verwenden, um Ihre Config Management-Architektur zu planen.

Diese Ziele sind keine festen Limits. Das Erweitern der Menge einer Ressourcenart führt nicht zwangsläufig dazu, dass die Config Controller-Instanz nicht mehr verfügbar ist. Aber die Gesamtmenge der anderen Ressourcentypen in derselben Config Controller-Instanz, die Sie bereitstellen können, könnte dadurch verringert werden.

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 folgenden 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 für Config Connector. Die folgende Tabelle zeigt 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.

Kontingente der Google Cloud API

Sie können Ihre Google Cloud API-Kontingente in der Google Cloud Console aufrufen. Wenn einige Kontingente nahe an ihren Limits liegen, sollten Sie vielleicht das API-Kontingent durch Google Cloud-Projekte fragmentieren. Weitere Informationen zum Monitoring und zu Benachrichtigungen zu Kontingentmesswerten finden Sie unter Kontingentmesswerte überwachen und Benachrichtigungen erhalten.

Speichernutzung von Config Connector

Sie können die Speichernutzung von Config Connector im GKE-Monitoring-Dashboard ansehen. Wenn die Speichernutzung von Config Connector das Limit erreicht, sollten Sie eine Fragmentierung nach Namespace erwägen.

Config Controller vertikal skalieren

Wenn Sie die Skalierbarkeitsziele erreicht haben, sollten Sie Ihre Config Controller-Instanzen weiter hochskalieren. In diesem Abschnitt werden verschiedene Methoden beschrieben, mit denen Sie Ihre Config Controller-Instanzen vertikal skalieren 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, sodass Config Connector Ihre Ressourcen in großem Maßstab verwalten kann. Wenn Sie eine Config Connector-Instanz zum Verwalten mehrerer Google Cloud-Projekte verwenden, können Sie zum Verwalten jedes Google Cloud-Projekts einen einzelnen Config Connector-Namespace verwenden.

API-Kontingent nach Google Cloud-Projekten fragmentieren

Wenn Sie aufgrund des Erreichens von Google Cloud API-Kontingenten 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 in 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 Ihre Ressourcenkonfigurationsverwaltung beispielsweise nach verschiedenen Entwicklungsumgebungen, Anwendungsteams oder GitOps-Verzeichnissen innerhalb Ihrer Organisation fragmentieren.

Weitere Überlegungen zur Skalierbarkeit

Kontingente für die Google Cloud API

Wenn Fehler auftreten, die darauf hinweisen, dass Sie das API-Kontingentlimit überschritten haben, haben Sie möglicherweise zu viele Config Connector-Ressourcen derselben Art unter demselben Projekt erstellt. Diese Ressourcen können aufgrund der Abgleichsstrategie in Config Connector zu viele API-Anfragen an denselben API-Endpunkt generieren.

Dieses Problem können Sie beheben, indem 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 bestimmte Ü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.

Limit für Kubernetes-Dienstkonten

​Die Anzahl der in einem einzelnen GKE-Cluster erstellten Kubernetes-Dienstkonten (KSA) sollte 3.000 nicht überschreiten, da es sonst zu einem gke-metadata-server Pod-Absturz kommen kann.

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 beschränken.

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

Nächste Schritte