Anthos Service Mesh in GKE installieren

Auf dieser Seite wird erläutert, wie Sie die saubere Installation der Anthos Service Mesh-Version 1.6.14 auf einem GKE-Cluster installieren. Lesen Sie Upgrade von Anthos Service Mesh auf GKE ausführen, wenn Sie eine frühere Version von Anthos Service Mesh installiert haben.

Hinweise

Bevor Sie Anthos Service Mesh installieren, müssen folgende Voraussetzungen erfüllt sein:

Anmeldedaten und Berechtigungen festlegen

  1. Initialisieren Sie Ihr Projekt, um es für die Installation vorzubereiten. Mit diesem Befehl wird unter anderem ein Dienstkonto erstellt, mit dem Komponenten der Steuerungsebene, wie der Sidecar-Proxy, sicher auf die Daten und Ressourcen Ihres Projekts zugreifen kann:

    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: {}

  2. Rufen Sie die Anmeldedaten für die Authentifizierung ab, um mit dem Cluster zu interagieren:

    gcloud container clusters get-credentials ${CLUSTER_NAME} \
        --project=${PROJECT_ID}
    
  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.

Installationsdatei herunterladen

    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.6.14-asm.2-linux-amd64.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.6.14-asm.2-linux-amd64.tar.gz.1.sig
    openssl dgst -verify /dev/stdin -signature istio-1.6.14-asm.2-linux-amd64.tar.gz.1.sig istio-1.6.14-asm.2-linux-amd64.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.6.14-asm.2-linux-amd64.tar.gz

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

    • Beispielanwendungen im Verzeichnis samples.
    • Das istioctl-Befehlszeilentool, das Sie zum Installieren von Anthos Service Mesh verwenden, befindet sich im Verzeichnis bin.
    • Die Anthos Service Mesh-Konfigurationsprofile befinden sich im Verzeichnis manifests/profiles.

  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.6.14-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.6.14-asm.2-osx.tar.gz.1.sig
    openssl dgst -sha256 -verify /dev/stdin -signature istio-1.6.14-asm.2-osx.tar.gz.1.sig istio-1.6.14-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.6.14-asm.2-osx.tar.gz

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

    • Beispielanwendungen im Verzeichnis samples.
    • Das istioctl-Befehlszeilentool, das Sie zum Installieren von Anthos Service Mesh verwenden, befindet sich im Verzeichnis bin.
    • Die Anthos Service Mesh-Konfigurationsprofile befinden sich im Verzeichnis manifests/profiles.

  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.6.14-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.6.14-asm.2-win.zip.1.sig
    openssl dgst -verify - -signature istio-1.6.14-asm.2-win.zip.1.sig istio-1.6.14-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.6.14-asm.2-win.zip

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

    • Beispielanwendungen im Verzeichnis samples.
    • Das istioctl-Befehlszeilentool, das Sie zum Installieren von Anthos Service Mesh verwenden, befindet sich im Verzeichnis bin.
    • Die Anthos Service Mesh-Konfigurationsprofile befinden sich im Verzeichnis manifests/profiles.

  12. Prüfen Sie, ob Sie sich im Stammverzeichnis der Anthos Service Mesh-Installation befinden.
    cd istio-1.6.14-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 Befehl istioctl install ausführen, geben Sie -f istio-operator.yaml in der Befehlszeile an. Diese Datei enthält Informationen zu Ihrem Projekt und Cluster, die Anthos Service Mesh erfordert. Sie müssen ein Paket mit istio-operator.yaml- und anderen Ressourcenkonfigurationsdateien herunterladen, um die Projekt- und Clusterinformationen festlegen zu können.

Wählen Sie zuerst ein Paket basierend auf der Zertifizierungsstelle (Certificate Authority, CA) aus, die Sie verwenden möchten:

  • asm: Dieses Paket aktiviert die Zertifizierungsstelle Mesh CA, die für neue Installationen empfohlen wird.

  • asm-citadel: Sie können Citadel als CA aktivieren. Weitere Informationen zur Auswahl dieses Pakets finden Sie unter Zertifizierungsstelle auswählen.

