Von Istio zu Anthos Service Mesh migrieren

Diese Seite ist Teil einer mehrseitigen Anleitung, in der erläutert wird, wie Sie von Istio zur Anthos Service Mesh-Version 1.7.8 in einem GKE-Cluster für ein Mesh-Netzwerk mit mehreren Clustern migrieren, die sich in verschiedenen Google Cloud-Projekten befinden. Informationen zu Migrationen in einem Mesh-Netzwerk mit einem einzelnen Cluster oder für ein Mesh-Netzwerk, das mehrere Cluster im selben Google Cloud-Projekt enthält, finden Sie unter Installation, Migration und Upgrade für GKE.

Hinweise

Bevor Sie Anthos Service Mesh installieren, müssen folgende Voraussetzungen erfüllt sein:

Anmeldedaten und Berechtigungen festlegen

  1. Initialisieren Sie Ihr Projekt, um es für die Installation vorzubereiten. Mit diesem Befehl wird unter anderem ein Dienstkonto erstellt, mit dem Komponenten der Steuerungsebene, wie der Sidecar-Proxy, sicher auf die Daten und Ressourcen Ihres Projekts zugreifen können:

    curl --request POST \
      --header "Authorization: Bearer $(gcloud auth print-access-token)" \
      --data '' \
      "https://meshconfig.googleapis.com/v1alpha1/projects/${PROJECT_ID}:initialize"

    Der Befehl gibt ein Paar leere geschweifte Klammern zurück: {}

  2. 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}
    
  3. Gewähren Sie dem aktuellen Nutzer Cluster-Administratorberechtigungen. Sie benötigen diese Berechtigungen, um die erforderlichen Regeln für die rollenbasierte Zugriffssteuerung (Role Based Access Control, RBAC) für Anthos Service Mesh zu erstellen.

    kubectl create clusterrolebinding cluster-admin-binding \
      --clusterrole=cluster-admin \
      --user="$(gcloud config get-value core/account)"

Wenn der Fehler "cluster-admin-binding" already exists angezeigt wird, können Sie ihn ignorieren und mit der vorhandenen Cluster-Administratorbindung fortfahren.

