Flottenkomponente für die Bereitstellung von Knative installieren

Installieren Sie Knative, das als Flottenkomponente für GKE Enterprise bereitgestellt wird.

Hinweise

Überblick

Die Installation von Knative als Flottenkomponente umfasst:

  1. Flotten im Google Cloud-Projekt werden aktiviert.
  2. gke-system-gateway-Gateway in das knative-ingress-gateway-Gateway kopieren
  3. Die benutzerdefinierte Ressource für die Bereitstellung von Knative im Cluster installieren

Beachten Sie, dass der Traffic für die vorhandenen Knative-Bereitstellungsdienste während dieses Vorgangs ohne Unterbrechung weiterläuft.

Flottenkomponente für die Bereitstellung von Knative installieren

In diesem Abschnitt wird das Migrationsskript verwendet, um Knative zu installieren, das als Flottenkomponente bereitgestellt wird.

  1. Starten Sie das Migrationsskript mit dem folgenden Befehl:

    ./migration-addon.sh --command install-cloud-run-v2
    

    Wenn Sie bei diesem Schritt Probleme haben oder etwas ändern möchten, können Sie diesen Migrationsskriptbefehl noch einmal ausführen.

  2. Im Terminal werden Sie vom Migrationsskript aufgefordert, jede Aktion zu bestätigen. Geben Sie bei jeder Eingabeaufforderung y ein, um fortzufahren.

    Die Aufforderungen während der Installation der Flottenkomponente von Knative sehen in etwa so aus:

    In the process of installing the Knative serving fleet component, the
    script performs the following:
    1. Enabling the fleet in your Google Cloud project.
    2. Copy gke-system-gateway Gateway to knative-ingress-gateway Gateway
    3. Installing the Knative serving custom resource in your cluster.
    Continue? [Y/n] y
    
    1. Enabling Anthos services?
    Continue? [Y/n] y
    
    Operation "operations/acf.p2-625914735451-10d4b6ff-68e1-4a09-97c4-79b209be5031" finished successfully.
    
    2. Copying gke-system-gateway Gateway to knative-ingress-gateway Gateway
    
    configmap/original-knative-ingress-gateway-spec unchanged
    gateway.networking.istio.io/knative-ingress-gateway patched (no
    change)
    configmap/config-istio patched
    configmap/config-istio patched
    gateway.networking.istio.io "gke-system-gateway" deleted
    
    3. Install the Knative serving custom resource in your cluster?
    Continue? [Y/n] y
    
    Waiting for Knative serving feature to be enabled
    Knative serving feature is enabled.
    The YAML file for the new operator appdevexperience-operator was created at
    /tmp/tmp.bI7H1qagGa/cloudrun.yaml
    customresourcedefinition.apiextensions.k8s.io/cloudruns.operator.run.cloud.google.com
    condition met
    kubeconfig entry generated for my-gke-cluster.
    Added the custom resource for Knative serving
    
    Waiting for Knative serving serving to be ready...
    Knative serving serving is not ready yet.
    Knative serving serving is ready.
    
    Removing the ValidatingWebhookConfiguration used to prevent deletion
    validatingwebhookconfiguration.admissionregistration.k8s.io
    "prevent-deletion-cloud-run-resources" deleted
    
    Knative serving has been installed as an Anthos fleet component
    

    Bekanntes Problem für private Cluster

    Wenn sich die Installation von Knative in einem privaten Cluster in Google Cloud befindet, erhalten Sie möglicherweise einen Zeitüberschreitungsfehler aus folgenden Gründen:

    Waiting for CRD cloudruns.operator.run.cloud.google.com to be created
    

    Führen Sie den folgenden Befehl aus, um den Zeitüberschreitungsfehler zu umgehen:

    cat <<EOF | kubectl apply -f -
    apiVersion: operator.run.cloud.google.com/v1alpha1
    kind: CloudRun
    metadata:
      name: cloud-run
    EOF
    
  3. Prüfen Sie, ob die Komponente für die Bereitstellung von Knative aktiviert ist:

    Console

    Prüfen Sie in der Google Cloud Console, ob die Knative-Bereitstellungskomponente Aktiviert ist:

    Zu den GKE Enterprise-Features

    Befehlszeile

    Prüfen Sie, ob der appdevexperience-Zustand ACTIVE lautet:

    gcloud alpha container hub features list  --project=PROJECT_ID
    

    Ersetzen Sie PROJECT_ID durch die ID Ihres Google Cloud-Projekts.

    Weitere Informationen und zusätzliche Optionen finden Sie unter gcloud alpha container hub features list.

Nächste Schritte

Nachdem Anthos Service Mesh und die Bereitstellung Knative installiert sind, können Sie mit dem Migrieren und Roll-out von Traffic zu Ihren neuen Ressourcen beginnen.

Rollback

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

  • Entfernen Sie die Kontrolle über Ihre Knative-Bereitstellungsressourcen durch den Operator appdevexperience-operator.
  • Löschen Sie die benutzerdefinierte Knative-Bereitstellungsressource und deinstallieren Sie den Operator appdevexperience-operator.
  • Optional: Deaktivieren Sie die Bereitstellung von Knative in der Flotte Ihres Google Cloud-Projekts.

So starten Sie den Rollback-Prozess:

  1. Starten Sie das Migrationsskript mit dem folgenden Befehl:

    ./migration-addon.sh --command rollback-install-cloud-run-v2
    
  2. Im Terminal werden Sie vom Migrationsskript aufgefordert, jede Aktion zu bestätigen. Geben Sie bei jeder Eingabeaufforderung y ein, um fortzufahren.

    Die Aufforderungen zum Deinstallieren der Flottenkomponente sehen in etwa so aus:

    In the step of rolling back the Knative serving fleet installation, the
    script performs the following:
    1. Remove control of Knative serving resources from the operator
       `appdevexperience-operator`.
    2. Delete the Knative serving custom resource and uninstall the operator
       `appdevexperience-operator`.
    3. Revert the changes installed by the Knative serving fleet component.
    4. Optional: Disable Knative serving in the GKE Enterprise fleet of your
       Google Cloud project.
    Continue? [Y/n] y
    
    1. Removing control of Knative serving resources from the operator
       `appdevexperience-operator`.
    
    Creating a ValidatingWebhookConfiguration to prevent the deletion of the
    resources under the following namespaces:
    knative-serving, cloud-run-system, and gke-system
    
    waiting for OwnerReferences of Knative serving resources to be deleted
    
    OwnerReferences of Knative serving resources are deleted
    
    Waiting for Knative serving serving to be ready...
    Knative serving serving is ready.
    
    2. Delete the Knative serving custom resource and uninstall the operator
       `appdevexperience-operator`?
    Continue? [Y/n] y
    
    cloudrun.operator.run.cloud.google.com "cloud-run" deleted
    clusteractiveoperand.operand.run.cloud.google.com/sha256-3c1c80a329 patched
    
    waiting for appdevexperience namespace to be deleted
    
    3. Revert the changes installed by the fleet component?
    configmap/config-observability patched
    
    4. Optional: Disable Knative serving in the Anthos fleet of your
       Google Cloud project?
       You can choose to skip this step and keep the feature enable within your
       Anthos fleet. For example, you might want to keep the
       Knative serving fleet component enabled because it was enabled prior to
       this migration.
    Continue (or Skip)? [Y/n] n