Gebündeltes Istio zu Cloud Service Mesh migrieren

Diese Schritte gelten speziell für die gebündelte Version von Istio, die standardmäßig in der Knative Serving-Bereitstellung GKE-Add-on enthalten ist.

Da die gebündelte Version von Istio bei der Deinstallation des Knative-Serving-GKE-Add-ons deinstalliert wird, installieren die Schritte auf dieser Seite Cloud Service Mesh auf Ihrem Cluster und konfigurieren dann Ihr Ingress-Gateway.

Hinweise

Übersicht

Im Allgemeinen ist der Vorgang zur Installation von Cloud Service Mesh bei der Migration von der gebündelten Version von Istio mit dem Vorgang einer sauberen Installation von Cloud Service Mesh identisch. Bei diesem Prozess wird Cloud Service Mesh Version 1.18 mit der clusterinternen Steuerungsebene installiert.

Cloud Service Mesh Version 1.18 installieren

Sie installieren Cloud Service Mesh mithilfe der Cloud Service Mesh-Installationsdokumentation.

Hinweis:

  • Für die Migration muss das Ingress-Gateway während der nachfolgenden Konfigurationsschritte separat installiert werden. Das Installationsskript installiert das Ingress-Gateway nicht standardmäßig.

  • Optional: Wenn Sie die Cloud Service Mesh-Zertifizierungsstelle (Mesh CA) verwenden, müssen Sie auch das Flag --ca mesh_ca in das Installationsskript für Cloud Service Mesh einbeziehen.

So installieren Sie Cloud Service Mesh:

Folgen Sie der Anleitung in der Cloud Service Mesh-Dokumentation: Cloud Service Mesh-Version 1.18 installieren

Beispiel

Das folgende Beispiel zeigt den Standardbefehl, der das erforderliche Flag enthält:

./asmcli install \
  --project_id ${PROJECT_ID} \
  --cluster_name ${CLUSTER_NAME} \
  --cluster_location ${CLUSTER_LOCATION} \
  --ca mesh_ca \
  --output_dir DIR_PATH \
  --enable_all

Cloud Service Mesh-Ingress konfigurieren

In diesem Abschnitt wird das Migrationsskript verwendet, um das Cloud Service Mesh-Ingress-Gateway im Namespace gke-system zu erstellen.

Für die Migration wird der Namespace gke-system verwendet, sodass das Ingress-Gateway in dem Namespace platziert wird, der vom kürzlich entfernten "gebündelten Istio" verwendet wurde. Daher können die Cloud Service Mesh-Ingress-Pods nahtlos Traffic ohne die erforderlichen Konfigurationsänderungen am Ingress-Dienst übernehmen. Beispielsweise müssen Sie keine neue externe IP-Adresse konfigurieren.

  1. Führen Sie den folgenden Befehl aus, um das Ingress-Gateway im Namespace gke-system zu erstellen, um das Migrationsskript zu starten:

    ./migration-addon.sh --command set-up-asm-ingress
    

    Die Terminalausgabe während des Prozesses sieht in etwa so aus:

    Setting up Cloud Service Mesh ingress. Note that the Cloud Service Mesh ingress is not
    serving traffic at this step.
    namespace/gke-system labeled
    deployment.apps/istio-ingressgateway created
    horizontalpodautoscaler.autoscaling/istio-ingressgateway created
    role.rbac.authorization.k8s.io/istio-ingressgateway-sds created
    rolebinding.rbac.authorization.k8s.io/istio-ingressgateway-sds created
    Cloud Service Mesh ingress is successfully installed.
    
  2. Prüfen Sie mit dem folgenden Befehl, ob das Ingress-Gateway istio-ingrerssgateway im Namespace gke-system ausgeführt wird:

    kubectl get deployment istio-ingressgateway -n gke-system
    

    Beachten Sie, dass die Anzahl der istio-ingressgateway-Pods absichtlich 0 ist. Nach der Installation der Knative Serving-Flottenkomponente gibt es einen nachfolgenden Schritt, um den gesamten Traffic zum Cloud Service Mesh-Ingress zu migrieren.

Nächste Schritte

Flottenkomponente installieren

Rollback

Wenn Sie ein Rollback der vorhergehenden Schritte durchführen müssen, können Sie das Migrationsskript für Folgendes verwenden:

  • Löschen Sie das Cloud Service Mesh-Ingress-Gateway.
  • Deinstallieren Sie Cloud Service Mesh.

So führen Sie ein Rollback der Cloud Service Mesh-Konfiguration und -Installation durch:

  1. Führen Sie den folgenden Befehl aus, um das Rollback zu starten.

    ./migration-addon.sh --command rollback-set-up-asm-ingress
    

    Die Terminalausgabe während des Prozesses sieht in etwa so aus:

    Deleting Cloud Service Mesh ingress
    deployment.apps "istio-ingressgateway" deleted
    horizontalpodautoscaler.autoscaling "istio-ingressgateway" deleted
    role.rbac.authorization.k8s.io "istio-ingressgateway-sds" deleted
    rolebinding.rbac.authorization.k8s.io "istio-ingressgateway-sds" deleted
    Cloud Service Mesh ingress is successfully deleted.
    
  2. Prüfen Sie, ob das Cloud Service Mesh-Ingress-Gateway entfernt wurde. Prüfen Sie dazu, ob der istio-ingressgateway-Dienst nicht mehr im Namespace gke-system vorhanden ist:

    kubectl get deployment istio-ingressgateway -n gke-system
    
  3. Cloud Service Mesh deinstallieren

  4. Wenn Sie alle Änderungen der ursprünglichen Installation weiterhin rückgängig machen möchten, führen Sie ein Rollback des Knative Serving-GKE-Add-on durch.