Diese Seite wurde von der Cloud Translation API übersetzt.
Switch to English

Upgrade auf Istio 1.6 mit Operator durchführen

Ab Version 1.6 verwendet das Add-on „Istio on Google Kubernetes Engine“ den Istio-Operator für die Installation und Konfiguration. Der Istio-Operator entspricht dem Operatormuster für Kubernetes. Mit dem Operator können Sie Istio konfigurieren. Definieren Sie dazu eine benutzerdefinierte Ressourcendefinition von Kubernetes für die Istio-Installation. Der Operator verwendet dann einen Controller, um die Installation an die benutzerdefinierte Ressource anzupassen.

Wenn Sie Ihren Cluster auf Version 7.17.17-gke.3100+, 1.18.16-gke.1600+ oder 1.19.8-gke.1600+ aktualisieren, werden zusammen mit der Istio 1.6-Operator und -Steuerungsebene ebenfalls installiert.Die vorhandene Steuerungsebene von Istio.1.4 Das Upgrade erfordert eine Nutzeraktion und verwendet Revisionen, um Ihre Arbeitslasten auf die neue Steuerungsebene zu migrieren. Mit einem rollenbasierten Upgrade migrieren Sie zur Version 1.6, indem Sie ein Label auf Ihren Arbeitslasten festlegen, das auf die neue Steuerungsebene verweist, und einen Rolling Neustart durchführen.

Wir veröffentlichen keine 1,5-Version des Istio on Add-ons von Google Kubernetes Engine. Version 1.6 ist die Version, die nach 1.4.10 veröffentlicht wird.

Vorteile des Istio Operator

Der Operator ermöglicht eine bessere Konfigurierbarkeit der Installation. In Versionen des Add-Ons vor 1.6 gleicht der GKE-Add-On-Manager alle Änderungen am Istio-Manifest ab und verhindert die meisten Arten von Konfigurationsänderungen. Für den Istio Operator gilt diese Einschränkung nicht. Der Operator generiert ein Istio-Installationsmanifest auf der Basis der benutzerdefinierten Istio-Ressource (CR), das Sie während der Installation bereitstellen. Diese CR befindet sich unter Ihrer Kontrolle und wird nie abgeglichen.

Nach dem Upgrade auf Istio 1.6 mit dem Operator können Sie vom Add-on "Istio on GKE" zur Open-Source-Version von Istio oder zu Anthos Service Mesh migrieren.

Upgrade auf Istio 1.6 mit Operator durchführen

Sie müssen diese Schritte nur einmal ausführen, um auf den Operator umzustellen. Nachfolgende Upgrades folgen dem Upgrade-Prozess der dualen Steuerungsebene.

  1. Wählen Sie eine GKE-Version aus, die Istio 1.6 (1.17.17-gke.3100+, 1.18.16-gke.1600+, 1.19.8-gke.1600+) enthält, und aktualisieren Sie Ihren Cluster.

    Das Add-on „Istio on Google Kubernetes Engine“ mit Istio 1.6 installiert zwei Versionen von Istio:

    • Die statische Manifestversion, die vom Add-on-Manager gesteuert wird (die nach dem Upgrade des Clusters aktiv ist).

    • Die vom Operator gesteuerte Version 1.6 (die bis zur Aktivierung inaktiv ist). Die inaktive Version 1.6 stellt keine Verbindung zu Proxys her und nutzt keine verhandelbaren Clusterressourcen.

    Wenn sich die aktuell installierte Version von Istio von der Version im statischen Zielmanifest unterscheidet, führt das Upgrade des Clusters möglicherweise auch ein direktes Upgrade von Istio durch. Wenn in Ihrem Cluster derzeit Istio 1.6.6-gke.0 ausgeführt wird und Sie die GKE-Clusterversion 1.17.7-gke.3100 auswählen, wird die Istio-Steuerungsebene auf 1.4.10-gke aktualisiert.0 (oder höher) im Rahmen des Upgrades.

    Führen Sie den folgenden Befehl aus, um zu prüfen, ob die Clusterversion aktuell genug ist:

    kubectl get ns istio-system --show-labels | if [[ $(grep EnsureExists) ]];
    then echo "Version is recent enough"; else echo "Need more recent version"; fi
    

    Die Konsolenausgabe gibt an, ob die Clusterversion aktuell genug ist.

  2. Laden Sie das Skript upgrade-14-16 herunter:

    curl -LO https://storage.googleapis.com/csm-artifacts/asm/upgrade-14-16
    

    Sie können sich das Skript auf GitHub ansehen.

  3. Machen Sie das Skript ausführbar:

    chmod +x upgrade-14-16
    
  4. Achten Sie darauf, dass kubectl für den Cluster konfiguriert ist, der aktualisiert werden soll.

    gcloud container clusters get-credentials cluster-name
    

    Dabei ist cluster-name der Name des Clusters.

  5. Führen Sie das Skript aus:

    ./upgrade-14-16
    

    Das Skript führt Sie durch den Migrationsprozess für einen einzelnen Cluster.

  6. Führen Sie das Tool mit dem Flag --reset aus, um einen weiteren Cluster zu migrieren:

    ./upgrade-14-16 --reset
    

    Wiederholen Sie anschließend die Schritte 4 und 5.

