Umgebung einrichten und Upgrade vorbereiten

Bereiten Sie das Upgrade Ihrer vorherigen Installation von Knative Serving vor und migrieren Sie Ihre Arbeitslasten. Richten Sie dazu Ihre Befehlszeilenumgebung ein, erstellen Sie Umgebungsvariablen und laden Sie das Migrationsskript herunter.

Hinweise

  • Sie müssen zuerst prüfen, ob die Anforderungen erfüllt sind, bevor Sie ein Upgrade ausführen.

  • Standardmäßig enthält Cloud Shell die neuesten Versionen der gcloud- und kubectl-Befehle. Wenn Sie die Befehlszeilenumgebung Ihres lokalen Computers verwenden, müssen Sie die folgenden Mindestanforderungen erfüllen:

    • gcloud-Version 1.16.13 oder höher
    • kubectl-Clientversion 1.21 oder höher

    Weitere Informationen zum Einrichten von Befehlszeilentools

  • Die Vorbereitungsschritte auf dieser Seite sind für den gesamten Upgrade- und Migrationsprozess erforderlich.

    Wichtig: Alle Befehle, die während des Prozesses verwendet werden, basieren auf den unten festgelegten Umgebungsvariablen. Wenn Sie beispielsweise Cloud Shell schließen oder das Zeitlimit Ihrer Sitzung überschritten wird, müssen Sie dafür sorgen, dass die erforderlichen Umgebungsvariablen zurückgesetzt werden.

