Anthos Service Mesh 1.6

Cluster bei Environ registrieren

Sie müssen Ihren GKE on Google Cloud-Cluster mit Connect beim Environ Ihres Projekts registrieren. Ein Environ bietet eine einheitliche Möglichkeit, mehrere Cluster und deren Arbeitslasten anzeigen zu lassen und zu verwalten. Weitere Informationen zu Environs und zu den Funktionen, die sie ermöglichen, finden Sie in unserem Environ-Leitfaden.

Sie müssen nicht alle Cluster gleichzeitig registrieren. Cluster werden aber erst auf der Anthos-Clusterseite in der Cloud Console angezeigt, wenn Sie sie registriert haben.

Mit dem gcloud-Befehlszeilentool haben Sie einige erweiterte Optionen für die Clusterregistrierung, die in der Cloud Console nicht verfügbar sind. Dazu gehören auch das Herunterladen und das Anwenden des Connect Agent-Manifests. Weitere Informationen zu diesen Optionen finden Sie unter Erweiterte Registrierungsoptionen in der Connect-Dokumentation.

Vorbereitung

Umgebungsvariablen festlegen

Die folgenden Umgebungsvariablen werden in den gcloud-Befehlen auf dieser Seite verwendet.

  1. Rufen Sie die Projekt-ID für das Environ-Hostprojekt ab:

    gcloud

    gcloud projects list

    Console

    1. Rufen Sie in der Cloud Console die Seite Dashboard auf:

      Zur Seite "Dashboard"

    2. Klicken Sie oben auf der Seite auf das Drop-down Auswählen aus. Wählen Sie im angezeigten Fenster Auswählen aus Ihr Projekt aus. Die Projekt-ID wird auf der Dashboard-Karte Projektinformationen des Projekts angezeigt.

  2. Erstellen Sie eine Umgebungsvariable für die ID des Environ-Hostprojekts:

    export ENVIRON_PROJECT_ID=YOUR_PROJECT_ID
  3. Rufen Sie den URI des Clusters ab. Ersetzen Sie im folgenden Befehl PROJECT_ID durch die ID des Projekts, in dem der Cluster erstellt wurde. Sie muss mit der ID des Environ-Hostprojekts übereinstimmen:

    gcloud container clusters list \
        --project=PROJECT_ID \
        --uri
  4. Erstellen Sie eine Umgebungsvariable für den URI:

    export CLUSTER_URI=YOUR_CLUSTER_URI

Dienstkonto und Schlüsseldatei erstellen

Zum Registrieren eines Clusters ist eine JSON-Datei mit den Dienstkonto-Anmeldedaten erforderlich. Um das Prinzip der geringsten Berechtigung anzuwenden, empfehlen wir, dass Sie für jeden registrierten Cluster ein eigenes Dienstkonto erstellen.

So erstellen Sie ein Dienstkonto und eine Schlüsseldatei:

  1. Wählen Sie einen Namen für das Dienstkonto aus und erstellen Sie eine Umgebungsvariable dafür:

    export SERVICE_ACCOUNT_NAME=SERVICE_ACCOUNT_NAME

  2. Erstellen Sie das Dienstkonto:

    gcloud iam service-accounts create ${SERVICE_ACCOUNT_NAME} \
        --project ${ENVIRON_PROJECT_ID}
  3. Weisen Sie dem Dienstkonto die IAM-Rolle gkehub.connect zu:

    gcloud projects add-iam-policy-binding ${ENVIRON_PROJECT_ID} \
        --member="serviceAccount:${SERVICE_ACCOUNT_NAME}@${ENVIRON_PROJECT_ID}.iam.gserviceaccount.com" \
        --role="roles/gkehub.connect"
  4. Erstellen Sie eine Umgebungsvariable für den lokalen Dateipfad, unter dem Sie die JSON-Datei speichern möchten. Es empfiehlt sich, die Datei nach dem Namen des Dienstkontos und Ihrer Projekt-ID zu benennen. Beispiel: /tmp/creds/${SERVICE_ACCOUNT_NAME}-${ENVIRON_PROJECT_ID}.json.

    export SERVICE_ACCOUNT_KEY_PATH=LOCAL_KEY_PATH
  5. Laden Sie die JSON-Datei des Dienstkontos mit dem privaten Schlüssel herunter:

    gcloud iam service-accounts keys create ${SERVICE_ACCOUNT_KEY_PATH} \
        --project=${ENVIRON_PROJECT_ID} \
        --iam-account=${SERVICE_ACCOUNT_NAME}@${ENVIRON_PROJECT_ID}.iam.gserviceaccount.com

Berechtigungen für das Projekt des Clusters erteilen

Wenn sich das Environ und der zu registrierende Cluster in verschiedenen Projekten befinden, müssen Sie dem Standarddienstkonto für das Environ die erforderlichen Berechtigungen im Projekt des Clusters erteilen. Weitere Informationen dazu finden Sie unter Dem Standarddienstkonto des Hubs die erforderlichen Berechtigungen im GKE-Clusterprojekt gewähren. Beachten Sie, dass in der Connect-Dokumentation anstelle von "Environ" der Begriff Hub verwendet wird. Beide Begriffe haben aber dieselbe Bedeutung.

Cluster registrieren

Ersetzen Sie im folgenden Befehl MEMBERSHIP_NAME durch einen Namen, der den zu registrierenden Cluster eindeutig identifiziert. Der Name darf alphanumerische Zeichen (keine Großbuchstaben) sowie Bindestriche enthalten und muss mit einem alphanumerischen Zeichen beginnen und enden. Beispiele: my-name, 123-abc. Der regex für die Überprüfung lautet '[a-z0-9]([-a-z0-9]*[a-z0-9])?'.

gcloud container hub memberships register MEMBERSHIP_NAME \
    --project=${ENVIRON_PROJECT_ID} \
    --gke-uri=${CLUSTER_URI} \
    --service-account-key-file=${SERVICE_ACCOUNT_KEY_PATH}

Der Befehl meldet eine Ausgabe, die in etwa so aussieht:

kubeconfig entry generated for CLUSTER_NAME.
Waiting for membership to be created...done.
Created a new membership [projects/PROJECT_ID/locations/global/memberships/MEMBERSHIP_NAME] for the cluster [MEMBERSHIP_NAME]
Generating the Connect Agent manifest...
Deploying the Connect Agent on cluster [MEMBERSHIP_NAME] in namespace [gke-connect]...
Deployed the Connect Agent on cluster [MEMBERSHIP_NAME] in namespace [gke-connect].
Finished registering the cluster [MEMBERSHIP_NAME] with the Hub.

Dieser Dienstkontoschlüssel wird als Secret mit dem Namen creds-gcp im Namespace gke-connect gespeichert.