Cloud Intelligence™Cloud Intelligence™

Cloud Intelligence™

Config Connector-Version im GKE-Cluster gezielt steuern

By Eyal ZekariaJun 2, 20224 min read

Diese Seite ist auch in English, Español, Français, Italiano, 日本語 und Português verfügbar.

Config Connector ist ein starkes Tool, um Google Cloud-Ressourcen per Kubernetes-Manifest zu verwalten. Wir zeigen Ihnen, wie Sie die Add-on-Installation durch eine manuelle ersetzen und so mehr Kontrolle gewinnen.

Config-Connector

Mehr Kontrolle über die Config Connector-Version: Add-on-Installation durch manuelle Installation ersetzen

Mit Config Connector verwalten Sie GCP-Ressourcen per Kubernetes-Manifest. Das von Google entwickelte Tool steht als Add-on-Installation auf GKE-Clustern bereit (sofern die Voraussetzungen erfüllt sind). Hier nur einige Vorteile und typische Einsatzszenarien:

  • Bereitstellung der zugrunde liegenden Infrastruktur für einen in GKE deployten Service über dieselben Pipelines und Paradigmen (es kommen lediglich weitere YAML-Manifeste hinzu)
  • Ein zentraler "Control"-Cluster fährt weitere Cluster hoch — Infrastructure as Code mit Kubernetes
  • Infrastruktur (etwa Dev-Umgebungen oder sogar ein neuer Production-Cluster) per einzelnem kubectl apply hochfahren

Config Connector arbeitet über ein deploytes Operator-StatefulSet (configconnector-operator-system/configconnector-operator), das wiederum sämtliche CustomResourceDefinition-Ressourcen (CRDs) sowie alle zugehörigen Workloads im Namespace cnrm-system anlegt.

Da sich Config Connector laufend weiterentwickelt, bringt jedes Release häufig neue Funktionen mit (etwa einen neuen, von Config Connector verwalteten Ressourcentyp oder ein zusätzliches Feld in einer CRD). Leider ist die Version des per GKE-Add-on installierten Config Connector an die GKE-Master-Version gekoppelt. Um die per Add-on installierte Config Connector-Version zu aktualisieren, müssen Sie also Ihre GKE-Version anheben (mindestens auf die nächste Minor-Version) — was nicht immer wünschenswert ist. Hinzu kommt: Die mitgelieferte Version hinkt der aktuellsten Config Connector-Version meist um einige Releases hinterher. Selbst nach dem Upgrade fehlt Ihnen also möglicherweise eine neue Funktion oder ein Fix aus dem aktuellen Release.

Aus eigenen Tests kann ich sagen, dass folgende Config Connector-Versionen mit dem GKE-Add-on installiert werden:

  • v1.69.0 für GKE 1.21.x
  • v1.71.0 für GKE 1.22.x

Die aktuelle Config Connector-Version zum Zeitpunkt dieses Beitrags ist v1.83.0.

Manuelle Installation

Wer die Config Connector-Version auf einem GKE-Cluster genauer steuern möchte, ersetzt die Add-on-Installation durch eine manuelle Installation [1]. Beachten Sie dabei: Die Verantwortung für Updates von Config Connector liegt damit bei Ihnen — automatische Aktualisierungen über den GKE-Cluster entfallen.

Add-on-Installation durch manuelle Installation ersetzen

1. Add-on-Installation auf dem Cluster deaktivieren:

gcloud container clusters update <CLUSTER_NAME> --update-addons ConfigConnector=DISABLED

2. Config Connector-Operator-StatefulSet löschen:

kubectl -nconfigconnector-operator-system delete statefulset configconnector-operator

  1. 3. Aktuelle (oder gewünschte) Version des Config Connector-Operators gemäß Dokumentation installieren [2]

Bei diesem Vorgehen bleiben sämtliche CRDs ebenso erhalten wie das ConfigConnector-Objekt [3]. Alle mit Config Connector erstellten Ressourcen bleiben somit unberührt.

Prüfen Sie, ob der neue Operator-Pod mit der gewünschten Version läuft:

$ kubectl -nconfigconnector-operator-system get statefulsets configconnector-operator -oyaml |grep operator-version | head -n1

cnrm.cloud.google.com/operator-version: 1.83.0

und ob alle Workloads im Namespace cnrm-system neu erstellt wurden (die Reconciliation kann einige Minuten dauern):

$ kubectl -ncnrm-system get po -oyaml |grep /version

  cnrm.cloud.google.com/version: 1.83.0

  cnrm.cloud.google.com/version: 1.83.0

  cnrm.cloud.google.com/version: 1.83.0

  cnrm.cloud.google.com/version: 1.83.0

Ab jetzt führen Sie Config Connector-Upgrades manuell durch — wie in der Dokumentation beschrieben [4].

Zurück zur Add-on-Installation

Wenn Sie Ihren GKE-Cluster auf eine Version anheben, die die gewünschte Config Connector-Version im Add-on enthält, können Sie auf die Add-on-Installation zurückwechseln und die Verwaltung wieder an GKE abgeben.

Der Ablauf kehrt die vorherigen Schritte im Wesentlichen um:

  1. Config Connector-Add-on auf Ihrem Cluster aktivieren:

gcloud container clusters update <CLUSTER_NAME> --update-addons ConfigConnector=ENABLED

  1. Config Connector-Operator-StatefulSet löschen:

kubectl -nconfigconnector-operator-system delete statefulset configconnector-operator

Wenn Sie die Pods im Namespace configconnector-operator-system beobachten, sehen Sie nach kurzer Zeit, dass der Operator-Pod erneut startet (das StatefulSet wird vom Add-on neu angelegt) und in der vom Add-on verwalteten Version läuft. Auch die Workloads im Namespace cnrm-system werden im ersten Reconciliation-Lauf des Operators ersetzt.

[1] https://cloud.google.com/config-connector/docs/how-to/advanced-install#manual

[2] https://cloud.google.com/config-connector/docs/how-to/advanced-install#installing_the_operator

[3] https://cloud.google.com/config-connector/docs/how-to/install-upgrade-uninstall#addon-configuring

[4] https://cloud.google.com/config-connector/docs/how-to/advanced-install#upgrading