Richten Sie Ihre Umgebung ein.

  1. Öffnen Sie Cloud Shell in der Google Cloud Console, um Cloud Shell zu verwenden:

    Cloud Shell aktivieren

    Wichtig: Für Cloud Shell gelten Nutzungslimits und es kann eine Zeitüberschreitung auftreten. Wenn Ihre Sitzung das Zeitlimit überschreitet, müssen Sie dafür sorgen, dass die erforderlichen Umgebungsvariablen zurückgesetzt werden.

  2. Erstellen Sie die folgenden erforderlichen Umgebungsvariablen:

    1. Legen Sie Variablen für Ihre Google Cloud-Projekt und die Clusterdetails fest:

      export PROJECT_ID=PROJECT_ID
      export CLUSTER_NAME=CLUSTER_NAME
      export CLUSTER_LOCATION=CLUSTER_LOCATION
      

      Ersetzen Sie Folgendes:

      • PROJECT_ID durch die ID Ihres Google Cloud-Projekts.
      • CLUSTER_NAME durch die ID Ihres Clusters oder die voll qualifizierte ID für den Cluster.
      • CLUSTER_LOCATION durch die Region oder Zone, in der sich der Cluster befindet.
    2. Abhängig von Ihrer Konfiguration müssen Sie das Ingress-Gateway identifizieren, das den Traffic in Ihrem Cluster verarbeitet. Es ist wichtig zu ermitteln, welche Version von Istio tatsächlich konfiguriert ist und Traffic bereitstellt.

      • Wenn Sie die gebündelte Version von Istio verwenden, prüfen Sie, ob der Name des Ingress-Dienstes im Namespace gke-system so lautet: istio-ingress.

        kubectl get svc istio-ingress -n gke-system
        

        Ergebnis: Die Details Ihrer Konfiguration werden zurückgegeben.

      • Wenn Sie das Istio-Add-on installiert haben, müssen Sie ermitteln, welches Ingress-Gateway konfiguriert ist und den Traffic aktiv verarbeitet, indem Sie die IP-Adressen der Dienste abrufen und ermitteln, welche davon für Ihre Domain konfiguriert ist.

        1. Rufen Sie für jeden Ingress-Dienst die EXTERNAL-IP-Adresse ab:

          Führen Sie die folgenden Befehle aus, um die Konfigurationsdetails der Ingress-Dienste der gebündelten Version von Istio (istio-ingress) und des Istio Add-ons (istio-ingressgateway) abzurufen:

          kubectl get svc istio-ingress -n gke-system
          kubectl get svc istio-ingressgateway -n istio-system
          

          Beispielausgabe:

          Notieren Sie sich für jeden Dienst den Wert von EXTERNAL-IP.

           NAME                 TYPE         CLUSTER-IP  EXTERNAL-IP    PORT(S)                                     AGE
           istio-ingress        LoadBalancer 11.11.1.111 12.345.678.910 15020:31265/TCP,80:30059/TCP,443:32004/TCP  8d
          
           NAME                 TYPE         CLUSTER-IP  EXTERNAL-IP    PORT(S)                                                                     AGE
           istio-ingressgateway LoadBalancer 22.22.2.222 10.987.654.321 15021:32747/TCP,80:30695/TCP,443:32695/TCP,15012:32369/TCP,15443:30909/TCP  88d
          
        2. Ermitteln Sie, über den DNS-Eintrag Ihrer benutzerdefinierten Domain, welche externe IP-Adresse für die Verarbeitung von Traffic konfiguriert ist:

          1. Rufen Sie die Seite „Knative Serving-Domainzuordnungen“ auf:

            Zu "Domainzuordnungen"

          2. Klicken Sie auf das Dreipunkt-Menü rechts neben Ihrem Dienst und dann auf DNS-EINTRÄGE, um alle DNS-Einträge aufzurufen:

            DNS-Einträge auswählen

            Im obigen Beispiel wird das Istio-Add-on-Ingress-Gateway verwendet und Traffic bereitgestellt, wenn die DNS-Eintragskonfiguration auf die IP-Adresse 10.987.654.321 des istio-ingressgateway-Dienstes festgelegt ist.

    3. Legen Sie Variablen für den Namen und den Namespace des Ingress-Dienstes fest, der Traffic für Ihren Cluster bereitstellt:

      export INGRESS_NAME=INGRESS_NAME
      export INGRESS_NAMESPACE=INGRESS_NAMESPACE
      

      Ersetzen Sie Folgendes:

      • INGRESS_NAME durch den Namen des Dienstes für eingehenden Traffic, den Sie im vorherigen Schritt identifiziert haben.

      • INGRESS_NAMESPACE durch den Namespace des Ingress-Dienstes, den Sie im vorherigen Schritt identifiziert haben.

  3. Google Cloud CLI konfigurieren:

    gcloud config set project ${PROJECT_ID}
    gcloud container clusters get-credentials ${CLUSTER_NAME} --region ${CLUSTER_LOCATION}
    
  4. Für private Cluster:

    • Wenn Sie bereits Zugriff auf Ihren privaten Cluster über den Client haben, auf dem Sie das Migrationsskript ausführen, können Sie mit dem nächsten Schritt fortfahren.

    • Wenn für Ihren privaten Cluster master-authorized-network aktiviert ist, können Sie den Zugriff über den Client aktivieren, auf dem Sie das Migrationsskript ausführen. Fügen Sie dazu die IP-Adresse des Clients in die Zulassungsliste master-authorized-networks ein:

      gcloud container clusters update ${CLUSTER_NAME} \
          --region=${CLUSTER_LOCATION} \
          --enable-master-authorized-networks \
          --master-authorized-networks $(curl ifconfig.me)/32
      
  5. Laden Sie das Migrationsskript für Knative Serving herunter:

    TMP_DIR=$(mktemp -d)
    gcloud storage cp gs://crfa-to-hub-upgrade/migration-addon.sh $TMP_DIR
    cd $TMP_DIR
    chmod +x ./migration-addon.sh
    
  6. Führen Sie den folgenden Befehl aus, um die Skalierung auf null zu deaktivieren. Andernfalls schlägt die Skalierung fehl und führt zu Fehlern, wenn der Master-Knoten aktualisiert wird:

    kubectl patch cm config-autoscaler -n knative-serving -p '{"data":{"enable-scale-to-zero": "false"}}'
    

    Beachten Sie, dass der letzte Schritt in diesem Upgrade- und Migrationsprozess darin besteht, die Skalierung auf null wieder zu aktivieren.

Nächste Schritte

GKE-Add-on deinstallieren