Mit dem GKE-Add-on installieren


Auf dieser Seite wird beschrieben, wie Sie Config Connector mit dem Config-Add-on in einem Google Kubernetes Engine-Cluster (GKE) installieren.

Wenn Sie GKE in Google Cloud verwenden, empfehlen wir, Config Connector mit diesem Add-on zu installieren. Informationen zu weiteren Installationsoptionen finden Sie unter Installationstyp wählen.

Hinweis

Führen Sie die folgenden Aufgaben aus, bevor Sie beginnen:

  • Achten Sie darauf, dass die Google Kubernetes Engine API aktiviert ist.
  • Google Kubernetes Engine API aktivieren
  • Prüfen Sie, ob das Cloud SDK installiert ist.
  • Legen Sie die Standardeinstellungen für das gcloud-Befehlszeilentool für Ihr Projekt mit einer der folgenden Methoden fest:
    • Verwenden Sie gcloud init, wenn Sie die Standardeinstellungen für Projekte festlegen möchten.
    • Verwenden Sie gcloud config, um Ihre Projekt-ID, Zone und Region individuell festzulegen.

    gcloud init

    1. Führen Sie gcloud init aus und folgen Sie der Anleitung:

      gcloud init

      Wenn Sie SSH auf einem Remote-Server verwenden, können Sie mit dem Flag --console-only verhindern, dass mit dem Befehl ein Browserfenster geöffnet wird:

      gcloud init --console-only
    2. Folgen Sie der Anleitung, um das gcloud-Tool für die Verwendung Ihres Google Cloud-Kontos zu autorisieren.
    3. Erstellen Sie eine neue Konfiguration oder wählen Sie eine vorhandene aus.
    4. Wählen Sie ein Google Cloud-Projekt aus.
    5. Wählen Sie eine Compute Engine-Standardzone aus.
    6. Wählen Sie eine Compute Engine-Standardregion aus.

    gcloud config

    1. Legen Sie Ihre standardmäßige Projekt-ID fest:
      gcloud config set project PROJECT_ID
    2. Legen Sie Ihre Compute Engine-Standardregion fest, z. B. us-central1:
      gcloud config set compute/region COMPUTE_REGION
    3. Legen Sie Ihre Compute Engine-Standardzone fest, z. B. us-central1-c:
      gcloud config set compute/zone COMPUTE_ZONE
    4. Aktualisieren Sie gcloud auf die neueste Version:
      gcloud components update

    Durch Festlegen von Standardspeicherorten können Sie Fehler im gcloud-Tool wie die folgenden vermeiden: One of [--zone, --region] must be supplied: Please specify location.

  • Wählen Sie ein Google Cloud-Projekt aus oder erstellen Sie eines, um den Config Connector zu installieren.

Config Connector-Add-ons installieren

Sie wenden das Config Connector-Add-on durch Erstellen eines neuen GKE Clusters oder durch Aktivieren eines vorhandenen Clusters an. Nach der Installation des Config Connector-Add-ons konfigurieren Sie die Config Connector-Installation mit Ihren Google-Dienstkonten und Ihren Namespaces.

Voraussetzungen

Das Config Connector-Add-on hat folgende Anforderungen:

  • Sie benötigen eine der folgenden GKE-Versionen:

    • 1.15.11-gke.5 und höher
    • 1.16.8-gke.8 und höher
    • 1.17.4-gke.5 und höher
  • Sie müssen einen Workload Identity-Pool und das Kubernetes Engine Monitoring für die Clustern aktivieren, in denen Sie Config Connector aktivieren.

Einen GKE-Cluster einrichten

Sie können das Config Connector-Add-on für neue oder vorhandene Cluster verwenden.

Neuen Cluster mit aktiviertem Config Connector-Add-on erstellen

Sie können GKE-Cluster mit dem gcloud-Tool oder der Google Cloud Console erstellen.

gcloud

Führen Sie folgenden Befehl aus, um einen Cluster mit dem gcloud-Befehlszeilentool zu erstellen:

gcloud container clusters create CLUSTER_NAME \
    --release-channel CHANNEL \
    --addons ConfigConnector \
    --workload-pool=PROJECT_ID.svc.id.goog \
    --enable-stackdriver-kubernetes

Dabei gilt:

  • CLUSTER_NAME ist der Name des GKE-Clusters.
  • CHANNEL ist ein GKE-Releasekanal, rapid und regular werden unterstützt.
  • PROJECT_ID durch Ihre Google Cloud-Projekt-ID.

Cloud Console

