In dieser Anleitung installieren Sie Anthos Service Mesh 1.10.6-asm.2 mithilfe des von Google bereitgestellten Skripts install_asm
in einem neuen GKE-Cluster (Google Kubernetes Engine). In dieser Anleitung wird Folgendes beschrieben:
- Google Cloud-Projekt konfigurieren
- GKE-Cluster mit der Mindestanzahl von vCPUs erstellen, die von Anthos Service Mesh benötigt werden
- Anthos Service Mesh mit einer clusterinternen Steuerungsebene installieren
- Beispielanwendung bereitstellen, um Telemetriedaten auf den Anthos Service Mesh-Dashboards in der Google Cloud Console aufzurufen
Kosten
In diesem Dokument verwenden Sie die folgenden kostenpflichtigen Komponenten von Google Cloud:
Mit dem Preisrechner können Sie eine Kostenschätzung für Ihre voraussichtliche Nutzung vornehmen.
Nach Abschluss dieser Kurzanleitung können Sie weitere Kosten durch das Löschen des Clusters vermeiden. Weitere Informationen finden Sie unter Bereinigen.
Hinweise
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein.
-
Enable the Kubernetes Engine API.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein.
-
Enable the Kubernetes Engine API.
- Notieren Sie sich die Projekt-ID.
Anthos Service Mesh erfordert zwar weitere APIs, aber das Skript install_asm
aktiviert sie für Sie. Die GKE Enterprise API wird durch das Skript install_asm
nicht aktiviert, um die Abrechnungskosten niedrig zu halten. Es gibt einige geringfügige Unterschiede in der Google Cloud Console, wenn die GKE Enterprise API aktiviert ist. Weitere Informationen zu diesen Unterschieden finden Sie unter Unterschiede zwischen GKE Enterprise und Anthos Service Mesh.
Erforderliche Tools installieren
Sie können das Skript in Cloud Shell oder auf Ihrem lokalen Computer ausführen, auf dem Linux ausgeführt wird. Cloud Shell installiert alle erforderlichen Tools vorab. macOS wird nicht unterstützt, da eine ältere Version von Bash enthalten ist.
Cloud Shell
Cloud Shell stellt eine g1-small Compute Engine-VM bereit, auf der ein Debian-basiertes Linux-Betriebssystem ausgeführt wird. Cloud Shell bietet folgende Vorteile:
Cloud Shell umfasst
gcloud
,kubectl
,kpt
und die anderen erforderlichen Befehlszeilentools.Ihr $HOME-Verzeichnis in Cloud Shell verfügt über 5 GB nichtflüchtigen Speicher.
Es stehen verschiedene Texteditoren zur Auswahl:
Code-Editor, auf den Sie zugreifen, indem Sie oben im Cloud Shell-Fenster auf edit klicken.
Emacs, Vim oder Nano, auf die Sie in Cloud Shell über die Befehlszeile zugreifen.
So verwenden Sie Cloud Shell:
- Öffnen Sie die Google Cloud Console.
- Wählen Sie Ihr Google Cloud-Projekt aus.
Klicken Sie im oberen Bereich des Google Cloud Console-Fensters auf Cloud Shell aktivieren.
Im unteren Bereich der Google Cloud Console wird ein neues Feld mit einer Cloud Shell-Sitzung und einer Befehlszeilen-Eingabeaufforderung geöffnet.
Lokaler Linux-Computer
Die folgenden Tools müssen installiert sind:
- Die Google Cloud CLI
- Die Standard-Befehlszeilentools:
awk
,curl
,grep
,sed
undtr
. - git
- kpt
- 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.
GKE-Cluster erstellen
Führen Sie den folgenden Befehl aus, um den Cluster mit der Mindestanzahl von vCPUs zu erstellen, die für Anthos Service Mesh erforderlich ist. Ersetzen Sie im Befehl die Platzhalter durch folgende Informationen:
- CLUSTER_NAME: Der Name Ihres Clusters. Der Name darf nur kleingeschriebene, alphanumerische Zeichen und
-
enthalten, muss mit einem Buchstaben beginnen und mit einem alphanumerischen Zeichen enden. Er darf nicht länger als 40 Zeichen sein. - PROJECT_ID: Die Projekt-ID, in der der Cluster erstellt wird.
- CLUSTER_LOCATION: Die Zone des Clusters, z. B.
us-central1-a
.
gcloud container clusters create CLUSTER_NAME \ --project=PROJECT_ID \ --zone=CLUSTER_LOCATION \ --machine-type=e2-standard-4 \ --num-nodes=2 \ --workload-pool=PROJECT_ID.svc.id.goog
- CLUSTER_NAME: Der Name Ihres Clusters. Der Name darf nur kleingeschriebene, alphanumerische Zeichen und
Rufen Sie die Anmeldedaten für die Authentifizierung ab, um mit dem Cluster zu interagieren: Mit diesem Befehl wird auch der aktuelle Kontext für
kubectl
auf den Cluster festgelegt.gcloud container clusters get-credentials CLUSTER_NAME \ --project=PROJECT_ID \ --zone=CLUSTER_LOCATION
ASM-Installationsskript herunterladen
Laden Sie die Version des Skripts herunter, mit der Anthos Service Mesh 1.10.6 in das aktuelle Arbeitsverzeichnis installiert wird:
curl https://storage.googleapis.com/csm-artifacts/asm/install_asm_1.10 > install_asm
Machen Sie das Skript ausführbar:
chmod +x install_asm
Anthos Service Mesh installieren
Führen Sie das Skript install_asm
mit den folgenden Optionen aus, um Anthos Service Mesh im zuvor erstellten Cluster zu installieren. Wenn Sie diese Seite seit dem Erstellen des Clusters nicht geschlossen haben, enthalten die Platzhalter die Werte, die Sie für den Befehl gcloud container clusters create
eingegeben haben.
./install_asm \
--project_id PROJECT_ID \
--cluster_name CLUSTER_NAME \
--cluster_location CLUSTER_LOCATION \
--mode install \
--output_dir ./asm-downloads \
--enable_all
Es kann einige Minuten dauern, bis die Ausführung des Skripts install_asm
abgeschlossen ist. Das Skript gibt Informationsnachrichten aus, damit Sie den Fortschritt verfolgen können.
Der Befehl führt install_asm
mit den folgenden Optionen aus:
--mode install
: Führt das Skript für eine neue Installation aus und aktiviert die Anthos Service Mesh-Zertifizierungsstelle (Mesh CA), also die standardmäßige Zertifizierungsstelle für Installationen.--output_dir ./asm-downloads
: Das Verzeichnis, in das das Skript die Dateien aus dem Repositoryanthos-service-mesh
herunterlädt und die Anthos Service Mesh-Installationsdatei herunterlädt und extrahiert. Darin enthalten sindistioctl
, Beispiele und Manifeste.--enable-registration
: Erlaubt dem Skript, den Cluster für das Projekt zu registrieren, in dem sich der Cluster befindet.--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.
Online Boutique-Beispiel bereitstellen
Laden Sie das Beispiel mit
kpt
herunter:kpt pkg get \ https://github.com/GoogleCloudPlatform/microservices-demo.git/release \ online-boutique
Erstellen Sie einen Namespace für die Anwendung:
kubectl create namespace demo
Aktivieren Sie die automatische Sidecar-Injektion (automatische Injektion). Verwenden Sie den folgenden Befehl, um beim Dienst
istiod
nach dem Label zu suchen. Dort ist der Wert des Überarbeitungslabels enthalten, der in den späteren Schritten verwendet wird.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-1106-2-5788d57586-bljj4 1/1 Running 0 23h app=istiod,istio.io/rev=asm-1106-2,istio=istiod,pod-template-hash=5788d57586 istiod-asm-1106-2-5788d57586-vsklm 1/1 Running 1 23h app=istiod,istio.io/rev=asm-1106-2,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-1106-2
.Wenden Sie das Überarbeitungslabel auf den Namespace an. Im folgenden Befehl ist REVISION der Wert des Revisions-Labels
istiod
, den Sie im vorherigen Schritt notiert haben.kubectl label namespace demo 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 Injektion fehlschlägt, wenn ein Namespace sowohl dasistio-injection
als auch das Überarbeitungslabel enthält, enthalten allekubectl label
-Befehle in der Anthos Service Mesh-Dokumentation das Labelistio-injection
.Stellen Sie das Beispiel im Cluster bereit:
kubectl apply -n demo -f online-boutique
Rufen Sie die externe IP-Adresse des Ingress-Gateways ab:
kubectl get service istio-ingressgateway -n istio-system
Die Ausgabe sieht etwa so aus:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE istio-ingressgateway LoadBalancer 10.19.247.233 35.239.7.64 80:31380/TCP,443:31390/TCP,31400:31400/TCP 27m
In diesem Beispiel lautet die IP-Adresse des Ingress-Gateways
35.239.7.64
.Rufen Sie die Anwendung in Ihrem Browser auf, um die Installation zu bestätigen:
http://EXTERNAL_IP/
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.
Bereinigen
Wenn Sie mehr über gegenseitiges TLS erfahren möchten, lesen Sie Anthos Service Mesh mit Beispiel: mTLS.
Wenn Sie zusätzliche Gebühren vermeiden möchten, löschen Sie den Cluster:
gcloud container clusters delete CLUSTER_NAME \ --project=PROJECT_ID \ --zone=CLUSTER_LOCATION
Wenn Sie den Cluster behalten und das Online Boutique-Beispiel entfernen möchten:
kubectl delete namespaces demo
Nächste Schritte
Mehr zu folgenden Themen:
- Clusteranforderungen
- Optionen und Flags des Skripts
install_asm
- Dienste bereitstellen
- In dieser Anleitung verwendete
gcloud
-Befehle