Config Connector im Namespace-Modus installieren
Auf dieser Seite wird beschrieben, wie Sie Config Connector im Namespaced-Modus installieren.
Die Installation im Namespace-Modus ist eine Erweiterung der Config Connector-Installation. Im Namespace-Modus können mehrere Projekte mit jeweils eigenen Google Cloud Identitäten verwaltet werden.
Hinweis
Bevor Sie Config Connector für die Ausführung im Namespace-Modus konfigurieren, müssen Sie Config Connector installiert haben.
Config Connector für die Ausführung im Namespaced-Modus konfigurieren
Führen Sie die folgenden Schritte aus, um den Namespace-Modus zu aktivieren:
Kopieren Sie das folgende YAML-Manifest in eine Datei mit dem Namen
configconnector.yaml
: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: Absent
Wenden Sie die Konfiguration mit
kubectl apply
auf Ihren Cluster an:kubectl apply -f configconnector.yaml
Config Connector für die Verwaltung von Ressourcen in Ihren Namespaces konfigurieren
In den folgenden Abschnitten wird das Google Cloud Projekt, in dem Sie Config Connector installieren, als Hostprojekt oder HOST_PROJECT_ID bezeichnet. Die anderen Projekte, in denen Sie Ressourcen verwalten, werden als verwaltete Projekte oder MANAGED_PROJECT_ID bezeichnet. Dies können dieselben Projekte sein, wenn Sie Config Connector nur verwenden möchten, um Google Cloud Ressourcen im selben Projekt wie Ihr Cluster zu erstellen.
Namespace erstellen
Sie können diesen Schritt überspringen, wenn Sie bereits einen Namespace haben, mit dem SieGoogle Cloud -Ressourcen organisieren können.
Verwenden Sie kubectl
, um einen neuen Namespace mit folgendem Befehl zu erstellen:
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:
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_ID
Dabei 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"
Dabei gilt:
- MANAGED_PROJECT_ID ist die ID Ihres verwalteten Projekts.
- NAMESPACE_GSA durch den Namen des Google-Dienstkontos, das an Ihren Namespace gebunden ist.
- HOST_PROJECT_ID ist die ID Ihres Hostprojekts.
Erstellen Sie eine IAM-Richtlinienbindung zwischen dem IAM-Dienstkonto und dem Kubernetes-Dienstkonto von Config Connector. Mit dem folgenden
gcloud
-Befehl können Sie die Dienstkonten binden: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" \ --project HOST_PROJECT_ID
Dabei gilt:
- HOST_PROJECT_ID ist die ID Ihres Hostprojekts.
- NAMESPACE_GSA durch den Namen des Google-Dienstkontos, das an Ihren Namespace gebunden ist.
- NAMESPACE ist Ihr Namespace.
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"
Ersetzen Sie Folgendes:
- HOST_PROJECT_ID ist die ID Ihres Hostprojekts.
- NAMESPACE_GSA durch den Namen des Google-Dienstkontos, das an Ihren Namespace gebunden ist.
Einen ConfigConnectorContext erstellen
Wenn Sie Google Cloud -Ressourcen erstellen möchten, müssen Sie Config Connector so konfigurieren, dass Ihr Namespace überwacht wird. Fügen Sie dazu dem zu verwendenden Namespace ein ConfigConnectorContext
-Objekt hinzu.
Führen Sie folgende Schritte aus, um eine ConfigConnectorContext
zu erstellen.
Kopieren Sie das folgende YAML-Manifest in eine Datei mit dem Namen
configconnectorcontext.yaml
:apiVersion: core.cnrm.cloud.google.com/v1beta1 kind: ConfigConnectorContext metadata: # you can only have one ConfigConnectorContext per namespace name: configconnectorcontext.core.cnrm.cloud.google.com namespace: NAMESPACE spec: googleServiceAccount: "NAMESPACE_GSA@HOST_PROJECT_ID.iam.gserviceaccount.com" stateIntoSpec: Absent
Dabei gilt:
- Ersetzen Sie NAMESPACE durch den Namen Ihres Namespace:
- NAMESPACE_GSA durch den Namen des Google-Dienstkontos, das an Ihren Namespace gebunden ist.
- HOST_PROJECT_ID ist die ID Ihres Hostprojekts.
Wenden Sie die Datei mit
kubectl
auf Ihren Cluster an:kubectl apply -f configconnectorcontext.yaml
Prüfen Sie mit dem folgenden Befehl, ob der Config Connector-Operator ein Kubernetes-Dienstkonto für Ihren Namespace mit
kubectl
erstellt hat:kubectl get serviceaccount/cnrm-controller-manager-NAMESPACE -n cnrm-system
Ersetzen Sie NAMESPACE durch den Namen Ihres Namespace:
Prüfen Sie mit folgendem
kubectl
-Befehl, 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=NAMESPACE
Ersetzen Sie NAMESPACE durch den Namen Ihres Namespace:
Wenn der Config Connector-Controller ausgeführt wird, sieht die Ausgabe in etwa so aus:
cnrm-controller-manager-abcdefghijk-0 condition met.
Config Connector so konfigurieren, dass Ressourcen nicht mehr in Ihrem Namespace verwaltet werden
Wenn Sie Config Connector so konfigurieren möchten, dass er Ihren Namespace nicht mehr verwaltet, entfernen Sie alle Config Connector-Ressourcen in Ihrem Namespace und löschen den ConfigConnectorContext
in Ihrem Namespace.
Config Connector-Ressourcen aus Ihrem Namespace entfernen
Entfernen Sie alle Config Connector-Ressourcen aus Ihrem Namespace, um das Entfernen von ConfigConnectorContext
abzuschließen.
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 NAMESPACE
Ersetzen Sie NAMESPACE durch den Namen Ihres Namespace:
Wenn Sie alle Config Connector-Ressourcen pro Ressource in der Ausgabe des vorherigen Schritts entfernen möchten, geben Sie einen Löschbefehl aus.
kubectl delete -n NAMESPACE KIND NAME
Dabei gilt:
NAMESPACE
ist der Name Ihres NamespaceKIND
ist die Art der Ressource, die im vorherigen Schritt ermittelt wurdeNAME
ist der Name der im vorherigen Schritt erkannten Ressource
ConfigConnectorContext entfernen
Wenn Sie Config Connector so konfigurieren möchten, dass er die Config Connector-Ressourcen in Ihrem Namespace nicht mehr verwaltet, löschen Sie ConfigConnectorContext
in Ihrem Namespace.
kubectl delete -n NAMESPACE ConfigConnectorContext configconnectorcontext.core.cnrm.cloud.google.com
Ersetzen Sie NAMESPACE durch den Namen Ihres Namespace:
Das Löschen von ConfigConnectorContext
wird erst abgeschlossen, nachdem alle Config Connector-Ressourcen aus Ihrem Namespace entfernt wurden.
Config Connector deinstallieren
Führen Sie die folgenden Schritte nicht aus, um einen Config Controller-Cluster zu deinstallieren.
Entfernen Sie mit kubectl delete
die Config Connector-CRDs und die Controllerkomponenten:
kubectl delete ConfigConnectorContext --all -A –wait=false
kubectl delete ConfigConnector configconnector.core.cnrm.cloud.google.com \
--wait=true
Führen Sie folgenden Befehl aus, um den Config Connector-Operator zu deinstallieren:
kubectl delete -f operator-system/configconnector-operator.yaml --wait=true
Nächste Schritte
- Erste Schritte mit Config Connector.
- Best Practices für Config Connector