So erstellen Sie einen Cluster mit der Google Cloud Console:

  1. Rufen Sie in der Cloud Console das Kubernetes Engine-Menü auf.

    Zum Google Kubernetes Engine-Menü

  2. Klicken Sie auf Erstellen. Die Seite Kubernetes-Cluster erstellen wird angezeigt.

  3. Geben Sie einen Namen für Ihren Cluster ein.

  4. Wählen Sie eine unterstützte Masterversion aus.

  5. Konfigurieren Sie Ihre weiteren Cluster nach Bedarf.

  6. Klicken Sie im Navigationsbereich unter Cluster auf Sicherheit.

  7. Klicken Sie das Kästchen Workload Identity aktivieren an.

  8. Klicken Sie im Navigationsbereich links unter Cluster auf Features.

  9. Klicken Sie auf das Kästchen Config Connector aktivieren.

  10. Klicken Sie auf Erstellen.

Nachdem Sie den Cluster erstellt haben, fahren Sie mit Identität erstellen fort.

Config Connector-Add-on für einen vorhandenen Cluster aktivieren

Sie können das Config Connector-Add-on in einem vorhandenen GKE-Cluster mit gcloud oder mit der Google Cloud Console aktivieren.

Vorbereitung

Das Aktivieren des Config Connector-Add-ons in einem vorhandenen Cluster hat folgende Voraussetzungen:

  • Sie benötigen einen Cluster, der die Anforderungen für das Config Connector-Add-ons erfüllt.
  • Richten Sie Workload Identity in dem Cluster ein, in dem Sie Config Connector installieren möchten.

Verwenden Sie das gcloud-Befehlszeilentool, um Workload Identity für einen Knotenpool zu aktivieren:

gcloud container node-pools update NODE_POOL \
    --workload-metadata=GKE_METADATA \
    --cluster CLUSTER_NAME

Dabei gilt:

  • NODE_POOL durch den Namen Ihres Knotenpools ersetzen
  • Ersetzen Sie CLUSTER_NAME durch den Namen Ihres Clusters.
Config Connector-Add-on aktivieren

Sie können das Config Connector-Add-on in einem vorhandenen GKE-Cluster mit dem gcloud-Befehlszeilentool oder der Google Cloud Console aktivieren.

gcloud

So aktivieren Sie das Config Connector-Add-on in einem vorhandenen GKE-Cluster mit dem gcloud-Befehlszeilentool:

gcloud container clusters update CLUSTER_NAME \
    --update-addons ConfigConnector=ENABLED

Ersetzen Sie dabei CLUSTER_NAME durch den Namen Ihres GKE-Clusters.

Cloud Console

  1. Rufen Sie in der Cloud Console das Kubernetes Engine-Menü auf.

    Zum Google Kubernetes Engine-Menü

  2. Wählen Sie den Cluster aus, in dem Sie Config Connector installieren möchten. Die Seite Clusterdetails wird angezeigt.

  3. Suchen Sie im Abschnitt Features nach der Zeile mit dem Config Connector und klicken Sie auf Bearbeiten.

  4. Klicken Sie auf das Kästchen Config Connector aktivieren und dann auf Änderungen speichern, um den Cluster zu aktualisieren.

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.

Führen Sie zum Erstellen der Identität folgende Schritte aus:

  1. IAM-Dienstkonto erstellen. Wenn Sie ein vorhandenes Dienstkonto verwenden möchten, können Sie das tun und diesen Schritt überspringen.

    Erstellen Sie mit folgendem Befehl das Dienstkonto:
      gcloud iam service-accounts create SERVICE_ACCOUNT_NAME
    Ersetzen Sie SERVICE_ACCOUNT_NAME mit einem Namen für das Dienstkonto.
  2. Weitere Informationen zum Erstellen von Dienstkonten finden Sie unter Dienstkonten erstellen und verwalten.

  3. 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/owner"
    Ersetzen Sie Folgendes:
    • PROJECT_ID durch Ihre Projekt-ID,
    • SERVICE_ACCOUNT_NAME durch den Namen Ihres Dienstkontos.
  4. 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"
    Ersetzen Sie Folgendes:
    • SERVICE_ACCOUNT_NAME durch den Namen Ihres Dienstkontos.
    • PROJECT_ID durch Ihre Projekt-ID,

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 installiert CRDs und Config Connector-Komponenten von Google Cloud in Ihrem Cluster.

Führen Sie folgende Schritte aus, um den Operator zu konfigurieren:

  1. Kopieren Sie folgende YAML-Datei in eine Datei mit dem Namen configconnector.yaml:
    # 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"
    
    Ersetzen Sie Folgendes:
    • SERVICE_ACCOUNT_NAME durch den Namen Ihres Dienstkontos.
    • PROJECT_ID durch Ihre Projekt-ID,
  2. Wenden Sie die Konfiguration mit kubectl apply auf 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 mit kubectl.
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:

  • NAMESPACE durch Ihren Namespace-Namen.
  • PROJECT_ID durch 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:

  • NAMESPACE durch Ihren Namespace-Namen.
  • FOLDER_ID durch 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:

  • NAMESPACE durch Ihren Namespace-Namen.
  • ORGANIZATION_ID durch 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 aktualisieren

