Beispielanwendung Online Boutique bereitstellen

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. Welches Label Sie hinzufügen, hängt davon ab, ob Sie verwaltetes Anthos Service Mesh oder die clusterinterne Steuerungsebene installiert haben. Das Überarbeitungslabel wird vom Sidecar-Injektor-Webhook verwendet, um eingefügte Sidecars mit einer bestimmten Überarbeitung der Steuerungsebene zu verknüpfen.

Clusterintern

  1. Erstellen Sie einen Namespace für die Anwendung:

    kubectl create namespace demo
    
  2. 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-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 Spalte LABELS, das auf das Präfix istio.io/rev= folgt. In diesem Beispiel ist der Wert asm-1106-2.

  3. Wenden Sie das Überarbeitungslabel auf den Namespace demo an. Im folgenden Befehl ist REVISION der Wert des Überarbeitungslabels 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 Label istio-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 istio-injection als auch das Überarbeitungslabel enthält, enthalten alle kubectl label-Befehle in der Anthos Service Mesh-Dokumentation das Label istio-injection.

Verwaltetes Dienst-Mesh

  1. Erstellen Sie einen Namespace für die Anwendung:

    kubectl create namespace demo
    
  2. Wenden Sie das Überarbeitungslabel asm-managed-rapid auf den Namespace demo an.

    kubectl label namespace demo istio-injection- istio.io/rev=asm-managed-rapid --overwrite
    

    Dieses Label entspricht der aktuellen Release-Version des verwalteten Anthos Service Mesh für die Anthos Service Mesh-Version.

    Sie können die Nachricht "istio-injection not found" in der Ausgabe ignorieren. Das bedeutet, dass der Namespace bisher nicht das Label istio-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 istio-injection als auch das Überarbeitungslabel enthält, enthalten alle kubectl label-Befehle in der Anthos Service Mesh-Dokumentation das Label istio-injection.

  3. Wenn Sie auch die optionale von Google verwaltete Datenebene bereitgestellt haben, annotieren Sie den Namespace demo so:

    kubectl annotate --overwrite namespace YOUR_NAMESPACE \
    mesh.cloud.google.com/proxy='{"managed":"true"}'
    

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.

  1. Installieren Sie kpt, falls noch nicht geschehen:

    gcloud components install kpt
    
  2. Laden Sie das Beispiel mit kpt herunter:

    kpt pkg get \
    https://github.com/GoogleCloudPlatform/microservices-demo.git/release \
    online-boutique
    
  3. Stellen Sie das Beispiel im Cluster bereit:

    kubectl apply -n demo -f online-boutique
    
  4. Suchen Sie die externe IP-Adresse des Dienstes frontend-external:

    kubectl get service frontend-external -n demo
    
  5. 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