Anthos Service Mesh auf vorhandenem Cluster installieren

In dieser Anleitung wird beschrieben, wie Sie die Anthos Service Mesh-Version 1.5.10 sauber auf einem vorhandenen Google Cloud GKE-Cluster installieren. Wenn Sie eine ältere Version von Anthos Service Mesh installiert haben, finden Sie weitere Informationen unter Anthos Service Mesh auf GKE upgraden.

Durch die Installation werden die folgenden Funktionen aktiviert:

Dieser Leitfaden erklärt auch, wie Sie Ihren Cluster in der Flotte registrieren, die sich im selben Google Cloud-Projekt wie der Cluster befindet. Mit einer Flotte können Sie Cluster organisieren, um die Verwaltung mehrerer Cluster zu vereinfachen. Wenn Sie Ihre Cluster in einer Flotte registrieren, können Sie Dienste und andere Infrastruktur nach Bedarf gruppieren und einheitliche Richtlinien anwenden.

Bevor Sie mit der Installation beginnen:

Voraussetzungen

  • Sie benötigen eine GKE Enterprise-Testlizenz oder ein -Abo. Weitere Informationen finden Sie in der Preisübersicht für GKE Enterprise.

  • Ihr GKE-Cluster muss die folgenden Anforderungen erfüllen:

  • Für die Aufnahme in das Service Mesh müssen Dienstports benannt werden und der Name muss das Protokoll des Ports in der folgenden Syntax enthalten: name: protocol[-suffix], wobei die eckigen Klammern ein optionales Suffix angeben, das mit einem Bindestrich beginnen muss. Weitere Informationen finden Sie unter Dienstports benennen.

  • Wenn Sie Anthos Service Mesh auf einem privaten Cluster installieren, müssen Sie eine Firewallregel zum Öffnen von Port 15017 hinzufügen, um die automatische Sidecar-Injektion zu verwenden. Wenn Sie die Firewallregel nicht hinzufügen und die automatische Sidecar-Injektion aktiviert ist, erhalten Sie beim Bereitstellen von Arbeitslasten eine Fehlermeldung. Weitere Informationen zum Hinzufügen einer Firewallregel finden Sie unter Firewallregeln für bestimmte Anwendungsfälle hinzufügen.

  • Wenn Sie in Ihrer Organisation einen Dienstperimeter erstellt haben, müssen Sie möglicherweise den Mesh CA-Dienst dem Perimeter hinzufügen. Weitere Informationen finden Sie unter Mesh CA einem Dienstperimeter hinzufügen.

Einschränkungen

Nur eine Installation von Anthos Service Mesh pro Google Cloud-Projekt wird unterstützt. Mehrere Mesh-Bereitstellungen in einem einzelnen Projekt werden nicht unterstützt.

Zertifikatsdaten

Zertifikate der Mesh CA enthalten die folgenden Daten zu den Diensten Ihrer Anwendung:

  • Die Google Cloud-Projekt-ID
  • Der GKE-Namespace
  • Der Name des GKE-Dienstkontos