Zu Anthos Service Mesh migrieren

Vor der Migration zu Anthos Service Mesh müssen Sie den Operator wie unten beschrieben deaktivieren. Nach der Migration konfigurieren Sie das Service Mesh weiterhin im selben IstioOperator-CR-Format wie der Operator. Sie tun dies jedoch mit dem Befehl istioctl install, wenn Sie den installierten Status ändern möchten, anstatt dass der Operator-Controller die IstioOperator-CR im Cluster kontinuierlich beobachtet.

Für die Migration zu Anthos Service Mesh verwenden Sie ein von Google bereitgestelltes Skript namens install_asm zur Migration zu Anthos Service Mesh 1.7. Das Skript install_asm verarbeitet alle Details zur Vorbereitung Ihres Cloud-Projekts und -Clusters und installiert dann Anthos Service Mesh mithilfe der Anthos Service Mesh-Version von istioctl install.

Voraussetzungen

Achten Sie darauf, dass Ihr Cluster die folgenden Anforderungen erfüllt:

  • Ein Maschinentyp mit mindestens vier vCPUs, z. B. e2-standard-4. Wenn der Maschinentyp für Ihren Cluster nicht mindestens vier vCPUs hat, ändern Sie den Maschinentyp, wie unter Arbeitslasten zu anderen Maschinentypen migrieren beschrieben.

  • Die Mindestanzahl an Knoten hängt vom Maschinentyp ab. Anthos Service Mesh erfordert mindestens acht vCPUs. Wenn der Maschinentyp vier vCPUs hat, muss der Cluster mindestens zwei Knoten haben. Wenn der Maschinentyp acht vCPUs umfasst, benötigt der Cluster nur einen Knoten. Informationen zum Hinzufügen von Knoten finden Sie unter Größe eines Clusters anpassen.

  • Das Skript aktiviert Workload Identity in Ihrem Cluster. Workload Identity ist die empfohlene Methode zum Aufrufen von Google APIs. Wenn Sie Workload Identity aktivieren, ändert sich die Art und Weise, wie Aufrufe Ihrer Arbeitslasten an Google APIs gesichert werden. Weitere Informationen hierzu finden Sie unter Einschränkungen bei Workload Identity.

  • Für die Aufnahme in das Service Mesh müssen Dienstports benannt werden und der Name muss das Protokoll des Ports in der folgenden Syntax enthalten: name: protocol[-suffix], wobei die eckigen Klammern ein optionales Suffix angeben, das mit einem Bindestrich beginnen muss. Weitere Informationen finden Sie unter Dienstports benennen.

  • Wenn Sie Anthos Service Mesh in einem privaten Cluster installieren, müssen Sie Port 15017 in der Firewall öffnen, damit der Webhook mit automatischer Sidecar-Einfügung ordnungsgemäß funktioniert. Weitere Informationen finden Sie unter Port auf einem privaten Cluster öffnen.

  • Wenn Sie in Ihrer Organisation einen Dienstperimeter erstellt haben, müssen Sie möglicherweise den Mesh CA-Dienst dem Perimeter hinzufügen. Weitere Informationen finden Sie unter Mesh CA einem Dienstperimeter hinzufügen.

