Auf dieser Seite wird erläutert, wie Sie das Skript ausführen, um die Anthos Service Mesh-Version 1.11.8 in einem GKE-Cluster für ein Mesh-Netzwerk mit einem oder mehreren Clustern zu installieren, die sich im selben Google Cloud-Projekt befinden.
Informationen zu Installationen, bei denen sich die Cluster in verschiedenen Projekten befinden, finden Sie im GKE-Leitfaden für mehrere Projekte.
In dieser Anleitung erfahren Sie, wie Sie Anthos Service Mesh installieren oder dieselbe Version mit einer anderen Konfiguration neu installieren. Die Neuinstallation mit unterschiedlichen Konfigurationen, Upgrades und Migration von Istio erfordert jedoch zusätzliche Planung. Weitere Informationen finden Sie unter:
Hinweis
Bevor Sie mit der Installation beginnen, müssen Sie folgende Schritte ausgeführt haben:
- Sie haben die Anforderungen geprüft.
- Sie haben eine Zertifizierungsstelle (Certificate Authority, CA) ausgewählt.
- Sie haben Ihren Cluster registriert.
- Sie haben die erforderlichen Tools installiert.
- Sie haben das Skript heruntergeladen.
Für das Skript müssen entweder die erforderlichen Berechtigungen vorhanden sein oder Sie müssen das Flag --enable_all
oder --enable_gcp_iam_roles
hinzufügen, damit das Skript die Berechtigung für Sie aktivieren kann. Ebenso müssen Sie das Flag --enable_all
oder die detaillierteren Aktivierungsflags angeben, damit das Skript die erforderlichen APIs aktivieren und Ihren Cluster aktualisieren kann.
Anthos Service Mesh installieren
Legen Sie die Optionen fest und geben Sie die Flags für die Ausführung des Skripts an. Sie verwenden immer folgende Optionen:
--project_id
,--cluster_name
,--cluster_location
und--mode install
. Wenn Sie die Zertifizierungsstelle Istio CA (ehemals Citadel) als Zertifizierungsstelle verwenden möchten, müssen Sie die Option--ca
und einige andere Optionen angeben, wie unter Installation mit Istio-Zertifizierungsstelle beschrieben. Eine vollständige Beschreibung der Argumente des Skripts erhalten Sie unter Option und Flags.Damit die Einrichtung von Anthos Service Mesh abgeschlossen werden kann, müssen Sie die automatische Sidecar-Injektion aktivieren und die Arbeitslasten (noch einmal) bereitstellen.
Der folgende Abschnitt enthält typische Beispiele für das Ausführen des Skripts. In der Navigationsleiste auf der rechten Seite finden Sie eine Liste der Beispiele.
Beispiele
Dieser Abschnitt enthält Beispiele für die Ausführung des Skripts für eine Installation mit einigen zusätzlichen Argumenten, die für Sie hilfreich sein können. In der Navigationsleiste auf der rechten Seite finden Sie eine Liste der Beispiele.
Nur validieren
Das folgende Beispiel zeigt die Ausführung des Skripts mit der Option --only_validate
. Mit dieser Option nimmt das Skript keine Änderungen an Ihrem Projekt oder Cluster vor und installiert Anthos Service Mesh nicht. Wenn Sie --only_validate
angeben, schlägt das Skript fehl, wenn Sie eines der --enable_*
-Flags verwenden.
Das Skript prüft, ob Folgendes gegeben ist:
- Ihre Umgebung enthält die erforderlichen Tools.
- Sie haben die erforderliche Berechtigung für das angegebene Projekt.
- Der Cluster erfüllt die Mindestanforderungen.
- Für das Projekt sind alle erforderlichen Google APIs aktiviert.
Standardmäßig lädt das Skript die Installationsdatei herunter und extrahiert sie. Außerdem lädt es das GitHub-Konfigurationspaket asm
in ein temporäres Verzeichnis herunter. Vor dem Beenden gibt das Skript eine Nachricht mit dem Namen des temporären Verzeichnisses aus.
Mit der Option --output_dir DIR_PATH
können Sie ein Verzeichnis für die Downloads angeben. Die Option --output_dir
gibt Ihnen die Möglichkeit, bei Bedarf auf einfache Weise das istioctl
-Befehlszeilentool zu verwenden. Außerdem sind die Konfigurationsdateien zum Aktivieren optionaler Features im Verzeichnis asm/istio/options
enthalten.
Führen Sie den folgenden Befehl aus, um Ihre Konfiguration zu validieren und um die Installationsdatei sowie das Paket asm
in das Verzeichnis OUTPUT_DIR
herunterzuladen:
./install_asm \ --project_id PROJECT_ID \ --cluster_name CLUSTER_NAME \ --cluster_location CLUSTER_LOCATION \ --mode install \ --output_dir DIR_PATH \ --only_validate
Bei Erfolg gibt das Skript Folgendes aus:
./install_asm \ install_asm: Setting up necessary files... install_asm: Creating temp directory... install_asm: Generating a new kubeconfig... install_asm: Checking installation tool dependencies... install_asm: Downloading ASM.. % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 57.0M 100 57.0M 0 0 30.6M 0 0:00:01 0:00:01 --:--:-- 30.6M install_asm: Downloading ASM kpt package... fetching package /asm from https://github.com/GoogleCloudPlatform/anthos-service-mesh-packages to asm install_asm: Checking for project PROJECT_ID... install_asm: Confirming cluster information... install_asm: Confirming node pool requirements... install_asm: Fetching/writing GCP credentials to kubeconfig file... Fetching cluster endpoint and auth data. kubeconfig entry generated for cluster-1. install_asm: Checking Istio installations... install_asm: Checking required APIs... install_asm: Successfully validated all requirements to install ASM from this computer.
Wenn einer der Tests die Validierung nicht besteht, gibt das Skript eine Fehlermeldung aus. Wenn bei Ihrem Projekt beispielsweise nicht alle erforderlichen Google APIs aktiviert sind, wird der folgende Fehler angezeigt:
ERROR: One or more APIs are not enabled. Please enable them and retry, or run the script with the '--enable_gcp_apis' flag to allow the script to enable them on your behalf.
Wenn Sie eine Fehlermeldung erhalten, dass das Skript mit einem Aktivierungs-Flag ausgeführt werden muss, haben Sie die folgenden Optionen:
Fügen Sie das spezifische Flag aus der Fehlermeldung oder das Flag
--enable_all
hinzu, wenn Sie das Skript ausführen, um die eigentliche Installation vorzunehmen (d. h. ohne--only_validate
).Sie können Ihr Projekt und Ihren Cluster auch selbst aktualisieren, bevor Sie das Skript ausführen. Weitere Informationen dazu finden Sie unter Anthos Service Mesh in GKE zur Installation einrichten.
Beachten Sie, dass install_asm
keine Aktivierungs-Flags mit --only_validate
zulässt.
Installation mit Standardfunktionen
Mit dem folgenden Befehl wird das Skript für eine neue Installation mit Standardfeatures ausgeführt.
./install_asm \ --project_id PROJECT_ID \ --cluster_name CLUSTER_NAME \ --cluster_location CLUSTER_LOCATION \ --mode install \ --ca mesh_ca \ --output_dir DIR_PATH \ --enable_registration \ --enable_all
--ca mesh_ca
Obwohl Mesh CA die Standardzertifizierungsstelle für Neuinstallationen ist, ist--ca mesh_ca
zur besseren Übersichtlichkeit in der Befehlszeile enthalten. Wenn Sie--ca
nicht angeben, aktiviertinstall_asm
Mesh CA.--output_dir DIR_PATH
Fügen Sie diese Option hinzu, um ein Verzeichnis anzugeben, in das das Skript das Paketasm
und die Anthos Service Mesh-Installationsdatei herunterlädt, dieistioctl
, Beispiele und Manifeste enthält. Andernfalls lädt das Skript dasasm
-Paket und die Installationsdatei in ein temporäres Verzeichnis herunter.--enable_registration
: Mit diesem Flag kann das Skript den Cluster für das Projekt registrieren, in dem sich der Cluster befindet. Wenn Sie dieses Flag nicht hinzufügen, führen Sie die Schritte unter Cluster registrieren aus, um den Cluster manuell zu registrieren.--enable_all
Erlaubt dem Skript, die erforderlichen Google APIs zu aktivieren, Berechtigungen für das Identity and Access Management zu erteilen und die erforderlichen Aktualisierungen an Ihrem Cluster vorzunehmen. Dazu gehört die Aktivierung von GKE Workload Identity. Wenn Sie nicht möchten, dass sichinstall_asm
um diese Projekt- und Clusteranforderungen kümmert, finden Sie weitere Informationen unter Anthos Service Mesh in GKE zur Installation einrichten.
Installation mit Istio-Zertifizierungsstelle
In diesem Abschnitt wird Folgendes erläutert:
- Zertifikate und Schlüssel generieren, mit denen Anthos Service Mesh Ihre Arbeitslasten signiert
- Führen Sie das Skript für eine Installation aus und aktivieren Sie Istio CA als Zertifizierungsstelle.
Wir empfehlen, Istio CA nur dann zu verwenden, wenn Sie eine benutzerdefinierte Zertifizierungsstelle benötigen.
Für eine optimale Sicherheit empfehlen wir dringend, eine Offline-Stamm-CA zu behalten und die untergeordneten Zertifizierungsstellen einzusetzen, um für jeden Cluster CAs auszugeben. Weitere Informationen finden Sie unter CA-Zertifikate anschließen. In dieser Konfiguration verwenden alle Arbeitslasten im Service Mesh dieselbe Stamm-CA. Jede Anthos Service Mesh CA verwendet einen Zwischen-CA-Signierschlüssel und ein Zertifikat, das von der Stamm-CA signiert wird. Wenn es in einem Mesh mehrere CAs gibt, wird eine Hierarchie des Vertrauens zwischen den CAs eingerichtet. Sie können diese Schritte wiederholen, um Zertifikate und Schlüssel für eine beliebige Anzahl von Zertifizierungsstellen bereitzustellen.
Erstellen Sie ein Verzeichnis für die Zertifikate und Schlüssel:
mkdir -p certs && \ pushd certs
Generieren Sie ein Root-Zertifikat und einen Root-Schlüssel:
make -f ../tools/certs/Makefile.selfsigned.mk root-ca
Dadurch werden diese Dateien generiert:
- root-cert.pem: Root-Zertifikat
- root-key.pem: Root-Schlüssel
- root-ca.conf: Konfiguration für openssl, um das Root-Zertifikat zu generieren
- root-cert.csr: CSR für das Root-Zertifikat
Generieren Sie ein Zwischenzertifikat und einen Zwischenschlüssel:
make -f ../tools/certs/Makefile.selfsigned.mk cluster1-cacerts
Dadurch werden diese Dateien in einem Verzeichnis namens
cluster1
generiert:- ca-cert.pem: Zwischenzertifikate
- ca-key.pem: Zwischenschlüssel
- cert-chain.pem: Die von Istiod verwendete Zertifikatskette
- root-cert.pem: Root-Zertifikat
Wenn Sie diese Schritte mit einem Offline-Computer ausführen, kopieren Sie das generierte Verzeichnis auf den Computer, auf dem Sie das Skript ausführen.
Führen Sie das Skript aus und fügen Sie die Dateien hinzu, die Sie zuvor für die Zertifikate und den Schlüssel generiert haben.
./install_asm \ --project_id PROJECT_ID \ --cluster_name CLUSTER_NAME \ --cluster_location CLUSTER_LOCATION \ --mode install \ --ca citadel \ --ca_cert FILE_PATH \ --ca_key FILE_PATH \ --root_cert FILE_PATH \ --cert_chain FILE_PATH \ --output_dir DIR_PATH \ --enable_registration \ --enable_all
Installation mit einer Overlay-Datei
Eine Overlay-Datei ist eine YAML-Datei mit einer benutzerdefinierten IstioOperator
-Ressource, die Sie an install_asm
übergeben, um die Steuerungsebene zu konfigurieren. Sie können die Standardkonfiguration der Steuerungsebene überschreiben und eine optionale Funktion aktivieren, indem Sie die YAML-Datei an install_asm
übergeben. Sie können mehr Overlays übereinander legen. Jede Overlay-Datei überschreibt die Konfiguration auf den vorherigen Ebenen.
Wenn Sie mehr als eine Antwortvorlage in einer YAML-Datei angeben, teilt install_asm
die Datei in mehrere temporäre YAML-Dateien auf, eine für jede Antwortvorlage. Das Skript teilt die CRs in separate Dateien auf, weil istioctl install
nur die erste Antwortvorlage in einer YAML-Datei anwendet, die mehr als eine Antwortvorlage enthält.
Das folgende Beispiel führt ein Upgrade durch und fügt eine Overlay-Datei ein, um die Konfiguration der Steuerungsebene anzupassen. Mit dem folgenden Befehl ändern Sie OVERLAY_FILE
in den Namen der YAML-Datei.
./install_asm \ --project_id PROJECT_ID \ --cluster_name CLUSTER_NAME \ --cluster_location CLUSTER_LOCATION \ --mode install \ --ca mesh_ca \ --output_dir DIR_PATH \ --enable_registration \ --enable_all \ --custom_overlay OVERLAY_FILE
Installation mit einer Option
Im folgenden Beispiel wird eine Installation durchgeführt und die Datei egressgateways.yaml
aus dem Paket asm
eingebunden. Dies aktiviert ein Gateway für ausgehenden Traffic. Beachten Sie, dass die Erweiterung .yaml
nicht angegeben ist. Das Skript ruft die Datei für Sie ab, sodass Sie das Paket asm
nicht zuvor herunterladen müssen.
./install_asm \ --project_id PROJECT_ID \ --cluster_name CLUSTER_NAME \ --cluster_location CLUSTER_LOCATION \ --mode install \ --ca mesh_ca \ --output_dir DIR_PATH \ --enable_registration \ --enable_all \ --option egressgateways
Mit --option
können Sie ein optionales Feature aktivieren. Wenn Sie Änderungen an einer Datei im Verzeichnis asm/istio/options
des Pakets asm
vornehmen müssen, laden Sie das asm
-Paket herunter, führen die gewünschten Änderungen aus und binden die Datei mit --custom_overlay
ein.
So laden Sie das Paket asm
in das aktuelle Arbeitsverzeichnis herunter, damit Sie Änderungen an den Dateien vornehmen können:
kpt pkg get \
https://github.com/GoogleCloudPlatform/anthos-service-mesh-packages.git/asm@release-1.11 asm
Wenn Sie das Beispiel Nur validieren ausgeführt und die Option --output_dir
angegeben haben, befinden sich die Konfigurationsdateien im angegebenen Ausgabeverzeichnis unter asm/istio/options
.
Mesh-CA mit dem Flotten-Workload Identity-Pool aktivieren
Die Vorschau der Mesh-CA mit dem Flotten-Workload Identity-Pool ist auf neue Installationen von Anthos Service Mesh in GKE beschränkt. Während der Vorschau werden Upgrades und Migrationen nicht unterstützt.
In diesem Beispiel wird gezeigt, wie Sie Mesh-CA so aktivieren, dass der Flotten-Workload Identity-Pool verwendet wird. Mit Mesh-CA und dem Flotten-Workload Identity-Pool können Sie Cluster in separaten Google Cloud-Projekten mit einer einzigen vertrauenswürdigen Domain verknüpfen.
So aktivieren Mesh-CA mit dem Flotten-Workload Identity-Pool:
Wenn Sie Ihren Cluster noch nicht registriert haben, müssen Sie entweder das Flag --enable_registration
oder das Flag --enable_all
angeben, damit das Skript Ihren Cluster bei dem Projekt registriert werden kann, in dem sich der Cluster befindet.
./install_asm \
--project_id PROJECT_ID \
--cluster_name CLUSTER_NAME \
--cluster_location CLUSTER_LOCATION \
--mode install \
--enable_all \
--option hub-meshca
Dieser Befehl führt das Skript für eine Neuinstallation aus, konfiguriert Ihr Projekt und Ihren Cluster mit den für Anthos Service Mesh erforderlichen Optionen, registriert den Cluster für das Projekt, in dem sich der Cluster befindet, und konfiguriert Mesh-CA für die Verwendung des Flotten-Workload Identity-Pools.
Arbeitslasten bereitstellen und neu bereitstellen
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.
Die Installation ist erst abgeschlossen, wenn Sie die automatische Sidecar-Proxy-Einfügung (automatische Injektion) aktivieren und die Pods für alle Arbeitslasten neu starten, die auf dem Cluster ausgeführt wurden, bevor Sie Anthos Service Mesh installiert haben.
Wenn Sie die automatische Injektion aktivieren möchten, versehen Sie Ihre Namespaces mit dem Überarbeitungslabel, das bei der Installation von Anthos Service Mesh auf istiod
festgelegt wurde. Das Überarbeitungslabel wird vom Sidecar-Injektor-Webhook verwendet, um eingefügte Sidecars mit einer bestimmten istiod
-Überarbeitung zu verknüpfen. Nachdem Sie das Label hinzugefügt haben, müssen alle im Namespace vorhandenen Pods neu gestartet werden, damit Sidecars eingefügt werden können.
Bevor Sie neue Arbeitslasten in einem neuen Namespace bereitstellen, müssen Sie die automatische Injektion konfigurieren, damit Anthos Service Mesh den Traffic überwachen und sichern kann.
So aktivieren Sie die automatische Einfügung:
Verwenden Sie den folgenden Befehl, um das Überarbeitungslabel für
istiod
zu finden:kubectl -n istio-system get pods -l app=istiod --show-labels
Die Ausgabe sieht dann ungefähr so aus:
NAME READY STATUS RESTARTS AGE LABELS istiod-asm-1118-4-5788d57586-bljj4 1/1 Running 0 23h app=istiod,istio.io/rev=asm-1118-4,istio=istiod,pod-template-hash=5788d57586 istiod-asm-1118-4-5788d57586-vsklm 1/1 Running 1 23h app=istiod,istio.io/rev=asm-1118-4,istio=istiod,pod-template-hash=5788d57586
Notieren Sie sich den Wert des Überarbeitungslabels
istiod
aus der Ausgabe in der SpalteLABELS
, das auf das Präfixistio.io/rev=
folgt. In diesem Beispiel ist der Wertasm-1118-4
.Wenden Sie das Überarbeitungslabel an und entfernen Sie das Label
istio-injection
, falls vorhanden. Im folgenden Befehl istNAMESPACE
der Name des Namespace, in dem Sie die automatische Einfügung aktivieren möchten.REVISION
ist das Überarbeitungslabel, das Sie im vorherigen Schritt notiert haben.kubectl label namespace NAMESPACE istio-injection- istio.io/rev=REVISION --overwrite
Sie können die Nachricht
"istio-injection not found"
in der Ausgabe ignorieren. Das bedeutet, dass der Namespace bisher nicht das Labelistio-injection
hatte, was bei Neuinstallationen von Anthos Service Mesh oder neuen Bereitstellungen zu erwarten wäre. Da die automatische Einfügung fehlschlägt, wenn ein Namespace sowohl das Labelistio-injection
als auch das Überarbeitungslabel enthält, umfassen allekubectl label
-Befehle in der Anthos Service Mesh-Dokumentation das Entfernen des Labelsistio-injection
.Wenn vor der Installation von Anthos Service Mesh in Ihrem Cluster Arbeitslasten ausgeführt wurden, starten Sie die Pods neu, um eine erneute Injektion auszulösen.
Wie Sie Pods neu starten, hängt von der Anwendung und der Umgebung ab, in der sich der Cluster befindet. Beispielsweise können Sie in Ihrer Staging-Umgebung einfach alle Pods löschen, wodurch sie neu gestartet werden. Aber in Ihrer Produktionsumgebung haben Sie vielleicht einen Prozess, der ein Blau/Grün-Deployment implementiert, sodass Pods sicher neu gestartet werden können, um Traffic-Unterbrechungen zu vermeiden.
Sie können
kubectl
verwenden, um einen rollierenden Neustart durchzuführen:kubectl rollout restart deployment -n NAMESPACE
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.
Wechseln Sie in der Google Cloud Console zu Anthos Service Mesh.
Wählen Sie das Google Cloud-Projekt aus der Drop-down-Liste in der Menüleiste aus.
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:
Rufen Sie in der Google Cloud Console die Seite Monitoring auf:
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
- Beispielanwendung Online Boutique auf Anthos Service Mesh bereitstellen
- Multi-Cluster-Mesh einrichten