In dieser Anleitung wird erläutert, wie Sie die Beispielanwendung Online Boutique für Anthos Service Mesh installieren. Wenn Sie Anthos Service Mesh nicht installiert haben, lesen Sie den Abschnitt Installationsanleitungen, um die entsprechende Anleitung auszuwählen.
Automatische Sidecar-Injektion aktivieren
Um das automatische Einfügen der Sidecar-Datei (automatische Injektion) für die Beispielanwendung zu aktivieren, müssen Sie ein Überarbeitungslabel zum Namespace der Beispielanwendung hinzufügen. Das Label, das Sie hinzufügen, hängt davon ab, ob Sie die von Google verwaltete Steuerungsebene von Anthos Service Mesh bereitgestellt oder die clusterinterne Steuerungsebene installiert haben. Das Überarbeitungslabel wird vom Sidecar-Injektor-Webhook verwendet, um eingefügte Sidecars mit einer bestimmten Steuerungsebenen-Überarbeitung zu verknüpfen.
Clusterintern
Erstellen Sie einen Namespace für die Anwendung:
kubectl create namespace demo
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-198-6-5788d57586-bljj4 1/1 Running 0 23h app=istiod,istio.io/rev=asm-198-6,istio=istiod,pod-template-hash=5788d57586 istiod-asm-198-6-5788d57586-vsklm 1/1 Running 1 23h app=istiod,istio.io/rev=asm-198-6,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-198-6
.Wenden Sie das Überarbeitungslabel auf den Namespace
demo
an. Im folgenden Befehl ist REVISION der Wert des Überarbeitungslabelsistiod
, 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 sowohlistio-injection
als auch das Überarbeitungslabel enthält, enthalten allekubectl label
-Befehle in der Anthos Service Mesh-Dokumentation das Labelistio-injection
.
Von Google verwaltet
Erstellen Sie einen Namespace für die Anwendung:
kubectl create namespace demo
Wenden Sie das Überarbeitungslabel
asm-managed
auf den Namespacedemo
an.kubectl label namespace demo istio-injection- istio.io/rev=asm-managed --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 sowohlistio-injection
als auch das Überarbeitungslabel enthält, enthalten allekubectl label
-Befehle in der Anthos Service Mesh-Dokumentation das Labelistio-injection
.
Beispiel herunterladen und bereitstellen
Nachdem die automatische Injektion im Namespace demo
aktiviert wurde, werden beim Bereitstellen der Dienste der BookInfo-Anwendung Sidecar-Proxys zusammen mit jedem Dienst eingefügt.
Installieren Sie
kpt
, falls noch nicht geschehen:gcloud components install kpt
Laden Sie das Beispiel mit
kpt
herunter:kpt pkg get \ https://github.com/GoogleCloudPlatform/microservices-demo.git/release \ online-boutique
Stellen Sie das Beispiel im Cluster bereit:
kubectl apply -n demo -f online-boutique
Suchen Sie die externe IP-Adresse des Dienstes
frontend-external
:kubectl get service frontend-external -n demo
Rufen Sie die Anwendung in Ihrem Browser auf, um die Installation zu bestätigen:
http://EXTERNAL_IP/
Für GKE können Sie die Anthos Service Mesh-Beobachtbarkeitsfeatures in der Google Cloud Console untersuchen. Beachten Sie, dass es bis zu 10 Minuten dauern kann, bis die Topologiegrafik die Dienste in Ihrem Mesh-Netzwerk anzeigt.
Wenn Sie fertig sind, entfernen Sie die Online-Boutique-Beispiel:
kubectl delete namespaces demo