Ressourcen

Config Connector enthält eine Sammlung von benutzerdefinierten Ressourcendefinitionen (Custom Resource Definitions, CRDs). Jede CRD ermöglicht die Konfiguration einer Google Cloud-Ressource aus Kubernetes. Mit Config Connector können Sie auch eine Reihe von Kubernetes-Funktionen zum Verwalten von Google Cloud-Ressourcen nutzen.

Auf dieser Seite wird erläutert, wie Config Connector Kubernetes-Objekte und deren Metadaten verwendet.

Kubernetes-Objekte und Config Connector-Ressourcen

Wenn Sie beispielsweise ein Kubernetes-Objekt mit kind: SQLInstance erstellen, legt Config Connector eine Cloud SQL-Instanz an. In diesem Abschnitt wird gezeigt, wie Config Connector Objekttypen erweitert.

Spezifikationen und Status

Jede Config Connector-Ressource ist ein Kubernetes-Objekt mit einer Spec und einem Status.

Spezifikationen
Das Feld Spec enthält alle Felder, die den gewünschten Status eines Objekts definieren, mit Ausnahme von Labels. Die Unterfelder einer Spec verweisen auf die zugehörige Google Cloud-Ressource. Wenn Sie ein Unterfeld ändern, unterliegt der Wert der Google Cloud-Ressource der Eventual Consistency mit dem gewünschten Wert.
Ein Beispiel für ein beschreibbares Feld ist databaseVersion in einer SQLInstance-Ressource.
Status
Das Feld Status ist schreibgeschützt und enthält den aktuellen Status des Objekts. Config Connector liest regelmäßig die Informationen zu Ihrer Google Cloud-Ressource und aktualisiert Status. Sie können Fehlermeldungen oder die Bereitschaft einer Ressource mit Status.Condition prüfen.
Ein Beispiel für ein schreibgeschütztes Status-Feld ist connectionName einer SQLInstance-Ressource.

Objektmetadaten

Jede Config Connector-Ressource enthält das Feld metadata. In diesem Abschnitt wird gezeigt, wie Config Connector Unterfelder in "metadata" verwendet.

Name
Wenn Sie eine Config Connector-Ressource erstellen, wird eine Google Cloud-Ressource mit dem gleichen Namen angelegt.
Namespace
Der Namespace, in dem Sie eine Config Connector-Ressource erstellen, bestimmt das Projekt, in dem die Google Cloud-Ressource enthalten ist. Weitere Informationen zu Namespaces finden Sie unter Namespaces und Google Cloud-Projekte.
Label
Labels im Metadatenfeld einer Config Connector-Ressource werden ebenfalls der zugeordneten Google Cloud-Ressource hinzugefügt.
Zusätzlich fügt Config Connector Ihren Google Cloud-Ressourcen ein Systemlabel mit dem Namen managed-by-cnrm mit dem Wert true hinzu.
Anmerkungen

Config Connector kann zusätzliche Aktionen für Ihre Ressourcen ausführen, die nicht in Spec definiert sind. Diese Aktionen werden in Unterfeldern von metadata.annotations definiert. Annotationswerte müssen ein String sein. In den folgenden Abschnitten werden die Annotationstypen erläutert, die Config Connector unterstützt.

Löschen

Standardmäßig löscht Config Connector eine Ressource, nachdem Sie das Objekt aus dem Cluster gelöscht haben. Wenn Sie die Ressource beibehalten möchten, legen Sie die Annotation deletion-policy fest.

Anweisungen

Mit Anweisungen lässt sich Config Connector so konfigurieren, dass neben dem Erstellen oder Löschen von Ressourcen weitere Aktionen ausgeführt werden.

Mit Cloud Storage ist es beispielsweise nicht möglich, einen StorageBucket zu löschen, der Objekte enthält. Wenn Sie die Annotation force-destroy auf den Bucket anwenden und dann den Bucket löschen, entfernt Config Connector zuerst alle Objekte im Bucket und dann den Bucket.