Installationsdatei herunterladen

    Linux

  1. Laden Sie die Anthos Service Mesh-Installationsdatei in Ihr aktuelles Arbeitsverzeichnis herunter:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.7.8-asm.10-linux-amd64.tar.gz
  2. Laden Sie die Signaturdatei herunter und bestätigen Sie die Signatur mit openssl:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.7.8-asm.10-linux-amd64.tar.gz.1.sig
    openssl dgst -verify /dev/stdin -signature istio-1.7.8-asm.10-linux-amd64.tar.gz.1.sig istio-1.7.8-asm.10-linux-amd64.tar.gz <<'EOF'
    -----BEGIN PUBLIC KEY-----
    MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ
    wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw==
    -----END PUBLIC KEY-----
    EOF

    Die erwartete Ausgabe ist Verified OK.

  3. Entpacken Sie die Inhalte der Datei in einem Verzeichnis Ihres Dateisystems. So extrahieren Sie beispielsweise den Inhalt in das aktuelle Arbeitsverzeichnis:
    tar xzf istio-1.7.8-asm.10-linux-amd64.tar.gz

    Mit dem Befehl wird in Ihrem aktuellen Arbeitsverzeichnis istio-1.7.8-asm.10 ein Installationsverzeichnis erstellt, das Folgendes enthält:

    • Beispielanwendungen im Verzeichnis samples.
    • Das istioctl-Befehlszeilentool, das Sie zum Installieren von Anthos Service Mesh verwenden, befindet sich im Verzeichnis bin.
    • Die Anthos Service Mesh-Konfigurationsprofile befinden sich im Verzeichnis manifests/profiles.

  4. macOS

  5. Laden Sie die Anthos Service Mesh-Installationsdatei in Ihr aktuelles Arbeitsverzeichnis herunter:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.7.8-asm.10-osx.tar.gz
  6. Laden Sie die Signaturdatei herunter und bestätigen Sie die Signatur mit openssl:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.7.8-asm.10-osx.tar.gz.1.sig
    openssl dgst -sha256 -verify /dev/stdin -signature istio-1.7.8-asm.10-osx.tar.gz.1.sig istio-1.7.8-asm.10-osx.tar.gz <<'EOF'
    -----BEGIN PUBLIC KEY-----
    MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ
    wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw==
    -----END PUBLIC KEY-----
    EOF

    Die erwartete Ausgabe ist Verified OK.

  7. Entpacken Sie die Inhalte der Datei in einem Verzeichnis Ihres Dateisystems. So extrahieren Sie beispielsweise den Inhalt in das aktuelle Arbeitsverzeichnis:
    tar xzf istio-1.7.8-asm.10-osx.tar.gz

    Mit dem Befehl wird in Ihrem aktuellen Arbeitsverzeichnis istio-1.7.8-asm.10 ein Installationsverzeichnis erstellt, das Folgendes enthält:

    • Beispielanwendungen im Verzeichnis samples.
    • Das istioctl-Befehlszeilentool, das Sie zum Installieren von Anthos Service Mesh verwenden, befindet sich im Verzeichnis bin.
    • Die Anthos Service Mesh-Konfigurationsprofile befinden sich im Verzeichnis manifests/profiles.

  8. Windows

  9. Laden Sie die Anthos Service Mesh-Installationsdatei in Ihr aktuelles Arbeitsverzeichnis herunter:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.7.8-asm.10-win.zip
  10. Laden Sie die Signaturdatei herunter und bestätigen Sie die Signatur mit openssl:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.7.8-asm.10-win.zip.1.sig
    openssl dgst -verify - -signature istio-1.7.8-asm.10-win.zip.1.sig istio-1.7.8-asm.10-win.zip <<'EOF'
    -----BEGIN PUBLIC KEY-----
    MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ
    wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw==
    -----END PUBLIC KEY-----
    EOF

    Die erwartete Ausgabe ist Verified OK.

  11. Entpacken Sie die Inhalte der Datei in einem Verzeichnis Ihres Dateisystems. So extrahieren Sie beispielsweise den Inhalt in das aktuelle Arbeitsverzeichnis:
    tar xzf istio-1.7.8-asm.10-win.zip

    Mit dem Befehl wird in Ihrem aktuellen Arbeitsverzeichnis istio-1.7.8-asm.10 ein Installationsverzeichnis erstellt, das Folgendes enthält:

    • Beispielanwendungen im Verzeichnis samples.
    • Das istioctl-Befehlszeilentool, das Sie zum Installieren von Anthos Service Mesh verwenden, befindet sich im Verzeichnis bin.
    • Die Anthos Service Mesh-Konfigurationsprofile befinden sich im Verzeichnis manifests/profiles.

  12. Prüfen Sie, ob Sie sich im Stammverzeichnis der Anthos Service Mesh-Installation befinden.
    cd istio-1.7.8-asm.10
  13. Fügen Sie die Tools der Einfachheit halber im Verzeichnis /bin Ihrem PATH hinzu.
    export PATH=$PWD/bin:$PATH

Ressourcenkonfigurationsdateien vorbereiten

Wenn Sie den Befehl istioctl install ausführen, geben Sie -f istio-operator.yaml in der Befehlszeile an. Diese Datei enthält Informationen zu Ihrem Projekt und Cluster, die Anthos Service Mesh erfordert. Sie müssen ein Paket mit istio-operator.yaml- und anderen Ressourcenkonfigurationsdateien herunterladen, um die Projekt- und Clusterinformationen festlegen zu können.

So bereiten Sie die Ressourcenkonfigurationsdateien vor:

