Knative serving フリート コンポーネントをインストールする

GKE Enterprise フリート コンポーネントとして Knative serving をインストールします。

始める前に

概要

Knative serving をフリート コンポーネントとしてインストールする流れは次のとおりです。

  1. Google Cloud プロジェクトでフリートを有効にする。
  2. gke-system-gateway Gateway を knative-ingress-gateway Gateway にコピーする。
  3. Knative serving カスタム リソースをクラスタにインストールする。

このプロセス中、既存の Knative serving サービスは、中断することなくサービス トラフィックを処理し続けます。

Knative serving フリート コンポーネントをインストールする

このセクションでは、移行スクリプトを使用して、フリート コンポーネントとして機能する Knative serving をインストールします。

  1. 次のコマンドを実行して、移行スクリプトを開始します。

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

    このステップで問題が発生した場合や、変更を行う場合は、この移行スクリプト コマンドを再実行できます。

  2. アクションの実行を確認するメッセージがターミナルに表示されます。各プロンプトで「y」と入力して続行します。

    Knative serving フリート コンポーネントをインストールするプロセスのメッセージは、次のようになります。

    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
    

    限定公開クラスタの既知の問題

    Knative serving を Google Cloud の限定公開クラスタにインストールすると、次のようなタイムアウト エラーが発生することがあります。

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

    このタイムアウト エラーを回避するには、次のコマンドを実行します。

    cat <<EOF | kubectl apply -f -
    apiVersion: operator.run.cloud.google.com/v1alpha1
    kind: CloudRun
    metadata:
      name: cloud-run
    EOF
    
  3. Knative serving 機能コンポーネントが有効になっていることを確認します。

    コンソール

    Google Cloud コンソールで Knative serving コンポーネントが有効になっているかどうかを確認します。

    機能マネージャーに移動

    コマンドライン

    appdevexperience の状態が ACTIVE であるかどうかを確認します。

    gcloud alpha container hub features list  --project=PROJECT_ID
    

    PROJECT_ID は、Google Cloud プロジェクトの ID に置き換えます。

    詳細とその他のオプションについては、gcloud alpha container hub features list をご覧ください。

次のステップ

Cloud Service Mesh と Knative serving がインストールされたので、新しいリソースへのトラフィックの移行とロールアウトを開始できます。

ロールバック

上記手順での変更をロールバックする必要がある場合は、移行スクリプトで次のことを行います。

  • Knative serving リソースの制御を appdevexperience-operator オペレーターから削除します。
  • Knative serving カスタム リソースを削除し、appdevexperience-operator オペレーターをアンインストールします。
  • 省略可: Google Cloud プロジェクトのフリートで Knative serving を無効にします。

ロールバック プロセスを開始するには:

  1. 次のコマンドを実行して、移行スクリプトを開始します。

    ./migration-addon.sh --command rollback-install-cloud-run-v2
    
  2. アクションの実行を確認するメッセージがターミナルに表示されます。各プロンプトで「y」と入力して続行します。

    フリート コンポーネントをアンインストールするプロセスのメッセージは次のようになります。

    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