So bereiten Sie die Ressourcenkonfigurationsdateien vor:

  1. Erstellen Sie ein neues Verzeichnis für die Ressourcenkonfigurationsdateien des Anthos Service Mesh-Pakets. Es empfiehlt sich, den Clusternamen als Verzeichnisnamen zu verwenden.

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

  3. Laden Sie je nach CA das gewünschte Paket herunter.

    Mesh-Zertifizierungsstelle

    Laden Sie das Paket asm herunter, das die Mesh-Zertifizierungsstelle aktiviert:

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

    Citadel

    Laden Sie das Paket asm-citadel herunter, mit dem Citadel als CA aktiviert wird:

    kpt pkg get \
    https://github.com/GoogleCloudPlatform/anthos-service-mesh-packages.git/asm-citadel@release-1.6-asm asm
    
  4. Legen Sie die Projekt-ID für das Projekt fest, in dem der Cluster erstellt wurde:

    kpt cfg set asm gcloud.core.project ${PROJECT_ID}
    
  5. Legen Sie die Projektnummer für das Flotten-Hostprojekt fest:

    kpt cfg set asm gcloud.project.environProjectNumber ${FLEET_PROJECT_NUMBER}
    
  6. Legen Sie den Clusternamen fest:

    kpt cfg set asm gcloud.container.cluster ${CLUSTER_NAME}
    
  7. Legen Sie die Standardzone oder -region fest:

    kpt cfg set asm gcloud.compute.location ${CLUSTER_LOCATION}
    
  8. Legen Sie den Validierungs-Webhook so fest, dass er ein Überarbeitungslabel verwendet:

    kpt cfg set asm anthos.servicemesh.rev asm-1614-2
    

    Wenn Sie Anthos Service Mesh installieren, legen Sie ein Überarbeitungslabel auf istiod fest. Sie müssen für den Validierten Webhook dieselbe Überarbeitung festlegen.

  9. Legen Sie das Konfigurationsprofil fest, das Sie verwenden möchten:

    • Wenn sich alle Cluster im selben Projekt befinden, legen Sie das Profil asm-gcp fest:

      kpt cfg set asm anthos.servicemesh.profile asm-gcp
      
    • Wenn Ihr Service Mesh mehrere Cluster enthält, die in verschiedenen Projekten enthalten sind, legen Sie das Profil asm-gcp-multiproject fest (Beta):

      kpt cfg set asm anthos.servicemesh.profile asm-gcp-multiproject
      
  10. Wenn Sie das Profil asm-gcp-multiproject festgelegt und das Paket asm heruntergeladen haben, das die Mesh-Zertifizierungsstelle aktiviert, müssen Sie die vertrauenswürdigen Domain-Aliasse für die anderen Projekte konfigurieren, aus denen das Multi-Cluster-/Multi-Projekt-Mesh besteht. Andernfalls überspringen Sie diesen Schritt.

    1. Rufen Sie die Projekt-ID aller Cluster im Multi-Cluster-/Multi-Projekt-Mesh ab.

    2. Legen Sie für die Projekt-ID jedes Clusters die vertrauenswürdigen Domain-Aliase fest. Wenn Sie beispielsweise Cluster in drei Projekten haben, führen Sie den folgenden Befehl aus und ersetzen Sie PROJECT_ID_1, PROJECT_ID_2 und PROJECT_ID_3 durch die Projekt-ID jedes Clusters.

      kpt cfg set asm anthos.servicemesh.trustDomainAliases PROJECT_ID_1.svc.id.goog PROJECT_ID_2.svc.id.goog PROJECT_ID_3.svc.id.goog

      Wenn Sie die Cluster in den anderen Projekten konfigurieren, können Sie denselben Befehl verwenden.

      Mithilfe der vertrauenswürdigen Domain-Aliasse kann Mesh CA Arbeitslasten in Clustern in anderen Projekten authentifizieren. Zusätzlich zur Festlegung der vertrauenswürdigen Domain-Aliasse müssen Sie nach der Installation von Anthos Service Mesh das clusterübergreifende Load-Balancing aktivieren.

  11. Geben Sie die Werte der kpt-Setter aus:

      kpt cfg list-setters asm
    

    Überprüfen Sie in der Ausgabe des Befehls, ob die Werte für die folgenden Setter korrekt sind:

    • anthos.servicemesh.rev
    • gcloud.compute.location
    • gcloud.container.cluster
    • gcloud.core.project
    • gcloud.project.environProjectNumber