Projekt einrichten

  1. Rufen Sie die Projekt-ID des Projekts ab, in dem der Cluster erstellt wurde:

    gcloud

    gcloud projects list

    Console

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

      Zur Seite "Dashboard"

    2. Klicken Sie oben auf der Seite auf die Drop-down-Liste 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 Projekt-ID:
    export PROJECT_ID=YOUR_PROJECT_ID
    
  3. Legen Sie die Standardprojekt-ID für das gcloud-Befehlszeilentool fest:
    gcloud config set project ${PROJECT_ID}
  4. Erstellen Sie eine Umgebungsvariable für die Projektnummer:
    export PROJECT_NUMBER=$(gcloud projects describe ${PROJECT_ID} --format="value(projectNumber)")

  5. Legen Sie die erforderlichen IAM-Rollen (Identitäts- und Zugriffsverwaltung) fest. Wenn Sie ein Projektinhaber sind, haben Sie alle erforderlichen Berechtigungen, um die Installation abzuschließen und Ihren Cluster in Ihrer Umgebung zu registrieren. Wenn Sie kein Projektinhaber sind, benötigen Sie jemanden, der Ihnen die folgenden spezifischen IAM-Rollen zuweisen kann. Ändern Sie im folgenden Befehl GCP_EMAIL_ADDRESS in das Konto, mit dem Sie sich bei Google Cloud anmelden.
    gcloud projects add-iam-policy-binding ${PROJECT_ID} \
         --member user:GCP_EMAIL_ADDRESS \
         --role=roles/editor \
         --role=roles/compute.admin \
         --role=roles/container.admin \
         --role=roles/resourcemanager.projectIamAdmin \
         --role=roles/iam.serviceAccountAdmin \
         --role=roles/iam.serviceAccountKeyAdmin \
         --role=roles/gkehub.admin

    Weitere Informationen zum Zuweisen von IAM-Rollen finden Sie unter Zugriff auf Ressourcen erteilen, ändern und entziehen. Eine Beschreibung dieser Rollen finden Sie unter Erforderliche Berechtigungen für die Installation von Anthos Service Mesh.

  6. Aktivieren Sie folgende APIs:
    gcloud services enable \
        container.googleapis.com \
        compute.googleapis.com \
        monitoring.googleapis.com \
        logging.googleapis.com \
        cloudtrace.googleapis.com \
        meshca.googleapis.com \
        meshtelemetry.googleapis.com \
        meshconfig.googleapis.com \
        iamcredentials.googleapis.com \
        anthos.googleapis.com \
        gkeconnect.googleapis.com \
        gkehub.googleapis.com \
        cloudresourcemanager.googleapis.com

    Die Aktivierung der APIs kann einige Minuten dauern. Wenn die APIs aktiviert sind, sieht die Ausgabe in etwa so aus:

    Operation "operations/acf.601db672-88e6-4f98-8ceb-aa3b5725533c" finished
    successfully.
    

Vorhandenen GKE-Cluster einrichten

In diesem Abschnitt wird beschrieben, wie Sie einen vorhandenen GKE-Cluster mit den für Anthos Service Mesh erforderlichen Optionen einrichten. Weitere Informationen finden Sie in der GKE-Dokumentation.

  1. Erstellen Sie die folgenden Umgebungsvariablen:

    • Legen Sie den Clusternamen fest.

      export CLUSTER_NAME=YOUR_CLUSTER_NAME

    • Legen Sie für CLUSTER_LOCATION entweder Ihre Clusterzone oder Clusterregion fest.

      export CLUSTER_LOCATION=YOUR_ZONE_OR_REGION

    • Legen Sie den Arbeitslastpool fest:

      export WORKLOAD_POOL=${PROJECT_ID}.svc.id.goog

    • Legen Sie die Mesh-ID fest.

      export MESH_ID="proj-${PROJECT_NUMBER}"

  2. Legen Sie die Standardzone oder -region für Google Cloud-CLI fest.

    • Wenn Sie einen Cluster mit einer einzelnen Zone haben, legen Sie die Standardzone fest:

      gcloud config set compute/zone ${CLUSTER_LOCATION}
    • Wenn Sie einen regionalen Cluster haben, legen Sie die Standardregion fest:

      gcloud config set compute/region ${CLUSTER_LOCATION}

    Tipp: Um die Einrichtung Ihrer Shell-Umgebung in Zukunft zu erleichtern, können Sie die export-Anweisungen für jede Umgebungsvariable kopieren und in ein einfaches Shell-Skript einfügen, das Sie beim Start einer neuen Shell beziehen (source). Außerdem können Sie die gcloud-Befehle hinzufügen, die Standardwerte zum Skript festlegen. Sie können auch gcloud init verwenden, um eine benannte gcloud-Konfiguration zu erstellen und zu aktivieren.

  3. Legen Sie das Label mesh_id im Cluster fest. Dies ist erforderlich, damit Messwerte im Anthos Service Mesh-Dashboard in der Google Cloud Console angezeigt werden. Wenn Sie die vorhandenen Labels des Clusters übernehmen möchten, müssen Sie diese Labels beim Hinzufügen des Labels mesh_id angeben.

    1. So prüfen Sie, ob Ihr Cluster vorhandene Labels hat:

      gcloud container clusters describe ${CLUSTER_NAME}

      Suchen Sie in der Ausgabe nach dem Feld resourceLabels. Jedes Label wird in einer separaten Zeile unter dem Feld resourceLabels gespeichert. Beispiel:

      resourceLabels:
        csm: ''
        env: dev
        release: stable

      Wenn das Label csm in der Ausgabe enthalten ist, müssen Sie es nicht beibehalten. Das Label mesh_id ersetzt das Label csm.

      Zur Vereinfachung können Sie die Labels einer Umgebungsvariablen hinzufügen. Ersetzen Sie im Folgenden YOUR_EXISTING_LABELS durch eine durch Kommas getrennte Liste der vorhandenen Labels im Cluster im Format KEY=VALUE. Beispiel: env=dev,release=stable

      export EXISTING_LABELS="YOUR_EXISTING_LABELS"
    2. Legen Sie das Label mesh_id fest:

      • Wenn Ihr Cluster bereits vorhandene Labels hat, die Sie beibehalten möchten, aktualisieren Sie den Cluster mit der mesh_id und den vorhandenen Labels:

        gcloud container clusters update ${CLUSTER_NAME} \
          --update-labels=mesh_id=${MESH_ID},${EXISTING_LABELS}
      • Wenn der Cluster keine vorhandenen Labels hat, aktualisieren Sie den Cluster nur mit dem Label mesh_id:

        gcloud container clusters update ${CLUSTER_NAME} \
          --update-labels=mesh_id=${MESH_ID}
  4. Aktivieren Sie Workload Identity:

    gcloud container clusters update ${CLUSTER_NAME} \
       --workload-pool=${WORKLOAD_POOL}
  5. Aktivieren Sie Cloud Monitoring und Cloud Logging in GKE:

    gcloud container clusters update ${CLUSTER_NAME} \
       --enable-stackdriver-kubernetes
  6. Wenn der Cluster eine statische Version von GKE verwendet, registrieren Sie den Cluster in einer Release-Version.

