In dieser Anleitung wird erläutert, wie Sie die Anthos Service Mesh-Version 1.7.8 für ein Mesh-Netzwerk installieren, migrieren oder ein Upgrade machen, das einen oder mehrere GKE-Cluster im selben Projekt enthält. Sie verwenden ein von Google bereitgestelltes Skript, mit dem Ihr Projekt und Ihr Cluster konfiguriert werden und mit dem anschließend Anthos Service Mesh installiert wird.
Sie können diese Anleitung und das Skript für die folgenden Anwendungsfälle verwenden:
Neue Installationen von Anthos Service Mesh
Upgrade von Anthos Service Mesh 1.6 oder die Patchversion 1.7. Upgrades von früheren Versionen werden nicht unterstützt.
Migration vom Open-Source-Framework Istio 1.6 oder 1.7 zu Anthos Service Mesh. Die Migration von einer früheren Version von Istio wird nicht unterstützt.
Migration von der Version 1.6 des Add-ons „Istio on GKE“ zu Anthos Service Mesh. Bevor Sie zu Anthos Service Mesh migrieren können, müssen Sie ein Upgrade auf Istio 1.6 mit Operator vornehmen. Vollständige Migrationsschritte vom Add-on finden Sie in der Dokumentation zu Istio on GKE unter Zu Anthos Service Mesh migrieren.
Informationen zu einem Multi-Cluster-Mesh, bei dem sich die Cluster in verschiedenen Projekten befinden, finden Sie unter Multi-Cluster-/Multi-Projekt-Installation und -Migration für GKE.
Hinweise
In diesem Leitfaden wird davon ausgegangen, dass Sie bereits Folgendes haben:
- Ein Google Cloud-Projekt
- Ein Cloud-Rechnungskonto
- Einen GKE-Cluster, der die Anforderungen erfüllt.
Wenn Sie von Istio migrieren, lesen Sie den Abschnitt Migration von Istio vorbereiten.
Unterschiede zwischen Anthos und Anthos Service Mesh
GKE Enterprise-Abonnenten müssen die GKE Enterprise API aktivieren.
Auch wenn Sie kein GKE Enterprise-Abonnent sind, können Sie Anthos Service Mesh installieren. Bestimmte UI-Elemente und Features in der Google Cloud Console sind jedoch nur für GKE Enterprise-Abonnenten verfügbar. Informationen dazu, was für Abonnenten und Nicht-Abonnenten verfügbar ist, finden Sie unter Unterschiede zwischen GKE Enterprise und Anthos Service Mesh in der UI. Informationen zu den Anthos Service Mesh-Preisen für Nicht-Abonnenten finden Sie unter Preise.
Das Skript aktiviert alle anderen erforderlichen Google APIs für Sie.
Voraussetzungen
Ihr GKE-Cluster muss die folgenden Anforderungen erfüllen:
Ein Maschinentyp mit mindestens vier vCPUs, z. B.
e2-standard-4
. Wenn der Maschinentyp für Ihren Cluster nicht mindestens vier vCPUs hat, ändern Sie den Maschinentyp, wie unter Arbeitslasten zu anderen Maschinentypen migrieren beschrieben.Die Mindestanzahl an Knoten hängt vom Maschinentyp ab. Anthos Service Mesh erfordert mindestens acht vCPUs. Wenn der Maschinentyp vier vCPUs hat, muss der Cluster mindestens zwei Knoten haben. Wenn der Maschinentyp acht vCPUs umfasst, benötigt der Cluster nur einen Knoten. Informationen zum Hinzufügen von Knoten finden Sie unter Größe eines Clusters anpassen.
Das Skript aktiviert Workload Identity in Ihrem Cluster. Workload Identity ist die empfohlene Methode zum Aufrufen von Google APIs. Wenn Sie Workload Identity aktivieren, ändert sich die Art und Weise, wie Aufrufe Ihrer Arbeitslasten an Google APIs gesichert werden. Weitere Informationen hierzu finden Sie unter Einschränkungen bei Workload Identity.
Es wird empfohlen, den Cluster in einer Release-Version zu registrieren. Dies ist jedoch optional. Es wird empfohlen, sich für die Release-Version "Regular" zu registrieren, da andere Versionen möglicherweise auf einer GKE-Version basieren, die mit Anthos Service Mesh nicht unterstützt wird. 1.7.8. Weitere Informationen finden Sie unter Unterstützte Umgebungen. Folgen Sie der Anleitung unter Vorhandenen Cluster in einer Release-Version registrieren, wenn Sie eine statische GKE-Version haben.
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 in einem privaten Cluster installieren, müssen Sie Port 15017 in der Firewall öffnen, damit der Webhook mit automatischer Sidecar-Einfügung ordnungsgemäß funktioniert. Weitere Informationen finden Sie unter Port auf einem privaten Cluster öffnen.
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.
Bei Migrationen muss
istiod
im Namespaceistio-system
installiert werden, was in der Regel der Fall ist.
Einschränkungen
Mit einem Google Cloud-Projekt kann nur ein Mesh-Netzwerk verknüpft sein.
Zertifizierungsstelle auswählen
Bei Neuinstallationen und Migrationen haben Sie die Option, die Anthos Service Mesh-Zertifizierungsstelle (Mesh CA) oder Citadel (jetzt in istiod
eingebunden) als Zertifizierungsstelle für die Ausstellung gegenseitiger TLS-Zertifikate (mTLS-Zertifikate) zu verwenden.
Im Allgemeinen empfehlen wir, Mesh-CA zu verwenden, denn:
- Mesh CA ist ein zuverlässiger und skalierbarer Dienst, der für dynamisch skalierte Arbeitslasten in Google Cloud optimiert ist.
- Mit Mesh CA verwaltet Google die Sicherheit und Verfügbarkeit des CA-Back-Ends.
- Mesh CA ermöglicht es Ihnen, sich für alle Cluster auf eine einzige Root of Trust zu verlassen.
In einigen Fällen ist es jedoch ratsam, Citadel zu verwenden. Hier einige Beispiele:
- Mit einer benutzerdefinierten Zertifizierungsstelle.
Wenn Sie von Istio migrieren.
Wenn Sie Citadel auswählen, gibt es keine Ausfallzeiten, da der mTLS-Traffic während der Migration nicht unterbrochen wird. Wenn Sie Mesh-CA auswählen, müssen Sie die Ausfallzeit für die Migration planen, da sich der Root of Trust von Citadel zu Mesh CA ändert. Sie müssen alle Pods in allen Namespaces neu starten, um die Migration zum Mesh-CA Root of Trust abzuschließen. Während dieses Vorgangs können die alten Pods keine mTLS-Verbindungen zu den neuen Pods herstellen.
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
Eine Migration oder ein Upgrade vorbereiten
Wenn Sie von Istio migrieren, lesen Sie den Abschnitt Migration von Istio vorbereiten.
Wenn Sie die vorherige Installation angepasst haben, müssen Sie bei der Migration oder beim Upgrade auf Anthos Service Mesh dieselben Anpassungen vornehmen. Wenn Sie die Installation durch Anfügen des Flags --set values
angepasst haben, empfehlen wir, dass Sie diese Einstellungen einer IstioOperator
-Konfigurationsdatei hinzufügen. Sie geben die Konfigurationsdatei an, indem Sie beim Ausführen des Skripts --custom_overlay
mit der Konfigurationsdatei verwenden.
Erforderliche Tools installieren
Sie können das Skript in Cloud Shell oder auf Ihrem lokalen Computer ausführen, auf dem Linux ausgeführt wird.
So führen Sie das Skript lokal aus:
Die folgenden Tools müssen installiert sind:
- Die Google Cloud CLI
- Die Standard-Befehlszeilentools:
awk
,curl
,grep
,sed
,sha256sum
undtr
- git
- kubectl
- jq
Authentifizieren Sie sich über die gcloud CLI:
gcloud auth login
Aktualisieren Sie die Komponenten:
gcloud components update
Prüfen Sie, ob sich
git
in Ihrem Pfad befindet, damitkpt
es finden kann.
Das Skript ausführen
In diesem Abschnitt wird beschrieben, wie Sie das Skript herunterladen, die erforderlichen und optionalen Parameter festlegen und das Skript ausführen. Eine detaillierte Beschreibung der Funktionsweise des Skripts finden Sie unter Grundlegendes zum Skript.
Laden Sie die Version des Skripts herunter, mit der Anthos Service Mesh 1.7.8 in das aktuelle Arbeitsverzeichnis installiert wird:
curl https://storage.googleapis.com/csm-artifacts/asm/install_asm_1.7 > install_asm
Sie laden das Skript zwar von einem sicheren Cloud Source Repositories-Speicherort herunter, es ist aber auch auf GitHub im Repository anthos-service-mesh-packages verfügbar. Somit können Sie nachvollziehen, was das Skript tut, bevor Sie es herunterladen. Mit der Version des Skripts
install_asm
im Zweigrelease-1.7-asm
wird Anthos Service Mesh 1.7.8 installiert.Laden Sie das SHA-256 der Datei in das aktuelle Arbeitsverzeichnis herunter:
curl https://storage.googleapis.com/csm-artifacts/asm/install_asm_1.7.sha256 > install_asm.sha256
Prüfen Sie den Download, wenn beide Dateien im selben Verzeichnis sind:
sha256sum -c --ignore-missing install_asm.sha256
Wenn die Prüfung erfolgreich ist, gibt der Befehl Folgendes aus:
install_asm: OK
Aus Kompatibilitätsgründen enthält die Datei
install_asm.sha256
die Prüfsumme zweimal, damit jede Version des Skripts ininstall_asm
umbenannt werden kann. Wenn Sie die Fehlermeldung erhalten, dass--ignore-missing
nicht vorhanden ist, führen Sie den vorherigen Befehl ohne das Flag--ignore-missing
noch einmal aus.Machen Sie das Skript ausführbar:
chmod +x install_asm
Legen Sie die Optionen fest und geben Sie die Flags für die Ausführung des Skripts an. Sie fügen immer die folgenden Optionen hinzu:
project_id
,cluster_name
,cluster_location
undmode
. Je nachmode
müssen Sie möglicherweise die Optionca
einfügen.- Die Optionen
project_id
,cluster_name
undcluster_location
dienen zur Identifikation des Clusters, auf dem Anthos Service Mesh installiert werden soll. mode
ist entwederinstall
,migrate
oderupgrade
.ca
gibt die Zertifizierungsstelle entweder alsmesh_ca
odercitadel
an.
Der folgende Abschnitt enthält typische Beispiele für das Ausführen des Skripts. Eine vollständige Beschreibung der Argumente des Skripts erhalten Sie unter Option und Flags.
- Die Optionen
Damit die Einrichtung von Anthos Service Mesh abgeschlossen werden kann, müssen Sie die automatische Sidecar-Injektion aktivieren und die Arbeitslasten (noch einmal) bereitstellen.
Beispiele
Dieser Abschnitt enthält Beispiele zur Ausführung des Skripts in den einzelnen mode
und einige zusätzliche Argumente, die für Sie nützlich sein könnten. 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 Cluster vor und installiert Anthos Service Mesh nicht. 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 vorhandenes 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 re-run the script with the '--enable_apis' flag to allow the script to enable them on your behalf.
Installation
Mit dem folgenden Befehl wird das Skript für eine neue Installation ausgeführt, Mesh-CA (die Standardzertifizierungsstelle für neue Installationen; Sie benötigen in diesem Fall also nicht die Option ca
) wird aktiviert und das Skript kann die erforderlichen Google APIs aktivieren.
./install_asm \ --project_id PROJECT_ID \ --cluster_name CLUSTER_NAME \ --cluster_location CLUSTER_LOCATION \ --mode install \ --enable_apis
Installation mit Citadel als CA
In diesem Abschnitt wird Folgendes erläutert:
- Zertifikate und Schlüssel generieren, mit denen Anthos Service Mesh Ihre Arbeitslasten signiert
- Das Skript für eine Installation ausführen und Citadel als CA aktivieren.
Sie sollten Citadel nur als Zertifizierungsstelle 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 \ --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 \ --enable_apis \ --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 \ --enable_apis \ --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.7-asm 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
.
Migration von Istio
Wenn Sie von Istio mit Citade als Zertifizierungsstelle migrieren, können Sie nach der Migration zu Anthos Service Mesh weiterhin Citadel verwenden. Mit dem folgenden Befehl wird das Skript für eine Migration ausgeführt und Citadel als Zertifizierungsstelle aktiviert: Bei dieser Migration wird nur die Steuerungsebene bereitgestellt. Die Stammzertifizierungsstelle ändert sich nicht und wirkt sich nicht auf Ihre vorhandenen Arbeitslasten aus.
./install_asm \ -p PROJECT_ID \ -n CLUSTER_NAME \ -l CLUSTER_LOCATION \ -m migrate \ -c citadel \ --enable_apis
Migration 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 eine Migration durch und enthält eine Overlay-Datei, 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 migrate \ --ca citadel \ --enable_all \ --custom_overlay OVERLAY_FILE
Upgrade ausführen
Mit dem folgenden Befehl wird das Skript für das Upgrade ausgeführt. Sie können die Zertifizierungsstelle bei diesem Skript nicht in eine andere Zertifizierungsstelle ändern. Deshalb ist die Option ca
nicht erforderlich.
./install_asm \ -p PROJECT_ID \ -n CLUSTER_NAME \ -l CLUSTER_LOCATION \ -m upgrade \ --enable_apis
Upgrade mit einer Overlay-Datei ausführen
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 upgrade \ --enable_all \ --custom_overlay OVERLAY_FILE
Optionen und Flags
In diesem Abschnitt werden die verfügbaren Argumente für das Skript beschrieben.
Optionen
-p|--project_id CLUSTER_PROJECT_ID
- Die Projekt-ID, in der der Cluster erstellt wurde.
-n|--cluster_name CLUSTER_NAME
- Der Name des Clusters.
-l|--cluster_location CLUSTER_LOCATION
- Entweder die Zone (bei Einzelzonenclustern) oder die Region (bei regionalen Clustern), in der der Cluster erstellt wurde.
-m|--mode {install|migrate|upgrade}
- Geben Sie
install
ein, wenn Sie Anthos Service Mesh installieren. Geben Siemigrate
ein, wenn Sie von Istio migrieren. Geben Sieupgrade
ein, um eine vorhandene Anthos Service Mesh-Installation auf eine neue Version zu aktualisieren. -c|--ca {mesh_ca|citadel}
- Bei Installationen müssen Sie diese Option nicht auswählen, wenn Sie Mesh-CA verwenden möchten, da das Skript standardmäßig Mesh CA verwendet. Bei Upgrades muss diese Option nicht angegeben werden, da das Skript die Änderung der Zertifizierungsstelle nicht zulässt. Für Migrationen geben Sie
citadel
odermesh_ca
an. Wenn Sie Ausfallzeiten für die Migration einplanen können, empfehlen wir die Verwendung vonmesh_ca
. Weitere Informationen dazu, welche CA verwendet werden soll, finden Sie unter Zertifizierungsstelle auswählen. Weitere Optionen, die Sie bei der Verwendung von Citadel angeben müssen, finden Sie unter Optionen für ein benutzerdefiniertes Zertifikat für Citadel. --co|--custom_overlay YAML_FILE
- Der Name der YAML-Datei für die benutzerdefinierte Ressource
IstioOperator
, um eine Funktion zu aktivieren, die nicht standardmäßig aktiviert ist. Das Skript muss die YAML-Datei finden können, sodass sich die Datei im selben Verzeichnis wie das Skript befindet. Sie können aber auch einen relativen Pfad angeben. Wenn Sie mehrere Dateien hinzufügen möchten, geben Sie--co|--custom_overlay
und den Dateinamen ein. Beispiel:--co overlay_file1.yaml --co overlay_file2.yaml --co overlay_file3.yaml
-o|--option OPTION_FILE
- Der Name einer YAML-Datei aus dem Paket
anthos-service-mesh
, die die CRIstioOperator
enthält, um eine optionale Funktion zu aktivieren. Wenn Sie eine dieser Dateien einschließen, müssen Sie das Paketanthos-service-mesh
nicht zuerst herunterladen und die Erweiterung.yaml
nicht angeben. Wenn Sie eine der Dateien ändern müssen, laden Sie das Paketanthos-service-mesh
herunter, nehmen Sie die Änderungen vor und verwenden Sie die Option--custom_overlay
. Wenn Sie mehrere Dateien hinzufügen möchten, geben Sie-o|--option
und den Dateinamen ein. Beispiel:-o option_file1 -o option_file2 -o option_file3
-s|--service_account ACCOUNT
- Der Name eines Dienstkontos, das zum Installieren von Anthos Service Mesh verwendet wird. Wenn nicht angegeben, wird das aktive Nutzerkonto in der aktuellen
gcloud
-Konfiguration verwendet. Wenn Sie das aktive Nutzerkonto ändern müssen, führen Sie gcloud auth login aus. -k|--key_file FILE_PATH
- Die Schlüsseldatei für ein Dienstkonto. Lassen Sie diese Option weg, wenn Sie kein Dienstkonto verwenden.
-D|--output_dir DIR_PATH
- Wenn keine Angabe erfolgt, erstellt das Skript ein temporäres Verzeichnis, in das die Dateien und Konfigurationen für die Installation von Anthos Service Mesh heruntergeladen werden.
Mit dem Flag
--output-dir
geben Sie stattdessen ein vorhandenes Verzeichnis an. Nach Abschluss enthält das angegebene Verzeichnis die Unterverzeichnisseasm
undistio-1.7.8-asm.10
. Das Verzeichnisasm
enthält die Konfiguration für die Installation. Das Verzeichnisistio-1.7.8-asm.10
enthält den extrahierten Inhalt der Installationsdatei, dieistioctl
, Beispiele und Manifeste enthält.
Flags
-e|--enable_apis
- Lassen Sie zu, dass das Skript die von Anthos Service Mesh erforderlichen Google APIs aktiviert. Ohne dieses Flag wird das Skript beendet, wenn die erforderlichen APIs noch nicht aktiviert sind. Für eine Liste der vom Skript aktivierten APIs set_up_project.
-v|--verbose
- Befehle vor und nach der Ausführung drucken
--dry_run
- Befehle drucken, aber nicht ausführen
--only_validate
- Führen Sie eine Validierung aus, aber installieren Sie Anthos Service Mesh nicht.
--print_config
- Anstatt die Anthos Service Mesh zu installieren, drucken Sie die gesamte kompilierte YAML als Standardausgabe (stdout). Alle anderen Ausgaben werden in Standardfehler (stderr) geschrieben, auch wenn sie normalerweise an stdout gesendet würden. Das Skript überspringt alle Validierungen und die Einrichtung, wenn Sie dieses Flag angeben.
--disable_canonical_service
- Standardmäßig stellt das Skript den Canonical Service-Controller in Ihrem Cluster bereit. Wenn Sie nicht möchten, dass das Skript den Controller bereitstellt, geben Sie
--disable_canonical_service
an. Weitere Informationen finden Sie unter Canonical Service-Controller aktivieren und deaktivieren. -h|--help
- Eine Hilfemeldung mit den Optionen und Flags anzeigen und den Vorgang beenden.
--version
- Gibt die Version von
install_asm
aus und beendet den Vorgang. Wenn der Befehl keine Version ausgibt, laden Sie die neueste Version voninstall_asm_1.7
herunter.
Optionen für ein benutzerdefiniertes Zertifikat für Citadel
Wenn Sie citadel
angegeben haben und eine benutzerdefinierte Zertifizierungsstelle nutzen, verwenden Sie die folgenden Optionen:
--ca_cert FILE_PATH
: Zwischenzertifikat--ca_key FILE_PATH
: Schlüssel für das Zwischenzertifikat--root_cert FILE_PATH
: Root-Zertifikat--cert_chain FILE_PATH
: Zertifikatskette
Weitere Informationen finden Sie unter Vorhandene CA-Zertifikate einbinden.
Arbeitslasten bereitstellen und neu bereitstellen
Die Installation ist erst abgeschlossen, wenn Sie die automatische Sidecar-Proxy-Injektion aktivieren (automatische Injektion).
Bei neuen Installationen müssen Sie die automatische Injektion aktivieren und die Pods für alle auf Ihrem Cluster ausgeführten Arbeitslasten neu starten, bevor Anthos Service Mesh installiert wird.
Migrationen und Upgrades folgendem dem Upgradeprozess für die duale Steuerungsebene (in der Istio-Dokumentation als „Canary-Upgrade“ bezeichnet). Bei einem Upgrade der dualen Steuerungsebene installiert das Skript zusätzlich zur vorhandenen
istiod
eine neue Version vonistiod
. Anschließend verschieben Sie einige Ihrer Arbeitslasten in die neue Version. Auf diese Weise können Sie die Auswirkungen der neuen Version mit einem kleinen Prozentsatz der Arbeitslasten überwachen, bevor Sie den gesamten Traffic zur neuen Version migrieren.Aktivieren Sie vor dem Bereitstellen neuer Arbeitslasten die automatische Injektion, damit der Traffic mit Anthos Service Mesh den Traffic überwacht und geschützt werden kann.
Zum Aktivieren der automatischen Injection erhalten Sie das Revisionslabel, das vom Skript auf istiod
angewendet wurde, und Ihre Namespaces mit dem Revisionslabel. In den folgenden Abschnitten finden Sie weitere Details.
Revisionslabel abrufen
Mit dem Skript wird ein Überarbeitungslabel im Format istio.io/rev=asm-178-10
zu istiod
hinzugefügt. Zur Aktivierung der automatischen Injektion fügen Sie zu Ihren Namespaces ein entsprechendes Überarbeitungslabel hinzu. 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 die Sidecars eingefügt werden können.
Legen Sie den aktuellen Kontext für
kubectl
fest:gcloud container clusters get-credentials CLUSTER_NAME \ --project=PROJECT_ID
Rufen Sie die Labels in
istiod
auf, um das vom Skript festgelegte Überarbeitungslabel abzurufen:kubectl -n istio-system get pods -l app=istiod --show-labels
Die Ausgabe des Befehls sieht in etwa so aus: Die Ausgabe für neue Installationen, Migrationen und Upgrades unterscheidet sich geringfügig. Die folgende Beispielausgabe stammt von einer Migration.
NAME READY STATUS RESTARTS AGE LABELS istiod-7744bc8dd7-qhlss 1/1 Running 0 49m app=istiod,istio.io/rev=default,istio=pilot,pod-template-hash=7744bc8dd7 istiod-asm-178-10-85d86774f7-flrt2 1/1 Running 0 26m app=istiod,istio.io/rev=asm-178-10,istio=istiod,pod-template-hash=85d86774f7 istiod-asm-178-10-85d86774f7-tcwtn 1/1 Running 0 26m app=istiod,istio.io/rev=asm-178-10,istio=istiod,pod-template-hash=85d86774f7
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 lautet der Wert asm-178-10. Ihr Wert kann aber auch ein anderer sein.Notieren Sie sich bei Upgrades und Migrationen auch den Wert aus dem Überarbeitungslabel für die alte
istiod
-Version. Sie benötigen diesen, um die alte Version vonistiod
zu löschen, wenn die Migration oder das Upgrade abgeschlossen ist. In der Beispielausgabe lautet der Wert für die alten Version vonistiod
aus dem Überarbeitungslabeldefault
. Ihr Wert kann aber auch ein anderer sein.
Automatische Injektion aktivieren
Führen Sie diese Schritte für neue Installationen, Migrationen und Upgrades aus, um die automatische Injektion zu aktivieren.
Rufen Sie aus dem Überarbeitungslabel den Wert für
istiod
ab.Fügen Sie das Überarbeitungslabel einem Namespace hinzu und entfernen Sie das Label
istio-injection
. Ändern Sie im folgenden BefehlREVISION
in den Wert, der der Überarbeitung aufistiod
entspricht.kubectl label namespace NAMESPACE istio.io/rev=REVISION istio-injection- --overwrite
Starten Sie die Pods neu, um die erneute Injektion auszulösen.
kubectl rollout restart deployment -n NAMESPACE
Überprüfen Sie, ob Ihre Pods so konfiguriert sind, dass sie auf die neue Version von
istiod
verweisen.kubectl get pods -n NAMESPACE -l istio.io/rev=REVISION
Testen Sie die Anwendung, um zu prüfen, ob die Arbeitslasten ordnungsgemäß funktionieren.
Wenn Sie Arbeitslasten in anderen Namespaces haben, wiederholen Sie die Schritte, um den Namespace mit einem Label zu versehen und Pods neu zu starten.
Für Migration und Upgrades:
Wenn Ihre Anwendung wie erwartet funktioniert, fahren Sie mit dem nächsten Abschnitt fort, um die Umstellung auf die neue Version von
istiod
abzuschließen.Wenn ein Problem mit Ihrer Anwendung vorliegt, folgen Sie den Schritten unter Rollback zur vorherigen Version.
Umstellung vornehmen
Für Migrationen und Upgrades müssen Sie die alte Version von istiod
entfernen. Wenn Sie sicher sind, dass Ihre Anwendung wie erwartet funktioniert, entfernen Sie die alte Steuerungsebene, um die Umstellung auf die neue Version abzuschließen.
Rufen Sie aus dem Überarbeitungslabel den Wert für die alte Version von
istiod
ab.Löschen Sie die alte Version von
istiod
. Ersetzen Sie im folgenden BefehlOLD_REVISION
durch die Überarbeitung aus dem vorherigen Schritt.kubectl delete Service,Deployment,HorizontalPodAutoscaler,PodDisruptionBudget istiod-OLD_REVISION -n istio-system --ignore-not-found=true
Rollback zur vorherigen Version
Wenn im Zuge einer Migration oder eines Upgrades beim Testen der Anwendung mit der neuen Version von istiod
ein Problem auftritt, führen Sie die folgenden Schritte aus, um ein Rollback auf die vorherige Version durchzuführen:
Benennen Sie Ihren Namespace um, um die automatische Injektion mit der vorherigen Version von
istiod
zu aktivieren. Der zu verwendende Befehl hängt davon ab, ob Sie ein Überarbeitungslabel oderistio-injection=enabled
mit der vorherigen Version verwendet haben.Wenn Sie ein Überarbeitungslabel für die automatische Injektion verwendet haben, führen Sie Folgendes aus:
kubectl label namespace NAMESPACE istio.io/rev=OLD_REVISION --overwrite
Wenn Sie
istio-injection=enabled
verwendet haben, führen Sie Folgendes aus:kubectl label namespace NAMESPACE istio.io/rev- istio-injection=enabled --overwrite
Starten Sie die Pods neu, um die erneute Einfügung auszulösen, damit die Proxys die Istio-Version erhalten:
kubectl rollout restart deployment -n NAMESPACE
Stellen Sie die vorherige Version von
istio-ingressgateway
noch einmal bereit:kubectl -n istio-system rollout undo deploy istio-ingressgateway
Entfernen Sie die neue Version von
istiod
:kubectl delete Service,Deployment,HorizontalPodAutoscaler,PodDisruptionBudget istiod-REVISION -n istio-system --ignore-not-found=true
Wenn Sie das Flag
--disable_canonical_service
nicht angegeben haben, hat das Skript den Canonical Service-Controller aktiviert. Folgen Sie der Anleitung unter Canonical Service-Controller aktivieren und deaktivieren, um ihn zu deaktivieren.
Gleiche Version neu installieren
Das Skript install_asm
ruft istioctl install
auf, um die Komponenten der Anthos Service Mesh-Steuerungsebene (istiod
und istio-ingressgateway
) für Installationen, Upgrades und Istio-Migrationen bereitzustellen. Da das Skript istioctl install
verwendet, müssen Sie die Steuerungsebene mit der neuen Konfiguration neu installieren, wenn Sie Anthos Service Mesh für das Aktivieren einer optionalen Funktion konfigurieren möchten.
Es wurde eine Änderung am Skript install_asm
vorgenommen, damit Sie dieselbe Version von Anthos Service Mesh neu installieren können. Wenn Sie dieselbe Version neu installieren, um eine optionale Funktion zu aktivieren, wird die vorhandene Konfiguration der Steuerungsebene überschrieben.
Wenn Sie die vorhandene Installation anpassen, müssen Sie dieselben Optionen --option
und/oder --custom_overlay
aus der vorherigen Installation und die Optionen --option
und/oder --custom_overlay
für die Funktionen, die Sie aktivieren möchten, einschließen.
Wenn Sie Cloud Trace aktivieren oder eine Tracing-Einstellung ändern, müssen Sie auch Arbeitslasten neu bereitstellen, damit die Sidecar-Proxys wieder mit der aktualisierten Konfiguration der Steuerungsebene eingefügt werden.
Wenn Sie dieselbe Version neu installieren, geben Sie wie bei Installationen --mode install
an. Informationen zur Installation mithilfe des Skripts finden Sie unter Anthos Service Mesh installieren.
Wenn Sie in einer YAML-Datei mehr als eine einzige benutzerdefinierte IstioOperator
-Ressource angeben, teilt install_asm
die Datei in mehrere temporäre YAML-Dateien auf – eine für jede benutzerdefinierte Ressource. Das Skript teilt die benutzerdefinierten Ressourcen in separate Dateien auf, da istioctl install
nur die erste benutzerdefinierte Ressource in einer YAML-Datei anwendet, die mehr als eine benutzerdefinierte Ressource enthält.
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.
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.
Grundlegendes zum Skript
Obwohl Sie das Skript von einem sicheren Speicherort in Cloud Source Repositories herunterladen, steht das Skript auch auf GitHub zur Verfügung, damit Sie das Skript vor dem Download prüfen können. Das Skript überprüft, ob Ihr Cluster die Anforderungen erfüllt, und automatisiert alle Schritte, die Sie manuell ausführen würden, wenn Sie der Anleitung Anthos Service Mesh in GKE installieren folgen.
Mit Anthos Service Mesh 1.7.8 verwenden Sie die Version des install_asm
-Skripts aus dem Zweig release-1.7-asm
. Eine Erklärung zur Versionsverwaltung und zum Releaseprozess finden Sie unter Versionsverwaltung/Release.
validate_args
und validate_dependencies
Die Funktionen validate_args
und validate_dependencies
:
- Prüfen Sie, ob alle erforderlichen Tools installiert sind.
- Prüfen Sie, ob die Projekt-ID, der Clustername und der Clusterstandort, die Sie als Parameterwerte eingegeben haben, gültig sind.
- Der Cluster muss den erforderlichen Mindestmaschinentyp und die erforderliche Mindestanzahl an Knoten aufweisen.
set_up_project
Wenn Sie das Flag --enable_apis
angegeben haben, aktiviert die Funktion set_up_project
die erforderlichen APIs:
set_up_cluster
Die Funktion set_up_cluster
führt die folgenden Aktualisierungen Ihres Clusters durch:
Aktiviert Workload Identity. Dies ist die empfohlene Methode für den sicheren Zugriff auf Google Cloud-Dienste aus GKE-Anwendungen.
Aktiviert Cloud Monitoring und Cloud Logging in GKE.
Legt das
mesh_id
-Label auf dem Cluster fest. Dies ist erforderlich, damit Messwerte auf den Anthos Service Mesh-Seiten in der Cloud Console angezeigt werden.Legt ein Label wie
asmv=asm-178-10
fest, damit Sie sehen können, dass der Cluster vom Skript geändert wurde.Bindet den GCP-Nutzer oder das Dienstkonto, der/das das Skript ausführt, an die Clusteradministrator-Rolle für Ihr Cluster.
install_asm
Die install_asm
-Funktion:
- Lädt das Paket
kpt
in ein temporäres Verzeichnis herunter. - Führt die
kpt
-Setter aus, um dieistio-operator.yaml
-Datei zu konfigurieren. - Installiert Anthos Service Mesh.
Nächste Schritte
- Beispielanwendung Online Boutique auf Anthos Service Mesh bereitstellen
- Cluster zu einem Anthos Service Mesh hinzufügen