Anthos Service Mesh installieren

  1. Prüfen Sie, ob der aktuelle kubeconfig-Kontext auf den Cluster verweist, auf dem Sie Anthos Service Mesh installieren möchten:

      kubectl config current-context
    

    Die Ausgabe hat das folgende Format:

      gke_PROJECT_ID_CLUSTER_LOCATION_CLUSTER_NAME

    Der kubeconfig-Kontext und die Werte der kpt-Setter müssen übereinstimmen. Führen Sie bei Bedarf den Befehl gcloud container clusters get-credentials aus, um den aktuellen kubeconfig-Kontext festzulegen.

  2. Wenn Sie Citadel als Zertifizierungsstelle verwenden und eine benutzerdefinierte Zertifizierungsstelle verwenden möchten, führen Sie die folgenden Befehle aus. Fahren Sie andernfalls mit dem nächsten Schritt fort.

    kubectl create namespace istio-system
    kubectl create secret generic cacerts  \
      -n istio-system \
      --from-file=ca-cert.pem \
      --from-file=ca-key.pem \
      --from-file=root-cert.pem \
      --from-file=cert-chain.pem

    Weitere Informationen finden Sie unter Vorhandene CA-Zertifikate einbinden.

  3. Führen Sie den folgenden Befehl aus, um Anthos Service Mesh mit dem Konfigurationsprofil zu installieren, das Sie in der Datei istio-operator.yaml festgelegt haben. Wenn Sie ein unterstütztes optionales Feature aktivieren möchten, fügen Sie in der folgenden Befehlszeile -f und den YAML-Dateinamen ein. Weitere Informationen finden Sie unter Optionale Features aktivieren.

    istioctl install \
      -f asm/cluster/istio-operator.yaml \
      --set revision=asm-1614-2

    Mit dem Argument --set revision wird istiod ein Überarbeitungslabel im Format istio.io/rev=asm-1614-2 hinzugefügt. Das Überarbeitungslabel wird vom automatischen Sidecar-Injektor-Webhook verwendet, um eingefügte Sidecars mit einer bestimmten istiod-Überarbeitung zu verknüpfen. Wenn Sie die automatische Sidecar-Injektion für einen Namespace aktivieren möchten, müssen Sie sie mit einer Überarbeitung kennzeichnen, die mit dem Label auf istiod übereinstimmt.

  4. Konfigurieren Sie den Validierungs-Webhook so, dass er den Dienst istiod mit dem Überarbeitungslabel finden kann:

    kubectl apply -f asm/istiod-service.yaml

    Mit diesem Befehl wird ein Diensteintrag erstellt. Dies ermöglicht es dem Validierungs-Webhook, Konfigurationen automatisch zu prüfen, bevor sie angewendet werden.

  5. Wenn Sie das Profil asm-gcp verwendet haben, führen Sie den folgenden Befehl aus, um den kanonischen Dienstüberwacher bereitzustellen:

    kubectl apply -f asm/canonical-service/controller.yaml

    Der Befehl stellt den kanonischen Dienstüberwacher in Ihrem Cluster bereit. Der kanonische Dienstüberwacher gruppiert Arbeitslasten, die zum selben logischen Dienst gehören, und ist erforderlich, um zusätzliche Funktionen im Dashboard "Dienste" in der Cloud Console freizuschalten. Weitere Informationen finden Sie unter kanonischen Dienstüberwacher aktivieren und deaktivieren.

    Wenn Sie das Profil asm-gcp-multiproject verwendet haben, werden derzeit Telemetriedaten nicht in den Anthos Service Mesh-Dashboards in der Cloud Console angezeigt. Sie können sich aber für jedes Projekt Logs in Cloud Logging und Messwerte in Cloud Monitoring ansehen.

Automatisches gegenseitiges TLS (automTLS) ist standardmäßig aktiviert. Beim automatischen mTLS erkennt ein Client-Sidecar-Proxy automatisch, ob der Server eine Sidecar-Datei hat. Die Client-Sidecar-Datei sendet mTLS an Arbeitslasten mit Sidecar-Dateien und Nur-Text-Traffic an Arbeitslasten ohne Sidecar-Dateien.

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-cff9f5c7d-qg4ls   1/1     Running   0          7m5s
istio-ingressgateway-cff9f5c7d-vlkzb   1/1     Running   0          7m20s
istiod-66b587859c-886gx                1/1     Running   0          7m33s
istiod-66b587859c-dfs2j                1/1     Running   0          7m33s

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.

Bevor Sie Arbeitslasten bereitstellen, muss die Sidecar-Proxy-Einfügung konfiguriert werden, um den Traffic mit Anthos Service Mesh überwachen und schützen zu können.

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.

Wenn Sie Sidecar-Injektion aktivieren möchten, müssen Sie Ihre Namespaces mit derselben Überarbeitung kennzeichnen, die sie auf istiod festgelegt haben. Führen Sie den folgenden Befehl aus, um sich die Labels auf istiod anzeigen zu lassen:

kubectl -n istio-system get pods -l app=istiod --show-labels

Bestätigen Sie, dass sich das Überarbeitungslabel istio.io/rev=asm-1614-2 in der Ausgabe befindet. Mit diesem Label wird die automatische Einfügung aktiviert. Sie können die automatische Einfügung mit einem einzigen Befehl aktivieren. Beispiel:

kubectl label namespace NAMESPACE istio-injection-istio.io/rev=asm-1614-2 --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

Dieser Abschnitt ist nur relevant, wenn Sie Anthos Service Mesh mit dem Konfigurationsprofil asm-gcp installiert haben. Wenn Sie das Profil asm-gcp-multiproject verwendet haben, um Anthos Service Mesh zu installieren, sind Telemetriedaten in den Anthos Service Mesh-Dashboards in der Google Cloud Console nicht verfügbar.

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.

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.

Informationen zum Registrieren Ihres Clusters finden Sie unter Cluster bei der Flotte registrieren.

Nächste Schritte