Anmeldedaten und Berechtigungen festlegen

Bevor Sie fortfahren, prüfen Sie, ob alle erforderlichen APIs aktiviert sind. Wenn Sie sich nicht sicher sind, führen Sie den Befehl gcloud services enable noch einmal aus.

  1. Initialisieren Sie Ihr Projekt, um es für die Installation vorzubereiten. Mit diesem Befehl wird unter anderem ein Dienstkonto erstellt, mit dem Istio-Komponenten wie der Sidecar-Proxy sicher auf die Daten und Ressourcen Ihres Projekts zugreifen können:
    curl --request POST \
      --header "Authorization: Bearer $(gcloud auth print-access-token)" \
      --data '' \
      https://meshconfig.googleapis.com/v1alpha1/projects/${PROJECT_ID}:initialize

    Der Befehl gibt ein Paar leere geschweifte Klammern zurück: {}

    Wenn Sie in Zukunft eine neue Version von Anthos Service Mesh auf diesem Cluster installieren, müssen Sie den Befehl nicht noch einmal ausführen. Die erneute Ausführung des Befehls hat jedoch keine Auswirkungen auf Ihre Installation.

  2. Rufen Sie die Anmeldedaten für die Authentifizierung ab, um mit dem Cluster zu interagieren:
    gcloud container clusters get-credentials ${CLUSTER_NAME}
  3. Gewähren Sie dem aktuellen Nutzer Cluster-Administratorberechtigungen. Sie benötigen diese Berechtigungen, um die erforderlichen Regeln für die rollenbasierte Zugriffssteuerung (Role Based Access Control, RBAC) für Anthos Service Mesh zu erstellen:
    kubectl create clusterrolebinding cluster-admin-binding \
      --clusterrole=cluster-admin \
      --user="$(gcloud config get-value core/account)"

    Wenn der Fehler "cluster-admin-binding" already exists angezeigt wird, können Sie ihn ignorieren und mit der vorhandenen Cluster-Administratorbindung fortfahren.

Cluster registrieren

Sie müssen den Cluster in der Flotte des Projekts registrieren, um Zugriff auf die einheitliche Benutzeroberfläche in der Google Cloud Console zu erhalten. Eine Flotte ermöglicht die einheitliche Anzeige und Verwaltung der Cluster und ihrer Arbeitslasten, einschließlich Clustern außerhalb von Google Cloud.

