Config Connector manuell installieren
Auf dieser Seite wird erläutert, wie Sie Config Connector manuell installieren. Die manuelle Installation ist eine flexible Option, mit der Sie die installierte Version und den Upgrade-Zeitplan selbst bestimmen können.
Weitere Informationen zu den verschiedenen Installationsoptionen finden Sie unter Installationstyp auswählen.
Für die meisten Anwendungsfälle empfehlen wir, Config Connector manuell im Namespace-Modus zu installieren. Die Alternative ist der Clustermodus. Der Namespace-Modus ist besser skalierbar und bietet eine bessere Berechtigungsisolation. Er ist ideal für Multi-Tenant-Anwendungsfälle oder wenn Ressourcen aus mehreren Projekten verwaltet werden.
Wenn Sie ein einzelnes, clusterweites Dienstkonto bevorzugen, folgen Sie stattdessen der Anleitung für die Installation im Clustermodus.
Hinweise
Führen Sie die folgenden Schritte aus, bevor Sie den Config Connector-Operator manuell installieren:
- Erstellen oder identifizieren Sie einen GKE-Cluster, in dem Config Connector noch nicht installiert ist und für den Workload Identity und Kubernetes Engine-Monitoring aktiviert sind.
- Konfigurieren Sie
kubectl, um eine Verbindung zum Cluster herzustellen.
Config Connector-Operator installieren
Config Connector verwendet einen Kubernetes-Operator, um seine Installation auf dem neuesten Stand zu halten. Die Installation des Operators ist erforderlich, unabhängig davon, ob Sie Config Connector im Namespace-Modus oder im Clustermodus installieren.
So installieren Sie den Config Connector-Operator:
Laden Sie die neueste TAR-Datei für den Config Connector-Operator herunter:
gcloud storage cp gs://configconnector-operator/latest/release-bundle.tar.gz release-bundle.tar.gzExtrahieren Sie die TAR-Datei:
tar zxvf release-bundle.tar.gzInstallieren Sie den Config Connector-Operator in Ihrem Cluster:
Autopilot
kubectl apply -f operator-system/autopilot-configconnector-operator.yamlStandard
kubectl apply -f operator-system/configconnector-operator.yamlFühren Sie die folgenden Schritte aus, um den Config Connector-Operator für die Ausführung im Namespaced-Modus zu konfigurieren:
Erstellen Sie ein Manifest mit dem Namen
configconnector.yamlund dem folgenden Inhalt:apiVersion: core.cnrm.cloud.google.com/v1beta1 kind: ConfigConnector metadata: # the name is restricted to ensure that there is only ConfigConnector resource installed in your cluster name: configconnector.core.cnrm.cloud.google.com spec: mode: namespaced stateIntoSpec: AbsentWenden Sie das Manifest auf Ihren Cluster an:
kubectl apply -f configconnector.yaml
Config Connector im Namespaced-Modus installieren
In den folgenden Abschnitten wird das Projekt, in dem Sie Config Connector installieren, als Hostprojekt bezeichnet. Die anderen Projekte, in denen Config Connector Ressourcen verwalten kann, sind verwaltete Projekte. Das Host- und das verwaltete Projekt können dasselbe Projekt sein, wenn Sie möchten, dass Config Connector nur Ressourcen im selben Projekt wie Ihr Cluster erstellt.
Namespace erstellen
Erstellen Sie einen neuen Namespace, indem Sie den folgenden Befehl ausführen:
kubectl create namespace NAMESPACE
Ersetzen Sie NAMESPACE durch einen Namen für den Namespace.
Identität erstellen
Erstellen Sie ein IAM-Dienstkonto (Identity and Access Management) und eine Bindung zwischen dem IAM-Dienstkonto und dem Kubernetes-Dienstkonto von Config Connector. Gehen Sie dazu so vor:
IAM-Dienstkonto erstellen. Wenn Sie bereits ein Dienstkonto haben, können Sie dieses verwenden, statt ein neues zu erstellen. Verwenden Sie
gcloud, um das Dienstkonto mit folgendem Befehl zu erstellen:gcloud iam service-accounts create NAMESPACE_GSA --project HOST_PROJECT_IDDabei gilt:
- NAMESPACE_GSA durch den Namen des Google-Dienstkontos (GSA, Google Service Account), das an Ihren Namespace gebunden ist.
- HOST_PROJECT_ID ist die ID Ihres Hostprojekts.
Weitere Informationen zum Erstellen von Dienstkonten finden Sie unter Dienstkonten erstellen und verwalten.
Gewähren Sie dem IAM-Dienstkonto erweiterte Berechtigungen für Ihr verwaltetes Projekt:
gcloud projects add-iam-policy-binding MANAGED_PROJECT_ID \ --member="serviceAccount:NAMESPACE_GSA@HOST_PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/owner"Ersetzen Sie MANAGED_PROJECT_ID durch die ID Ihres verwalteten Projekts.
Erstellen Sie eine IAM-Richtlinienbindung zwischen dem IAM-Dienstkonto und dem Kubernetes-Dienstkonto von Config Connector:
gcloud iam service-accounts add-iam-policy-binding \ NAMESPACE_GSA@HOST_PROJECT_ID.iam.gserviceaccount.com \ --member="serviceAccount:HOST_PROJECT_ID.svc.id.goog[cnrm-system/cnrm-controller-manager-NAMESPACE]" \ --role="roles/iam.workloadIdentityUser"Erteilen Sie dem IAM-Dienstkonto die Berechtigung, Prometheus-Messwerte in Google Cloud Observability in Ihrem Hostprojekt zu veröffentlichen:
gcloud projects add-iam-policy-binding HOST_PROJECT_ID \ --member="serviceAccount:NAMESPACE_GSA@HOST_PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/monitoring.metricWriter"
ConfigConnectorContext erstellen
Wenn Sie Google Cloud -Ressourcen erstellen möchten, konfigurieren Sie Config Connector so, dass Ihr Namespace überwacht wird. Fügen Sie dazu in diesem Namespace ein ConfigConnectorContext-Objekt hinzu.
Führen Sie folgende Schritte aus, um eine ConfigConnectorContext zu erstellen.
Erstellen Sie ein Manifest mit dem Namen
configconnectorcontext.yamlund folgendem Inhalt:apiVersion: core.cnrm.cloud.google.com/v1beta1 kind: ConfigConnectorContext metadata: # you need one ConfigConnectorContext per namespace name: configconnectorcontext.core.cnrm.cloud.google.com namespace: NAMESPACE spec: googleServiceAccount: "NAMESPACE_GSA@HOST_PROJECT_ID.iam.gserviceaccount.com" stateIntoSpec: AbsentWenden Sie das Manifest auf Ihren Cluster an:
kubectl apply -f configconnectorcontext.yamlPrüfen Sie mit dem folgenden Befehl, ob der Config Connector-Operator ein Kubernetes-Dienstkonto für Ihren Namespace erstellt hat:
kubectl get serviceaccount/cnrm-controller-manager-NAMESPACE -n cnrm-systemPrüfen Sie, ob der Config Connector-Controller-Pod für Ihren Namespace ausgeführt wird:
kubectl wait -n cnrm-system \ --for=condition=Ready pod \ -l cnrm.cloud.google.com/component=cnrm-controller-manager \ -l cnrm.cloud.google.com/scoped-namespace=NAMESPACEWenn der Config Connector-Controller ausgeführt wird, sieht die Ausgabe in etwa so aus:
cnrm-controller-manager-abcdefghijk-0 condition met.
Verwaltung von Ressourcen in einem Namespace beenden
Wenn Sie möchten, dass Config Connector die Verwaltung von Ressourcen in einem Namespace beendet, entfernen Sie alle Config Connector-Ressourcen und das ConfigConnectorContext-Objekt in diesem Namespace.
Listen Sie alle Ressourcen der einzelnen benutzerdefinierten Config Connector-Ressourcendefinitionen auf, um alle Config Connector-Ressourcen in Ihrem Namespace zu ermitteln.
kubectl get gcp -n NAMESPACEDie Ausgabe dieses Befehls enthält alle benutzerdefinierten Ressourcendefinitionen (Custom Resource Definitions, CRDs), die eine von Config Connector verwaltete Ressource in diesem Namespace darstellen, einschließlich des Namens und des Kubernetes-Typs dieser Ressource.
Wenn Sie alle Config Connector-Ressourcen entfernen möchten, führen Sie für jede Ressource in der Ausgabe des vorherigen Schritts den folgenden Befehl aus:
kubectl delete -n NAMESPACE KIND NAMEErsetzen Sie Folgendes:
KIND: die Kubernetes-Art der Ressource.NAMEist der Name der -Ressource.
Löschen Sie das
ConfigConnectorContext-Objekt in Ihrem Namespace.kubectl delete -n NAMESPACE ConfigConnectorContext configconnectorcontext.core.cnrm.cloud.google.com
Config Connector deinstallieren
Führen Sie folgende Schritte aus, um Config Connector zu deinstallieren:
Führen Sie den folgenden Befehl aus, um die Config Connector-CRDs und Controllerkomponenten zu entfernen:
kubectl delete ConfigConnectorContext --all -A –wait=false kubectl delete ConfigConnector configconnector.core.cnrm.cloud.google.com \ --wait=trueFühren Sie folgenden Befehl aus, um den Config Connector-Operator zu deinstallieren:
kubectl delete -f operator-system/configconnector-operator.yaml --wait=true
Im Clustermodus installieren
Sie können Config Connector im Clustermodus installieren und verwalten, wenn Sie Ressourcen in einem einzelnen Projekt verwalten möchten und die Berechtigungstrennung, die der Namespaced-Modus bietet, nicht erforderlich ist.
Identität erstellen
Config Connector erstellt und verwaltet Google Cloud Ressourcen. Dabei erfolgt die Authentifizierung über ein IAM-Dienstkonto (Identity and Access Management). Die Verknüpfung der IAM-Dienstkonten mit Kubernetes-Dienstkonten erfolgt per Workload Identity Federation for GKE.
Führen Sie zum Erstellen der Identität folgende Schritte aus:
IAM-Dienstkonto erstellen. Wenn Sie ein vorhandenes Dienstkonto verwenden möchten, können Sie das tun und diesen Schritt überspringen:
gcloud iam service-accounts create SERVICE_ACCOUNT_NAMEErsetzen Sie SERVICE_ACCOUNT_NAME mit einem Namen für das Dienstkonto.
Weitere Informationen zum Erstellen von Dienstkonten finden Sie unter Dienstkonten erstellen und verwalten.
Gewähren Sie dem IAM-Dienstkonto erweiterte Berechtigungen für Ihr Projekt:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/editor"Ersetzen Sie PROJECT_ID durch Ihre Projekt-ID.
Erstellen Sie eine IAM-Richtlinienbindung zwischen dem IAM-Dienstkonto und dem vordefinierten Kubernetes-Dienstkonto, das von Config Connector ausgeführt wird:
gcloud iam service-accounts add-iam-policy-binding \ SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com \ --member="serviceAccount:PROJECT_ID.svc.id.goog[cnrm-system/cnrm-controller-manager]" \ --role="roles/iam.workloadIdentityUser"
Config Connector konfigurieren
Um die Installation abzuschließen, erstellen Sie eine Konfigurationsdatei für die CustomResource-ConfigConnector und wenden diese dann mit dem Befehl kubectl apply an. Der Config Connector-Operator installiertGoogle Cloud -Ressourcen-CRDs und Config Connector-Komponenten in Ihrem Cluster.
Führen Sie die folgenden Schritte aus, um den Operator als Clustermodus zu konfigurieren:
-
Kopieren Sie die folgende YAML-Datei in eine Datei mit dem Namen
configconnector.yaml: Ersetzen Sie Folgendes:# configconnector.yaml apiVersion: core.cnrm.cloud.google.com/v1beta1 kind: ConfigConnector metadata: # the name is restricted to ensure that there is only one # ConfigConnector resource installed in your cluster name: configconnector.core.cnrm.cloud.google.com spec: mode: cluster googleServiceAccount: "SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com" # Setting `stateIntoSpec` to `Absent` is recommended. It means setting `cnrm.cloud.google.com/state-into-spec` # annotation to `absent` for all Config Connector resources created in the cluster in the future. # It prevents Config Connector from populating unspecified fields into the spec. stateIntoSpec: Absent
SERVICE_ACCOUNT_NAMEdurch den Namen Ihres Dienstkontos.PROJECT_IDdurch Ihre Projekt-ID,
-
Wenden Sie die Konfiguration mit
kubectl applyauf Ihren Cluster an:kubectl apply -f configconnector.yaml
Speicherort für Ressourcen angeben
Config Connector kann Ressourcen nach Projekt, Ordner oder Organisation organisieren. Dies entspricht dem Organisieren von Ressourcen mit Google Cloud.
Bevor Sie mit Config Connector Ressourcen erstellen, müssen Sie festlegen, wo die Ressourcen angelegt werden sollen. Um zu ermitteln, wo eine Ressource erstellt werden soll, nutzt Config Connector eine Annotation in der Ressourcenkonfiguration oder in einem vorhandenen Namespace. Weitere Informationen finden Sie unter Ressourcen organisieren.
Wenn Sie keinen für diesen Zweck geeigneten Namespace haben, erstellen Sie einen mitkubectl.
kubectl create namespace NAMESPACE
Ersetzen Sie dabei NAMESPACE durch Ihren Namespace-Namen. Beispiel: config-connector.
Wählen Sie den Tab aus, in dem Config Connector Ressourcen anlegen soll.
Projekt
Führen Sie folgenden Befehl aus, um Ressourcen in einem bestimmten Projekt zu erstellen:
kubectl annotate namespace \ NAMESPACE cnrm.cloud.google.com/project-id=PROJECT_ID
Ersetzen Sie Folgendes:
NAMESPACEdurch Ihren Namespace-Namen.PROJECT_IDdurch Ihre Google Cloud Projekt-ID.
Ordner
Führen Sie folgenden Befehl aus, um Ressourcen in einem bestimmten Ordner zu erstellen:
kubectl annotate namespace \ NAMESPACE cnrm.cloud.google.com/folder-id=FOLDER_ID
Ersetzen Sie Folgendes:
NAMESPACEdurch Ihren Namespace-Namen.FOLDER_IDdurch Ihre Google Cloud Ordner-ID.
Organisation
Führen Sie folgenden Befehl aus, um Ressourcen in einer bestimmten Organisation zu erstellen:
kubectl annotate namespace \ NAMESPACE cnrm.cloud.google.com/organization-id=ORGANIZATION_ID
Ersetzen Sie Folgendes:
NAMESPACEdurch Ihren Namespace-Namen.ORGANIZATION_IDdurch Ihre Google Cloud Organisations-ID.
Wenn Sie Ihren Namespace mit Annotationen versehen, erstellt Config Connector Ressourcen im entsprechenden Projekt, im entsprechenden Ordner oder in der entsprechenden Organisation. Weitere Informationen dazu, wie Config Connector Kubernetes-Namespaces nutzt, finden Sie unter Kubernetes-Namespaces und Google Cloud -Projekte.
Installation prüfen
Config Connector führt alle seine Komponenten in einem Namespace mit dem Namen cnrm-system aus.
Mit dem folgenden Befehl können Sie prüfen, ob die Pods bereit sind:
kubectl wait -n cnrm-system \
--for=condition=Ready pod --all
Wenn Config Connector korrekt installiert ist, sieht die Ausgabe etwa so aus:
pod/cnrm-controller-manager-0 condition met
Config Connector deinstallieren
Führen Sie folgende Schritte aus, um Config Connector zu deinstallieren:
Führen Sie den folgenden Befehl aus, um die Config Connector-CRDs und Controllerkomponenten zu entfernen:
kubectl delete ConfigConnector configconnector.core.cnrm.cloud.google.com \ --wait=trueFühren Sie folgenden Befehl aus, um den Config Connector-Operator zu deinstallieren:
kubectl delete -f operator-system/configconnector-operator.yaml --wait=true
Config Connector aktualisieren
Führen Sie den folgenden Befehl aus, um die neueste Version des Config Connector-Operators herunterzuladen und zu installieren:
gcloud storage cp gs://configconnector-operator/latest/release-bundle.tar.gz release-bundle.tar.gz
tar zxvf release-bundle.tar.gz
kubectl apply -f operator-system/configconnector-operator.yaml
Config Connector downgraden
Ein vollständiges Downgrade von Config Connector wird nicht unterstützt. Wenn Sie sowohl den Config Connector-Operator als auch die CRDs downgraden möchten, müssen Sie Config Connector deinstallieren, neu installieren und dann Ihre Ressourcen noch einmal anwenden.
In Config Connector-Version 1.123.1 und höher können Sie die Operatorversion für Installationen, die den Namespace-Modus verwenden, zurücksetzen.
Legen Sie in jedem Namespace, in dem sich ein Operator befindet, den Sie zurücksetzen möchten, das Feld spec.version im Objekt ConfigConnectorContext auf die vorherige Config Connector-Version fest.
Sie können den Config Connector-Controller auf maximal drei Nebenversionen zurücksetzen. Sie müssen immer ein Rollback auf die neueste Patch-Version für eine bestimmte Nebenversion ausführen.
Upgrade von Installationen ohne Operator
Config Connector Version 1.33.0 und höher unterstützt nur die Installation mit dem GKE-Add-on oder dem Operator.
Wenn Sie ein Upgrade auf den Operator durchführen und alle Config Connector-Ressourcen beibehalten möchten, müssen Sie alle Config Connector-Systemkomponenten mit Ausnahme der CRDs entfernen und dann den Operator installieren.
Führen Sie folgenden Befehle aus, um Nicht-CRD-Komponenten des Config Connector-Systems zu entfernen:
kubectl delete sts,deploy,po,svc,roles,clusterroles,clusterrolebindings --all-namespaces -l cnrm.cloud.google.com/system=true --wait=true kubectl delete validatingwebhookconfiguration abandon-on-uninstall.cnrm.cloud.google.com --ignore-not-found --wait=true kubectl delete validatingwebhookconfiguration validating-webhook.cnrm.cloud.google.com --ignore-not-found --wait=true kubectl delete mutatingwebhookconfiguration mutating-webhook.cnrm.cloud.google.com --ignore-not-found --wait=trueInstallieren Sie Config Connector mit dem GKE-Add-on oder dem Operator.
Vom Add-on zur manuellen Installation wechseln
Bei der Installation als Add-on wird die Version von Config Connector direkt mit der installierten GKE-Version verknüpft.
Die manuelle Installation ermöglicht schnellere Aktualisierungen zu den Kosten der manuellen Upgrades.
So wechseln Sie die Installationsmethode und behalten Ihre Ressourcen bei:
Deaktivieren Sie das Add-on, ohne irgendwelche
ConfigConnector- oderConfigConnectorContext-Objekte zu löschen:gcloud container clusters update CLUSTER_NAME --update-addons ConfigConnector=DISABLEDErsetzen Sie
CLUSTER_NAMEdurch den Namen des Clusters, auf dem Sie Config Connector installiert haben.Installieren Sie den manuellen Operator der ausgewählten Version.
Um potenzielle CRD-Validierungsfehler (z. B.
KNV2009: Invalid value: "v1beta1": must appear in spec.versions) zu vermeiden, muss die ausgewählte Version des manuellen Operators mit der Version, die Sie für das Add-on verwendet haben, übereinstimmen oder neuer sein. Wenn Sie die Version des manuellen Operators downgraden, kann dies zu Fehlern führen (z. B. KNV2009), da das GKE-Add-on möglicherweise bestimmte CRDs bereits auf eine neuere Config Connector-Version aktualisiert hat.
Nächste Schritte
- Erste Schritte mit Config Connector.
- Best Practices für Config Connector