Mesh CA

  1. Erstellen Sie ein neues Verzeichnis für die Ressourcenkonfigurationsdateien des Anthos Service Mesh-Pakets. Es empfiehlt sich, den Clusternamen als Verzeichnisnamen zu verwenden.

  2. Wechseln Sie zu dem Verzeichnis, in das Sie das Anthos Service Mesh-Paket herunterladen möchten.

  3. Laden Sie das Paket herunter:

    kpt pkg get \
    https://github.com/GoogleCloudPlatform/anthos-service-mesh-packages.git/asm@release-1.7-asm asm
    
  4. Legen Sie die Projekt-ID für das Projekt fest, in dem der Cluster erstellt wurde:

    kpt cfg set asm gcloud.core.project ${PROJECT_ID}
    
  5. Legen Sie die Projektnummer für das Flotten-Hostprojekt fest:

    kpt cfg set asm gcloud.project.environProjectNumber ${FLEET_PROJECT_NUMBER}
    
  6. Legen Sie den Clusternamen fest:

    kpt cfg set asm gcloud.container.cluster ${CLUSTER_NAME}
    
  7. Legen Sie die Standardzone oder -region fest:

    kpt cfg set asm gcloud.compute.location ${CLUSTER_LOCATION}
    
  8. Setzen Sie das Tag auf die Version des Anthos Service Mesh, das Sie installieren:

    kpt cfg set asm anthos.servicemesh.tag 1.7.8-asm.10
    
  9. Legen Sie den Validierungs-Webhook so fest, dass er ein Überarbeitungslabel verwendet:

    kpt cfg set asm anthos.servicemesh.rev asm-178-10
    

    Wenn Sie Anthos Service Mesh installieren, legen Sie ein Überarbeitungslabel auf istiod fest. Sie müssen für den Validierungs-Webhook dieselbe Überarbeitung festlegen.

  10. Da sich die Cluster in Ihrer Multi-Cluster-Konfiguration in verschiedenen Projekten befinden, müssen Sie die vertrauenswürdigen Domain-Aliasse für die anderen Projekte konfigurieren, die das Service Mesh mit mehreren Clustern oder mehreren Projekten bilden.

    1. Rufen Sie die Projekt-ID aller Cluster im Multi-Cluster-/Multi-Projekt-Mesh ab.

    2. Legen Sie für die Projekt-ID jedes Clusters die vertrauenswürdigen Domain-Aliase fest. Wenn Sie beispielsweise Cluster in drei Projekten haben, führen Sie den folgenden Befehl aus und ersetzen Sie PROJECT_ID_1, PROJECT_ID_2 und PROJECT_ID_3 durch die Projekt-ID jedes Clusters.

      kpt cfg set asm anthos.servicemesh.trustDomainAliases PROJECT_ID_1.svc.id.goog PROJECT_ID_2.svc.id.goog PROJECT_ID_3.svc.id.goog

      Wenn Sie die Cluster in den anderen Projekten konfigurieren, können Sie denselben Befehl verwenden.

      Mithilfe der vertrauenswürdigen Domain-Aliasse kann Mesh CA Arbeitslasten in Clustern in anderen Projekten authentifizieren. Zusätzlich zur Festlegung der vertrauenswürdigen Domain-Aliasse müssen Sie nach der Installation von Anthos Service Mesh das clusterübergreifende Load-Balancing aktivieren.

  11. Geben Sie die Werte der kpt-Setter aus:

    kpt cfg list-setters asm
    

    Die Ausgabe dieses Befehls sieht in etwa so aus:

                              NAME                                                       VALUE
    anthos.servicemesh.canonicalServiceHub               gcr.io/gke-release/asm/canonical-service-controller:1.7.8-asm.10
    anthos.servicemesh.controlplane.monitoring.enabled   true
    anthos.servicemesh.hub                               gcr.io/gke-release/asm
    anthos.servicemesh.hubMembershipID                   MEMBERSHIP_ID
    anthos.servicemesh.tag                               1.7.8-asm.10
    anthos.servicemesh.trustDomainAliases                [example-project-12345.svc.id.goog,example-project-23456.svc.id.goog,example-project-98765.svc.id.goog]
    base-dir                                             base
    gcloud.compute.location                              us-central
    gcloud.compute.network                               default
    gcloud.compute.subnetwork                            default
    gcloud.container.cluster                             example-cluster-1
    gcloud.container.cluster.clusterSecondaryRange
    gcloud.container.cluster.releaseChannel              REGULAR
    gcloud.container.cluster.servicesSecondaryRange
    gcloud.container.nodepool.max-nodes                  4
    gcloud.core.project                                  example-project-12345
    gcloud.project.environProjectID                      FLEET_PROJECT_ID
    gcloud.project.environProjectNumber                  1234567890123
    gcloud.project.projectNumber                         9876543210987

    Prüfen Sie, ob die Werte für die folgenden Setter korrekt sind:

    • anthos.servicemesh.rev
    • anthos.servicemesh.tag
    • anthos.servicemesh.trustDomainAliases
    • gcloud.compute.location
    • gcloud.container.cluster
    • gcloud.core.project
    • gcloud.project.environProjectNumber

    Sie können die Werte für die anderen Setter ignorieren.