Google Cloud-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}
  3. Listen Sie alle Dienstkonten eines Projekts auf, um zu prüfen, ob das Dienstkonto erstellt wurde:

    gcloud iam service-accounts list
  4. Weisen Sie dem Dienstkonto die IAM-Rolle „gkehub.connect“ zu:

    gcloud projects add-iam-policy-binding ${PROJECT_ID} \
       --member="serviceAccount:${SERVICE_ACCOUNT_NAME}@${PROJECT_ID}.iam.gserviceaccount.com" \
       --role="roles/gkehub.connect"
  5. 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}-${PROJECT_ID}.json.

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

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

Cluster registrieren

Ersetzen Sie im folgenden Befehl MEMBERSHIP_NAME durch einen Namen, der sich eindeutig auf den im Hub registrierten Cluster bezieht.

gcloud container hub memberships register MEMBERSHIP_NAME \
    --gke-cluster=${CLUSTER_LOCATION}/${CLUSTER_NAME} \
    --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.

Weitere Informationen zur Clusterregistrierung finden Sie unter Cluster registrieren in der Connect-Dokumentation.

Installationsdatei herunterladen

Bevor Sie fortfahren, prüfen Sie, ob das ASM Mesh Data Plane-Dienstkonto Mitglied des Projekts ist:

gcloud projects get-iam-policy ${PROJECT_ID} | grep -B 1 'roles/meshdataplane.serviceAgent'

Wenn mit dem vorherigen Befehl nichts ausgegeben wird, kehren Sie zum Abschnitt Anmeldedaten und Berechtigungen festlegen zurück und führen Sie den Befehl curl aus.

    Linux

  1. Laden Sie die Anthos Service Mesh-Installationsdatei in Ihr aktuelles Arbeitsverzeichnis herunter:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.5.10-asm.2-linux.tar.gz
  2. Laden Sie die Signaturdatei herunter und bestätigen Sie die Signatur mit openssl:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.5.10-asm.2-linux.tar.gz.1.sig
    openssl dgst -verify - -signature istio-1.5.10-asm.2-linux.tar.gz.1.sig istio-1.5.10-asm.2-linux.tar.gz <<'EOF'
    -----BEGIN PUBLIC KEY-----
    MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ
    wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw==
    -----END PUBLIC KEY-----
    EOF

    Die erwartete Ausgabe ist Verified OK.

  3. Entpacken Sie die Inhalte der Datei in einem Verzeichnis Ihres Dateisystems. So extrahieren Sie beispielsweise den Inhalt in das aktuelle Arbeitsverzeichnis:
    tar xzf istio-1.5.10-asm.2-linux.tar.gz

    Mit dem Befehl wird in Ihrem aktuellen Arbeitsverzeichnis istio-1.5.10-asm.2 ein Installationsverzeichnis erstellt, das Folgendes enthält:

    • Beispielanwendungen in samples
    • Die folgenden Tools im Verzeichnis bin:
      • istioctl: Sie verwenden istioctl, um Anthos Service Mesh zu installieren.
      • asmctl: Sie verwenden asmctl, um Ihre Sicherheitskonfiguration nach der Installation von Anthos Service Mesh zu validieren. (Derzeit wird asmctl in GKE on VMware nicht unterstützt.)

  4. macOS

  5. Laden Sie die Anthos Service Mesh-Installationsdatei in Ihr aktuelles Arbeitsverzeichnis herunter:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.5.10-asm.2-osx.tar.gz
  6. Laden Sie die Signaturdatei herunter und bestätigen Sie die Signatur mit openssl:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.5.10-asm.2-osx.tar.gz.1.sig
    openssl dgst -sha256 -verify /dev/stdin -signature istio-1.5.10-asm.2-osx.tar.gz.1.sig istio-1.5.10-asm.2-osx.tar.gz <<'EOF'
    -----BEGIN PUBLIC KEY-----
    MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ
    wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw==
    -----END PUBLIC KEY-----
    EOF

    Die erwartete Ausgabe ist Verified OK.

  7. Entpacken Sie die Inhalte der Datei in einem Verzeichnis Ihres Dateisystems. So extrahieren Sie beispielsweise den Inhalt in das aktuelle Arbeitsverzeichnis:
    tar xzf istio-1.5.10-asm.2-osx.tar.gz

    Mit dem Befehl wird in Ihrem aktuellen Arbeitsverzeichnis istio-1.5.10-asm.2 ein Installationsverzeichnis erstellt, das Folgendes enthält:

    • Beispielanwendungen in samples
    • Die folgenden Tools im Verzeichnis bin:
      • istioctl: Sie verwenden istioctl, um Anthos Service Mesh zu installieren.
      • asmctl: Sie verwenden asmctl, um Ihre Sicherheitskonfiguration nach der Installation von Anthos Service Mesh zu validieren. (Derzeit wird asmctl in GKE on VMware nicht unterstützt.)

  8. Windows

  9. Laden Sie die Anthos Service Mesh-Installationsdatei in Ihr aktuelles Arbeitsverzeichnis herunter:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.5.10-asm.2-win.zip
  10. Laden Sie die Signaturdatei herunter und bestätigen Sie die Signatur mit openssl:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.5.10-asm.2-win.zip.1.sig
    openssl dgst -verify - -signature istio-1.5.10-asm.2-win.zip.1.sig istio-1.5.10-asm.2-win.zip <<'EOF'
    -----BEGIN PUBLIC KEY-----
    MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ
    wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw==
    -----END PUBLIC KEY-----
    EOF

    Die erwartete Ausgabe ist Verified OK.

  11. Entpacken Sie die Inhalte der Datei in einem Verzeichnis Ihres Dateisystems. So extrahieren Sie beispielsweise den Inhalt in das aktuelle Arbeitsverzeichnis:
    tar xzf istio-1.5.10-asm.2-win.zip

    Mit dem Befehl wird in Ihrem aktuellen Arbeitsverzeichnis istio-1.5.10-asm.2 ein Installationsverzeichnis erstellt, das Folgendes enthält:

    • Beispielanwendungen in samples
    • Die folgenden Tools im Verzeichnis bin:
      • istioctl: Sie verwenden istioctl, um Anthos Service Mesh zu installieren.
      • asmctl: Sie verwenden asmctl, um Ihre Sicherheitskonfiguration nach der Installation von Anthos Service Mesh zu validieren. (Derzeit wird asmctl in GKE on VMware nicht unterstützt.)

  12. Prüfen Sie, ob Sie sich im Stammverzeichnis der Anthos Service Mesh-Installation befinden.
    cd istio-1.5.10-asm.2
  13. Fügen Sie die Tools der Einfachheit halber im Verzeichnis /bin Ihrem PATH hinzu.
    export PATH=$PWD/bin:$PATH