Beispielsweise wird die Annotation force-destroy im folgenden YAML-Snippet deklariert.

metadata:
  annotations:
    cnrm.cloud.google.com/force-destroy: "true"

Informationen dazu, welche Ressourcen Anweisungen unterstützen, finden Sie unter Config Connector-Ressourcen.

Ordner und hierarchische Ressourcen

Config Connector unterstützt nicht nur die Verwaltung von Ressourcen in Google Cloud-Produkten, sondern auch das Erstellen und Verwalten von Ressourcen in Google Cloud-Ordnern und -Organisationen. Weitere Informationen dazu finden Sie unter Namespaces und Google Cloud-Projekte.

RBAC für die Zugriffskontrolle verwenden

Die rollenbasierte Zugriffssteuerung (Role Based Access Control, RBAC) von Kubernetes schützt Ihre Ressourcen. Sie können das Erstellen von Google Cloud-Ressourcen durch Erteilen von RBAC-Berechtigungen steuern. Weitere Informationen finden Sie unter Zugriff auf Ressourcen mit Cloud IAM sichern.

Status Condition

Config Connector verwendet eine bereite Bedingung in status.condition für zwei Zwecke:

  • Anzeige, dass eine Ressource bereit ist. Wenn eine Ressource abgeglichen und bereit ist, wird für status.condition.status der Wert True festgelegt. Informationen zum Prüfen, ob eine Ressource bereit ist, finden Sie unter Warten, bis Ressourcen bereit sind.
  • Anzeige zusätzlicher Fehler oder Informationen. Die Bereitschaftsbedingung enthält die Felder Message und Reason, die zusätzliche Informationen zum Status der Ressource bereitstellen.

Events

Wichtige Statusänderungen für Config Connector-Ressourcen werden als Kubernetes-Ereignisse angezeigt. Weitere Informationen finden Sie unter Ereignisse für eine einzelne Ressource anzeigen.

Deklarative Konfiguration und Eventual Consistency

Bei der deklarativen Konfiguration definieren Sie den gewünschten Status des Systems. Das System versucht dann kontinuierlich, diesen Status so weit wie möglich zu gewährleisten. Weitere Informationen finden Sie unter Deklarative Verwaltung von Kubernetes-Objekten mithilfe von Konfigurationsdateien.

Mit Config Connector können Sie Ressourcen unabhängig von Abhängigkeitsbeziehungen in beliebiger Reihenfolge erstellen und aktualisieren. GKE verschiebt Ihre deklarierte Konfiguration in Richtung Eventual Consistency mit dem gewünschten Status.

Wenn Sie beispielsweise eine PubSubSubscription vor der entsprechenden PubSubTopic erstellen, wartet Config Connector, bis das Thema erstellt wurde, bevor Sie das zugehörige Abo erstellen.

Wie lange Ihre Config Connector-Installation inkonsistent bleibt, hängt von der Anzahl und der Art der verwalteten Ressourcen ab. Änderungen an einem GKE-Cluster werden in der Regel in Sekunden ausgeführt. Der Zeitraum zum Erstellen von Google Cloud-Ressourcen kann jedoch je nach Ressourcentyp variieren. Beispielsweise dauert das Erstellen eines einzelnen PubSubTopic Sekunden. Google Cloud-Ressourcen erreichen erst Konsistenz, wenn sie erstellt sind. Wenn Sie beispielsweise eine SQLInstance und eine SQLDatabase erstellen, ist das System für Minuten inkonsistent, während die Datenbank erstellt wird.

GKE und Config Connector gleichen Ressourcen bei jeder Aktualisierung oder alle zehn Minuten ab. Wenn beim Abgleich ein Fehler auftritt, wird Config Connector alle 30 Sekunden mit einem exponentiellen Backoff wiederholt. Sie können alle Fehler in den Ereignissen einer bestimmten Ressource aufrufen.

Nächste Schritte