Citadel

  1. Erstellen Sie ein neues Verzeichnis für die Ressourcenkonfigurationsdateien des Anthos Service Mesh-Pakets. Es empfiehlt sich, den Clusternamen als Verzeichnisnamen zu verwenden.

  2. Wechseln Sie zu dem Verzeichnis, in das Sie das Anthos Service Mesh-Paket herunterladen möchten.

  3. Laden Sie das Paket herunter:

    kpt pkg get \
    https://github.com/GoogleCloudPlatform/anthos-service-mesh-packages.git/asm@release-1.7-asm asm
    
  4. Legen Sie die Projekt-ID für das Projekt fest, in dem der Cluster erstellt wurde:

    kpt cfg set asm gcloud.core.project ${PROJECT_ID}
    
  5. Legen Sie die Projektnummer für das Flotten-Hostprojekt fest:

    kpt cfg set asm gcloud.project.environProjectNumber ${FLEET_PROJECT_NUMBER}
    
  6. Legen Sie den Clusternamen fest:

    kpt cfg set asm gcloud.container.cluster ${CLUSTER_NAME}
    
  7. Legen Sie die Standardzone oder -region fest:

    kpt cfg set asm gcloud.compute.location ${CLUSTER_LOCATION}
    
  8. Setzen Sie das Tag auf die Version des Anthos Service Mesh, das Sie installieren:

    kpt cfg set asm anthos.servicemesh.tag 1.7.8-asm.10
    
  9. Legen Sie den Validierungs-Webhook so fest, dass er ein Überarbeitungslabel verwendet:

    kpt cfg set asm anthos.servicemesh.rev asm-178-10
    
  10. Geben Sie die Werte der kpt-Setter aus:

    kpt cfg list-setters asm
    

    Die Ausgabe dieses Befehls sieht in etwa so aus:

                              NAME                                                       VALUE
    anthos.servicemesh.canonicalServiceHub               gcr.io/gke-release/asm/canonical-service-controller:1.7.8-asm.10
    anthos.servicemesh.controlplane.monitoring.enabled   true
    anthos.servicemesh.hub                               gcr.io/gke-release/asm
    anthos.servicemesh.hubMembershipID                   MEMBERSHIP_ID
    anthos.servicemesh.tag                               1.7.8-asm.10
    anthos.servicemesh.trustDomainAliases
    base-dir                                             base
    gcloud.compute.location                              us-central
    gcloud.compute.network                               default
    gcloud.compute.subnetwork                            default
    gcloud.container.cluster                             example-cluster-1
    gcloud.container.cluster.clusterSecondaryRange
    gcloud.container.cluster.releaseChannel              REGULAR
    gcloud.container.cluster.servicesSecondaryRange
    gcloud.container.nodepool.max-nodes                  4
    gcloud.core.project                                  example-project-12345
    gcloud.project.environProjectID                      FLEET_PROJECT_ID
    gcloud.project.environProjectNumber                  1234567890123
    gcloud.project.projectNumber                         9876543210987

    Prüfen Sie, ob die Werte für die folgenden Setter korrekt sind:

    • anthos.servicemesh.rev
    • anthos.servicemesh.tag
    • gcloud.compute.location
    • gcloud.container.cluster
    • gcloud.core.project
    • gcloud.project.environProjectNumber

    Sie können die Werte für die anderen Setter ignorieren.