Ressourcenkonfigurationsdateien vorbereiten

Wenn Sie den istioctl apply command ausführen, um Anthos Service Mesh zu installieren, geben Sie -f istio-operator.yaml in der Befehlszeile an. Diese Datei enthält Informationen zu Ihrem Projekt und Cluster, die zum Aktivieren der Mesh-Telemetrie- und Mesh-Sicherheitsfunktionen erforderlich sind. Laden Sie die Datei istio-operator.yaml und andere Ressourcenkonfigurationsdateien herunter und legen Sie die Projekt- und Clusterinformationen fest.

So bereiten Sie die Ressourcenkonfigurationsdateien vor:

  1. Installieren Sie kpt, falls noch nicht geschehen:

    gcloud components install kpt
    
  2. Erstellen Sie optional ein neues Verzeichnis für die Ressourcenkonfigurationsdateien des Anthos Service Mesh-Pakets. Wenn Sie mehrere Cluster einrichten möchten, ist es möglicherweise sinnvoll, den Clusternamen als Verzeichnisnamen zu verwenden.

  3. Wechseln Sie zu dem Verzeichnis, in das Sie das Anthos Service Mesh-Paket herunterladen möchten.

  4. Laden Sie das Anthos Service Mesh-Paket in das aktuelle Arbeitsverzeichnis herunter:

    kpt pkg get \
    https://github.com/GoogleCloudPlatform/anthos-service-mesh-packages.git/asm@release-1.5-asm .
    

  5. Legen Sie den Clusternamen fest:

      kpt cfg set asm gcloud.container.cluster ${CLUSTER_NAME}

  6. Optional können Sie die Ressourcenkonfigurationsdateien mithilfe der kpt-Setter anpassen. Diese Setter verwenden standardmäßig die Standardwerte für gcloud config. Wenn Sie die Standardwerte für gcloud config festlegen oder die Werte ändern möchten, führen Sie die folgenden Setter aus:

    • Legen Sie die Projekt-ID fest:

      kpt cfg set asm gcloud.core.project ${PROJECT_ID}
    • Legen Sie die Standardzone oder -region fest:

      kpt cfg set asm gcloud.compute.location ${CLUSTER_LOCATION}
  7. Optional können Sie die Ressourcenkonfigurationsdateien in Ihr eigenes Versionsverwaltungssystem wie Cloud Source Repositories einchecken, damit Sie Änderungen an den Dateien verfolgen können.

