将 Knative serving 作为 GKE Enterprise 舰队组件安装。
准备工作
概览
将 Knative serving 作为舰队组件安装包括:
- 在 Google Cloud 项目中启用舰队。
- 将
gke-system-gateway
网关复制到knative-ingress-gateway
网关。 - 在集群中安装 Knative serving 自定义资源。
请注意,在此过程中,现有的 Knative serving 服务会继续不中断地处理流量。
安装 Knative serving 舰队组件
在本部分中,迁移脚本用于将 Knative serving 作为舰队组件安装。
运行以下命令以启动迁移脚本:
./migration-addon.sh --command install-cloud-run-v2
请注意,如果您在此步骤遇到任何问题或想要更改任何内容,可以重新运行此迁移脚本命令。
在终端中,迁移脚本会提示您进行确认,以执行每项操作。在每次提示时输入
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
专用集群的已知问题
如果您在 Google Cloud 的专用集群上安装 Knative serving,则可能会收到以下超时错误:
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
验证 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 功能列表参考。
后续步骤
现在,Cloud Service Mesh 和 Knative Serving 已安装,您可以开始将流量迁移并发布到新资源。
回滚
如果您需要回滚通过上述步骤所做的更改,则可以使用迁移脚本执行以下操作:
- 从 Operator
appdevexperience-operator
中移除 Knative serving 资源的控制。 - 删除 Knative serving 自定义资源并卸载 Operator
appdevexperience-operator
。 - 可选:在 Google Cloud 项目的舰队中停用 Knative serving。
如需开始回滚过程,请执行以下操作:
运行以下命令以启动迁移脚本:
./migration-addon.sh --command rollback-install-cloud-run-v2
在终端中,迁移脚本会提示您进行确认,以执行每项操作。在每次提示时输入
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