Zu Anthos Service Mesh migrieren

Folgen Sie für die Migration von Istio dem Upgradeprozess für die duale Steuerungsebene (in der Istio-Dokumentation als Canary-Upgrades bezeichnet). Mit einem Upgrade der dualen Steuerungsebene installieren Sie eine neue Version der Steuerungsebene neben der vorhandenen Steuerungsebene. Fügen Sie bei der Installation der neuen Version das Label revision ein, das die Version der neuen Steuerungsebene angibt. Jede Überarbeitung ist eine vollständige Implementierung der Anthos Service Mesh-Steuerungsebene mit eigenem Deployment und Dienst.

Anschließend migrieren Sie zur neuen Version. Legen Sie dazu für Ihre Arbeitslasten dasselbe revision-Label fest, das auf die neue Steuerungsebene verweist, und führen Sie einen rollierenden Neustart durch, um die neue Anthos Service Mesh-Version in die Proxys einzufügen. Bei diesem Ansatz können Sie die Auswirkungen des Upgrades auf einen kleinen Prozentsatz Ihrer Arbeitslasten überwachen. Nachdem Sie Ihre Anwendung getestet haben, können Sie den gesamten Traffic zur neuen Version migrieren. Dieser Ansatz ist wesentlich sicherer als ein direktes Upgrade, bei dem eine neue Steuerungsebene die vorherige Version der Steuerungsebene ersetzt.

Steuerungsebene aktualisieren

Mesh CA

  1. Prüfen Sie, ob der aktuelle kubeconfig-Kontext auf den Cluster verweist, auf dem Sie Anthos Service Mesh installieren möchten:

    kubectl config current-context
    

    Die Ausgabe hat das folgende Format:

    gke_PROJECT_ID_CLUSTER_LOCATION_CLUSTER_NAME

    Der kubeconfig-Kontext und die Werte der kpt-Setter müssen übereinstimmen. Führen Sie bei Bedarf den Befehl gcloud container clusters get-credentials aus, um den aktuellen kubeconfig-Kontext festzulegen.

  2. Führen Sie den folgenden Befehl aus, um die neue Steuerungsebene mit dem Profil asm-gcp-multiproject bereitzustellen. Wenn Sie ein unterstütztes optionales Feature aktivieren möchten, fügen Sie in der folgenden Befehlszeile -f und den YAML-Dateinamen hinzu. Weitere Informationen finden Sie unter Optionale Features aktivieren.

    istioctl install \
      -f asm/istio/istio-operator.yaml \
      -f asm/istio/options/multiproject.yaml \
      -f asm/istio/options/multicluster.yaml\
      --revision=asm-178-10
    

    Mit dem Argument --revision wird istiod ein Überarbeitungslabel im Format istio.io/rev=asm-178-10 hinzugefügt. Das Überarbeitungslabel wird vom automatischen Sidecar-Injektor-Webhook verwendet, um eingefügte Sidecars mit einer bestimmten istiod-Überarbeitung zu verknüpfen. Wenn Sie die automatische Sidecar-Injektion für einen Namespace aktivieren möchten, müssen Sie ihn mit einer Überarbeitung versehen, die einer istiod-Bereitstellung entspricht.

    Mit den folgenden Dateien werden die Einstellungen in der Datei istio-operator.yaml überschrieben:

    • Mit der Datei multiproject.yaml wird das Profil asm-gcp-multiproject festgelegt.

    • Mit der Datei multicluster.yaml werden die Einstellungen konfiguriert, die Anthos Service Mesh für eine Konfiguration mit mehreren Clustern benötigt.

  3. Prüfen Sie, ob die Pods der Steuerungsebene in istio-system aktiv sind:

    kubectl get pods -n istio-system
    

    Beispielausgabe:

    NAME                                        READY   STATUS    RESTARTS   AGE
    istio-ingressgateway-c56675fcd-86zdn        1/1     Running   0          2m9s
    istio-ingressgateway-c56675fcd-vn4nv        1/1     Running   0          2m21s
    istiod-asm-178-10-6d5cfd4b89-xztlr           1/1     Running   0          3m44s
    istiod-fb7f746f4-wcntn                      1/1     Running   0          50m

    Zwei Deployments der Steuerungsebene und Dienste werden parallel ausgeführt.

  4. Stellen Sie den kanonischen Dienstüberwacher in Ihrem Cluster bereit:

    kubectl apply -f asm/canonical-service/controller.yaml

    Der kanonische Dienstüberwacher gruppiert Arbeitslasten, die zum selben logischen Dienst gehören. Weitere Informationen zu kanonischen Diensten finden Sie unter Kanonische Dienste.