Anthos Service Mesh installieren

In diesem Abschnitt wird beschrieben, wie Sie Anthos Service Mesh installieren und aktivieren:

  • Die auf der Seite Unterstützte Features aufgeführten unterstützten Standardfeatures
  • Anthos Service Mesh-Zertifizierungsstelle (Mesh CA)
  • Die Telemetrie-Datenpipeline, die die Anthos Service Mesh-Dashboards in der Google Cloud Console unterstützt

Informationen zum Aktivieren der unterstützten optionalen Features finden Sie unter Optionale Features aktivieren.

So installieren Sie Anthos Service Mesh:

Wählen Sie einen der folgenden Befehle aus, um Anthos Service Mesh im mTLS-Authentifizierungsmodus (mutual TLS, gegenseitiges TLS) PERMISSIVE oder im mTLS-Modus STRICT zu konfigurieren.

PERMISSIVE-mTLS

istioctl manifest apply --set profile=asm \
  -f asm/cluster/istio-operator.yaml

STRICT-mTLS

istioctl manifest apply --set profile=asm \
  -f asm/cluster/istio-operator.yaml \
  --set values.global.mtls.enabled=true

Komponenten der Steuerungsebene prüfen

Prüfen Sie, ob die Pods der Steuerungsebene in istio-system aktiv sind:

kubectl get pod -n istio-system

Die erwartete Ausgabe sieht in etwa so aus:

NAME                                      READY   STATUS      RESTARTS   AGE
istio-ingressgateway-74cc894bfd-786rg     1/1     Running     0          7m19s
istiod-78cdbbbdb-d7tps                    1/1     Running     0          7m36s
promsd-576b8db4d6-lqf64                   2/2     Running     1          7m19s

Installation prüfen

Wir empfehlen die Verwendung des Analysetools asmctl, um die grundlegende Konfiguration Ihres Projekts, Ihres Clusters und Ihrer Arbeitslasten zu prüfen. Wenn ein asmctl-Test fehlschlägt, empfiehlt asmctl Lösungen, sofern möglich. Mit dem Befehl asmctl validate werden einfache Tests durchgeführt, mit denen Folgendes geprüft wird:

  1. Die von Anthos Service Mesh benötigten APIs sind für das Projekt aktiviert.
  2. Das Istio-Ingress-Gateway ist ordnungsgemäß für den Aufruf von Mesh CA konfiguriert.
  3. Der allgemeine Zustand von Istiod und Istio-Ingressgateway.

Wenn Sie den Befehl asmctl validate mit dem optionalen Flag --with-testing-workloads zusätzlich zu den grundlegenden Tests ausführen, führt asmctl die Sicherheitstests aus, die Folgendes prüfen:

  1. Die gegenseitige TLS-Kommunikation (mTLS) ist richtig konfiguriert.
  2. Die Mesh CA kann Zertifikate ausstellen.

Zum Ausführen der Sicherheitstests stellt asmctl Arbeitslasten in Ihrem Cluster in einem Test-Namespace bereit, führt die mTLS-Kommunikationstests aus, gibt die Ergebnisse aus und löscht den Test-Namespace.