Migration planen

Informationen zur Planung der Migration finden Sie unter Migration von Istio vorbereiten.

Operator deaktivieren

Um zu verhindern, dass der Operator das von Anthos Service Mesh installierte istio-ingressgateway abgleichen kann, müssen Sie den Operator deaktivieren.

So deaktivieren Sie den Operator:

  1. Rufen Sie die Operator-Version ab:

    kubectl get istiooperators -n istio-system
    

    Die Ausgabe sieht etwa so aus:

    NAME                        REVISION     STATUS    AGE
    istio-1-6-11-gke-0          istio-1611   HEALTHY   12h

    In der Beispielausgabe lautet die Operator-Version istio-1-6-11-gke-0.

  2. Operator deaktivieren. Ersetzen Sie im folgenden Befehl VERSION durch die Operator-Version aus dem vorherigen Schritt:

    kubectl patch -n istio-system istiooperator VERSION -p '{"spec":{"profile":"disabled"}}' --type=merge
    

    Mit diesem Befehl wird der Operator daran gehindert, Änderungen am Cluster vorzunehmen.

Zu Anthos Service Mesh migrieren

In diesem Abschnitt wird beschrieben, wie Sie mit dem Skript install_asm zu Anthos Service Mesh 1.7 migrieren.

  1. Wählen Sie eine Zertifizierungsstelle aus.

  2. Installieren Sie die erforderlichen Tools.

  3. Laden Sie das install_asm-Skript herunter.

  4. Überprüfen Sie die Optionen und Flags des Skripts.

    Die folgenden Beispiele zeigen, wie Sie mit Ihrer ausgewählten Zertifizierungsstelle die Verbindung zu Anthos Service Mesh migrieren. und zu Anthos Service Mesh mit Mesh-CA zu migrieren.

    Citadel

    Wenn Sie nach der Migration zu Anthos Service Mesh weiterhin Citadel verwenden möchten, gehen Sie so vor:

    ./install_asm \
      --project_id PROJECT_ID \
      --cluster_name CLUSTER_NAME\
      --cluster_location CLUSTER_LOCATION \
      --mode migrate \
      --output_dir DIR_PATH  \
      --ca citadel \
      --enable_apis
    

    Mesh CA

    So migrieren Sie bei der Migration zu Anthos Service Mesh zu Mesh-CA:

    ./install_asm \
      --project_id PROJECT_ID \
      --cluster_name CLUSTER_NAME\
      --cluster_location CLUSTER_LOCATION \
      --mode migrate \
      --output_dir DIR_PATH  \
      --ca mesh_ca \
      --enable_apis
    

    Anthos Service Mesh 1.7 stellt auch über GitHub verfügbare Overlay-Dateien für häufig genutzte Funktionen bereit, z. B. die Aktivierung des Egress-Gateways. Weitere Informationen finden Sie unter Optionale Funktionen aktivieren.

  5. Damit die Einrichtung von Anthos Service Mesh abgeschlossen werden kann, müssen Sie die automatische Sidecar-Injektion aktivieren und die Arbeitslasten (noch einmal) bereitstellen.

Nach der Migration

Führen Sie den folgenden Befehl aus und ersetzen Sie VERSION durch die Operator-Version, die Sie zuvor zum Deaktivieren des Operators verwendet haben:

kubectl patch -n istio-system istiooperator VERSION -p '{"spec":{"profile":"empty"}}'

Mit diesem Befehl wird der Operator mit einem empty-Profil wieder aktiviert. Dadurch werden die zuvor aus dem Cluster installierten Ressourcen entfernt. Dies umfasst nicht die Gateways oder Steuerungsebenenelemente, die vom Skript install_asm installiert wurden.