Citadel

  1. Prüfen Sie, ob der aktuelle kubeconfig-Kontext auf den Cluster verweist, auf dem Sie Anthos Service Mesh installieren möchten:

    kubectl config current-context
    

    Die Ausgabe hat das folgende Format:

    gke_PROJECT_ID_CLUSTER_LOCATION_CLUSTER_NAME

    Der kubeconfig-Kontext und die Werte der kpt-Setter müssen übereinstimmen. Führen Sie bei Bedarf den Befehl gcloud container clusters get-credentials aus, um den aktuellen kubeconfig-Kontext festzulegen.

  2. Führen Sie den folgenden Befehl aus, um die neue Steuerungsebene mit dem Profil asm-gcp-multiproject bereitzustellen. Wenn Sie ein unterstütztes optionales Feature aktivieren möchten, fügen Sie in der folgenden Befehlszeile -f und den YAML-Dateinamen hinzu. Weitere Informationen finden Sie unter Optionale Features aktivieren.

    istioctl install \
      -f asm/istio/istio-operator.yaml \
      -f asm/istio/options/citadel-ca.yaml \
      -f asm/istio/options/multiproject.yaml \
      -f asm/istio/options/multicluster.yaml\
      --revision=asm-178-10
    

    Mit dem Argument --revision wird istiod ein Überarbeitungslabel im Format istio.io/rev=asm-178-10 hinzugefügt. Das Überarbeitungslabel wird vom automatischen Sidecar-Injektor-Webhook verwendet, um eingefügte Sidecars mit einer bestimmten istiod-Überarbeitung zu verknüpfen. Wenn Sie die automatische Sidecar-Injektion für einen Namespace aktivieren möchten, müssen Sie ihn mit einer Überarbeitung versehen, die einer istiod-Bereitstellung entspricht.

    Mit den folgenden Dateien werden die Einstellungen in der Datei istio-operator.yaml überschrieben:

    • Mit citadel-ca.yaml wird Citadel als Zertifizierungsstelle konfiguriert.

    • Mit der Datei multiproject.yaml wird das Profil asm-gcp-multiproject festgelegt.

    • Mit der Datei multicluster.yaml werden die Einstellungen konfiguriert, die Anthos Service Mesh für eine Konfiguration mit mehreren Clustern benötigt.

  3. Prüfen Sie, ob die Pods der Steuerungsebene in istio-system aktiv sind:

    kubectl get pods -n istio-system
    

    Beispielausgabe:

    NAME                                        READY   STATUS    RESTARTS   AGE
    istio-ingressgateway-c56675fcd-86zdn        1/1     Running   0          2m9s
    istio-ingressgateway-c56675fcd-vn4nv        1/1     Running   0          2m21s
    istiod-asm-178-10-6d5cfd4b89-xztlr           1/1     Running   0          3m44s
    istiod-fb7f746f4-wcntn                      1/1     Running   0          50m

    Zwei Deployments der Steuerungsebene und Dienste werden parallel ausgeführt.

  4. Stellen Sie den kanonischen Dienstüberwacher in Ihrem Cluster bereit:

    kubectl apply -f asm/canonical-service/controller.yaml

    Der kanonische Dienstüberwacher gruppiert Arbeitslasten, die zum selben logischen Dienst gehören. Weitere Informationen zu kanonischen Diensten finden Sie unter Kanonische Dienste.