Ihr Config Connector-Add-on wird zusammen mit dem GKE-Cluster auf eine neue Nebenversion aktualisiert. Die Ressourcen in Ihrem Cluster bleiben bei einem Upgrade erhalten.

Config Connector deinstallieren

Führen Sie folgende Schritte aus, um Config Connector zu deinstallieren:

  1. Entfernen Sie mit kubectl delete die Config Connector-CRDs und die Controllerkomponenten:

    kubectl delete ConfigConnector configconnector.core.cnrm.cloud.google.com --wait=true
    
  2. Deaktivieren Sie das Config Connector-Add-on in Ihrem Cluster mit dem gcloud-Tool oder der Google Cloud Console:

    gcloud

    Zum Deaktivieren des Config Connector-Add-ons mit gcloud führen Sie folgenden Befehl aus:

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

    Ersetzen Sie dabei CLUSTER_NAME durch den Namen des Clusters, in dem das Config Connector-Add-on installiert ist.

    Cloud Console

    Mit den im Folgenden aufgeführten Schritten deaktivieren Sie das Config Connector-Add-on über die Google Cloud Console.

    1. Rufen Sie in der Google Cloud Console die Seite für die Google Kubernetes Engine-Cluster auf und wählen Sie den Cluster aus, den Sie aktualisieren möchten.

      Zum Google Kubernetes Engine-Menü

    2. Klicken Sie auf Bearbeiten. Der Bildschirm Cluster bearbeiten wird angezeigt.

    3. Klicken Sie auf Add-ons.

    4. Wählen Sie Config Connector und dann Deaktiviert aus.

    5. Klicken Sie auf Speichern, um Ihren Cluster zu aktualisieren.

Fehlerbehebung

In folgenden Abschnitten finden Sie Tipps zur Fehlerbehebungen bei der Installation von Config Connector.

Fehlerbehebung bei Config Connector-Add-on-Installationen

Wenn Sie das Config Connector-Add-on nicht aktivieren können, wird folgende Fehlermeldung angezeigt: Node version 1.15.x-gke.x s unsupported. Prüfen Sie, ob die Version des GKE-Clusters die erforderlichen Anforderungen erfüllt, um diesen Fehler zu beheben. Führen Sie folgenden Befehl aus, um alle gültigen Versionen für Ihre Cluster abzurufen:

gcloud container get-server-config --format "yaml(validMasterVersions)" \
    --zone ZONE

Ersetzen Sie ZONE durch die Compute Engine-Zone.

Wählen Sie aus der Liste eine Version aus, die den Anforderungen entspricht. Die Fehlermeldung wird auch angezeigt, wenn Workload Identity oder Kubernetes Engine Monitoring deaktiviert sind. Achten Sie darauf, dass diese Funktionen aktiviert sind, um den Fehler zu beheben.

Fehler bei Berechtigungen für Ressourcenabgleiche beheben

Wenn Config Connector Ressourcen nicht erfolgreich abgleichen kann und die Logs die Fehlermeldung The caller does not have permission, forbidden. enthalten, ist Workload Identity in Ihrem GKE-Cluster und/oder Knotenpool möglicherweise nicht aktiviert.

Führen Sie zur Untersuchung dieses Umstands folgende Schritte aus:

  1. Speichern Sie folgende Pod-Konfiguration als wi-test.yaml:
    apiVersion: v1
    kind: Pod
    metadata:
      name: workload-identity-test
      namespace: cnrm-system
    spec:
      containers:
      - image: google/cloud-sdk:slim
        name: workload-identity-test
        command: ["sleep","infinity"]
      serviceAccountName: cnrm-controller-manager
    
  2. Erstellen Sie den Pod in Ihrem GKE-Cluster:
    kubectl apply -f wi-test.yaml
    
  3. Öffnen Sie eine interaktive Sitzung im Pod:
    kubectl exec -it workload-identity-test \
      --namespace cnrm-system \
      -- /bin/bash
    
  4. Listen Sie Ihre Identität auf:
    gcloud auth list
    
  5. Prüfen Sie, ob die aufgeführte Identität mit dem Google-Dienstkonto übereinstimmt, das an Ihre Ressourcen gebunden ist.

    Wird stattdessen das Compute Engine-Standarddienstkonto angezeigt, ist Workload Identity nicht in Ihrem GKE-Cluster und/oder Knotenpool aktiviert.

  6. Beenden Sie die interaktive Sitzung und löschen Sie den Pod aus Ihrem GKE-Cluster:
    kubectl delete pod workload-identity-test \
    --namespace cnrm-system
    

Nächste Schritte