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. Der Namespace-Modus unterstützt die Verwaltung mehrerer Projekte mit jeweils eigenen Google Cloud Identitäten.

Hinweise

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:

  1. 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
    
  2. 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.

IAM-Richtlinie für die Verbindung zu Google Cloud -APIs konfigurieren

Damit Config Connector Ihre Google Cloud Ressourcen mit Workload Identity Federation for GKE verwalten kann, erstellen Sie eine IAM-Richtlinie.

Um die Richtlinienbindung zu konfigurieren, erstellen Sie eine IAM-Zulassungsrichtlinie, die auf das Kubernetes-Dienstkonto verweist, das automatisch erstellt wird, wenn Sie Config Connector in Ihrem Cluster installieren:

gcloud projects add-iam-policy-binding projects/PROJECT_ID \
    --role=roles/iam.workloadIdentityUser \
    --member=principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/PROJECT_ID.svc.id.goog/subject/ns/NAMESPACE/sa/cnrm-system/cnrm-controller-manager \
    --condition=None

Ersetzen Sie Folgendes:

  • PROJECT_ID: Ihre Google Cloud -Projekt-ID.
  • PROJECT_NUMBER: Ihre numerische Google CloudProjektnummer.
  • NAMESPACE: Der Name des Kubernetes-Namespace für das Config Connector-ServiceAccount. Wenn Sie keinen Namespace explizit erstellt haben, ist der Wert default.

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.

  1. 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.
  2. Wenden Sie die Datei mit kubectl auf Ihren Cluster an:

    kubectl apply -f configconnectorcontext.yaml
    
  3. 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:

  4. 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.

  1. 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:

  2. 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 Namespace
    • KIND ist die Art der Ressource, die im vorherigen Schritt ermittelt wurde
    • NAME 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