So führen Sie asmctl aus:

  1. Achten Sie darauf, dass gcloud-Standardanmeldedaten für Anwendungen festgelegt ist:

     gcloud auth application-default login
    
  2. Rufen Sie, falls noch nicht geschehen, Authentifizierungsdaten für die Interaktion mit dem Cluster ab:

     gcloud container clusters get-credentials ${CLUSTER_NAME}
    
  3. So führen Sie sowohl die grundlegenden als auch die Sicherheitstests durch (sofern die istio-1.5.10-asm.2/bin) im PATH enthalten ist):

    asmctl validate --with-testing-workloads
    

    Bei Erfolg meldet der Befehl eine Ausgabe, die in etwa so aussieht:

    [asmctl version 0.3.0]
    Using Kubernetes context: example-project_us-central1-example-cluster
    To change the context, use the --context flag
    Validating enabled APIs
    OK
    Validating ingressgateway configuration
    OK
    Validating istio system
    OK
    Validating sample traffic
    Launching example services...
    Sent traffic to example service http code: 200
    verified mTLS configuration
    OK
    Validating issued certs
    OK
    

Sidecar-Proxys einfügen

Anthos Service Mesh verwendet Sidecar-Proxys, um die Sicherheit, Zuverlässigkeit und Beobachtbarkeit von Netzwerken zu verbessern. Mit Anthos Service Mesh werden diese Funktionen vom primären Container der Anwendung abstrahiert und in einem gemeinsamen Out-of-Process-Proxy implementiert, der als separater Container im selben Pod bereitgestellt wird.

Alle Arbeitslasten, die vor der Installation von Anthos Service Mesh auf Ihrem Cluster ausgeführt wurden, müssen den Sidecar-Proxy enthalten oder aktualisiert haben, damit sie die aktuelle Anthos Service Mesh-Version haben. Bevor Sie neue Arbeitslasten bereitstellen, muss die Sidecar-Proxy-Einfügung konfiguriert werden, um den Traffic mit Anthos Service Mesh überwachen und schützen zu können.

Sie können das automatische Einfügen der Sidecar-Datei mit einem Befehl aktivieren. Beispiel:

kubectl label namespace NAMESPACE istio-injection=enabled --overwrite

Dabei ist NAMESPACE der Name des Namespace für die Dienste der Anwendung oder default, wenn Sie nicht explizit einen Namespace erstellt haben.

Weitere Informationen finden Sie unter Sidecar-Proxys einfügen.

Anthos Service Mesh-Dashboards aufrufen

Nachdem Sie Arbeitslasten mit den eingefügten Sidecar-Proxys auf Ihrem Cluster bereitgestellt haben, können Sie die Anthos Service Mesh-Seiten in der Google Cloud Console entdecken, um alle Beobachtbarkeitsfunktionen von Anthos Service Mesh zu sehen. Nach der Bereitstellung von Arbeitslasten dauert es etwa ein oder zwei Minuten, bis Telemetriedaten in der Google Cloud Console angezeigt werden.

In der Cloud Console wird der Zugriff auf Anthos Service Mesh durch die Identitäts- und Zugriffsverwaltung (Identity and Access Management, IAM) gesteuert. Für den Zugriff auf Anthos Service Mesh-Seiten muss ein Projektinhaber den Nutzern die Rolle „Projektbearbeiter“ oder „Betrachter“ oder die unter Zugriff auf Anthos Service Mesh in der Google Cloud Console steuern beschriebenen restriktiveren Rollen gewähren.

  1. Wechseln Sie in der Google Cloud Console zu Anthos Service Mesh.

    Zu Anthos Service Mesh

  2. Wählen Sie das Google Cloud-Projekt aus der Drop-down-Liste in der Menüleiste aus.

  3. Wenn Sie mehr als ein Service Mesh haben, wählen Sie das Mesh aus der Drop-down-Liste Service Mesh aus.

Weitere Informationen finden Sie unter Mit Anthos Service Mesh in der Google Cloud Console vertraut machen.

Zusätzlich zu den Anthos Service Mesh-Seiten werden Messwerte, die sich auf Ihre Dienste beziehen (z. B. die Anzahl der Anfragen, die von einem bestimmten Dienst empfangen wurden), an Cloud Monitoring gesendet, wo sie im Metrics Explorer angezeigt werden.

So rufen Sie Messwerte auf:

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

    Zu Monitoring

  2. Wählen Sie Ressourcen > Metrics Explorer.

Eine vollständige Liste der Messwerte finden Sie unter Istio-Messwerte in der Cloud Monitoring-Dokumentation.

Nächste Schritte