Arbeitslasten neu bereitstellen

Die Installation der neuen Überarbeitung hat keine Auswirkungen auf die vorhandenen Sidecar-Proxys. Für ein Upgrade müssen Sie diese so konfigurieren, dass sie auf die neue Steuerungsebene verweisen. Dies wird während der Einfügung von Sidecar-Dateien mithilfe des Namespace-Labels istio.io/rev gesteuert.

  1. Aktualisieren Sie Arbeitslasten, die mit der neuen Anthos Service Mesh-Version eingefügt werden:

    kubectl label namespace NAMESPACE istio-injection- istio.io/rev=asm-178-10 --overwrite

    Das Label istio-injection muss entfernt werden, da es Vorrang vor dem Label istio.io/rev hat.

  2. Starten Sie die Pods neu, um das erneute Einfügen auszulösen:

    kubectl rollout restart deployment -n NAMESPACE
  3. Prüfen Sie, ob die Pods so konfiguriert sind, dass sie auf die Steuerungsebene istiod-asm-178-10 verweisen:

    kubectl get pods -n NAMESPACE -l istio.io/rev=asm-178-10

  4. Testen Sie die Anwendung, um zu prüfen, ob die Arbeitslasten ordnungsgemäß funktionieren.

  5. Wenn Sie Arbeitslasten in anderen Namespaces haben, wiederholen Sie die vorherigen Schritte für jeden Namespace.

  6. Wenn Sie sich sicher sind, dass Ihre Anwendung wie erwartet funktioniert, fahren Sie mit Migration abschließen fort. Andernfalls führen Sie die folgenden Schritte aus, um ein Rollback auf die vorherige Version durchzuführen:

    Für ein Rollback:

    1. Aktualisieren Sie Arbeitslasten, damit die vorherige Version der Steuerungsebene eingeschleust werden kann:

      kubectl label namespace NAMESPACE istio.io/rev- istio-injection=enabled --overwrite
    2. Starten Sie die Pods neu, um die erneute Injektion auszulösen, damit die Proxys die vorherige Version erhalten:

      kubectl rollout restart deployment -n NAMESPACE
    3. Stellen Sie die vorherige Version von istio-ingressgateway noch einmal bereit:

      kubectl -n istio-system rollout undo deploy istio-ingressgateway
      
    4. Entfernen Sie die neue Steuerungsebene:

      kubectl delete Service,Deployment,HorizontalPodAutoscaler,PodDisruptionBudget istiod-asm-178-10 -n istio-system --ignore-not-found=true
      

Migration abschließen

Wenn Sie mit der Anwendung zufrieden sind, führen Sie die folgenden Schritte aus, um die Migration zu Anthos Service Mesh abzuschließen:

  1. Entfernen Sie die alte Steuerungsebene:

    kubectl delete Service,Deployment,HorizontalPodAutoscaler,PodDisruptionBudget istiod -n istio-system --ignore-not-found=true
    

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.

Nächste Schritte