Auf dieser Seite wird erläutert, wie Sie eine Beispielanwendung in Anthos Service Mesh bereitstellen. Wenn Sie Anthos Service Mesh nicht installiert haben, lesen Sie den Abschnitt Installationsanleitungen, um die entsprechende Anleitung auszuwählen.
In der Anthos Service Mesh-Installation sind mehrere Beispielanwendungen enthalten. In dieser Anleitung wird beschrieben, wie Sie das Beispiel BookInfo bereitstellen. Hierbei handelt es sich um eine einfache Nachbildung einer Buchhandlung, die aus vier Diensten besteht, die eine Webproduktseite, Buchdetails, Rezensionen (mit mehreren Versionen des Rezensionsdienstes) sowie Bewertungen bieten. Alle werden mit Anthos Service Mesh verwaltet. Den Quellcode und alle anderen Dateien, die in diesem Beispiel genutzt werden, finden Sie im Verzeichnis samples/bookinfo
Ihrer Anthos Service Mesh-Installation.
Anwendung bereitstellen
Führen Sie die folgenden Schritte aus, um die Dienste der BookInfo-Anwendung mit den in jedem Dienst eingefügten Sidecar-Proxys bereitzustellen.
Wechseln Sie in der Befehlszeile des Computers, auf dem Sie Anthos Service Mesh installiert haben, zum Stammverzeichnis des Anthos Service Mesh-Installationsverzeichnisses.
Aktivieren Sie die automatische Sidecar-Injektion. Verwenden Sie den folgenden Befehl, um in
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-173-3-5788d57586-bljj4 1/1 Running 0 23h app=istiod,istio.io/rev=asm-173-3,istio=istiod,pod-template-hash=5788d57586 istiod-asm-173-3-5788d57586-vsklm 1/1 Running 1 23h app=istiod,istio.io/rev=asm-173-3,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-173-3
.Wenden Sie das Überarbeitungslabel auf Namespaces an. Im folgenden Befehl ist
NAMESPACE
der Name des Namespace, in dem die Sidecar-Injektion ausgeführt werden soll, und REVISION der Wert des Überarbeitungslabelsistiod
, das Sie wie im vorherigen Schritt beschrieben.kubectl label namespace NAMESPACE istio-injection- istio.io/rev=REVISION --overwrite
Stellen Sie Ihre Anwendung mit
kubectl
bereit:kubectl apply -f samples/bookinfo/platform/kube/bookinfo.yaml
Führen Sie die folgenden Befehle aus, um zu bestätigen, dass die Anwendung fehlerfrei bereitgestellt wurde:
Ausgabe:kubectl get services
NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE details 10.0.0.31 <none> 9080/TCP 6m kubernetes 10.0.0.1 <none> 443/TCP 7d productpage 10.0.0.120 <none> 9080/TCP 6m ratings 10.0.0.15 <none> 9080/TCP 6m reviews 10.0.0.170 <none> 9080/TCP 6m
und
Ausgabe:kubectl get pod
NAME READY STATUS RESTARTS AGE details-v1-1520924117-48z17 2/2 Running 0 6m productpage-v1-560495357-jk1lz 2/2 Running 0 6m ratings-v1-734492171-rnr5l 2/2 Running 0 6m reviews-v1-874083890-f0qf0 2/2 Running 0 6m reviews-v2-1343845940-b34q5 2/2 Running 0 6m reviews-v3-1813607990-8ch52 2/2 Running 0 6m
Definieren Sie abschließend das Ingress-Gateway-Routing für die Anwendung:
kubectl apply -f samples/bookinfo/networking/bookinfo-gateway.yaml
Anwendungsbereitstellung validieren
Zum Prüfen, ob die BookInfo-Anwendung funktioniert, müssen Sie Traffic an das Ingress-Gateway senden.
Wenn Sie Anthos Service Mesh in GKE on VMware installiert haben, rufen Sie die externe IP-Adresse für das Ingress-Gateway ab, das Sie nach der Installation von Anthos Service Mesh konfiguriert haben.
Wenn Sie Anthos Service Mesh in GKE installiert haben, erhalten Sie die externe IP-Adresse des Ingress-Gateways:
Ausgabe:kubectl get svc istio-ingressgateway -n istio-system
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-Dienstes
35.239.7.64
.
Anwendung testen
Prüfen Sie, ob die BookInfo-Anwendung mit
curl
ausgeführt wird:curl -I http://EXTERNAL_IP/productpage
Wenn in der Antwort
200
angezeigt wird, bedeutet dies, dass die Anwendung fehlerfrei mit Anthos Service Mesh funktioniert.Geben Sie die folgende Adresse in Ihren Browser ein, um die BookInfo-Webseite aufzurufen:
http://EXTERNAL_IP/productpage
Wenn Sie die Seite mehrmals aktualisieren, sollten auf der Produktseite verschiedene Versionen der Rezensionen in zufälliger Abfolge angezeigt werden (rote Sterne, schwarze Sterne, keine Sterne).
Da Ihre Anwendung Traffic generiert, können Sie sich die Anthos Service Mesh-Seiten in der Google Cloud Console ansehen, um Messwerte und andere Beobachtbarkeitsfunktionen aufzurufen.
Nächste Schritte
Weitere Informationen zum Bookinfo-Beispiel
Bereinigen
Wenn Sie mit dem Testen des Bookinfo-Beispiels fertig sind, entfernen Sie es aus Ihrem Cluster.
Deinstallieren Sie Bookinfo mit dem folgenden Skript:
samples/bookinfo/platform/kube/cleanup.sh
Bestätigen Sie das Herunterfahren:
kubectl get services
kubectl get pods
Die Bookinfo-Pods sollten gelöscht werden.