将 Google Cloud 上的 Knative serving 升级到舰队

请根据本指南将您现有的 Knative serving 迁移到 Google Cloud 将舰队与 Cloud Service Mesh 结合使用。

上一个“免费试用”后者也称为 Knative serving, 作为“GKE 插件”,包含 Istio 1.4 的精简版本 从 Anthos 1.8 开始不再受支持

升级 Knative serving 安装以使用舰队和 Cloud Service Mesh 提高了产品升级和管理的独立性, 并且改进了跨 GKE Enterprise 功能的集成。 详细了解新功能和更改

迁移安装有两种路径:

  • 建议的流程是从所在的集群中迁移工作负载 旧版 Knative serving 安装到 已安装并配置新舰队安装的新集群 Knative serving虽然此过程较为简单且理想,但如果工作负载处理流量,则迁移到新创建的集群会导致停机。如需执行此迁移路径,请在新集群中执行以下操作:

    1. 安装 Knative serving 作为舰队组件
    2. 将服务部署到新安装。

      例如,您可以使用 部署现有服务的修订版本 为每个集群分别下载 然后将每个 YAML 文件部署到 舰队安装 Knative serving:

      1. 旧安装中,您可以运行以下命令来下载 YAML 配置文件,例如 service.yaml

        gcloud run services describe SERVICE --format export > service.yaml

        SERVICE 替换为您的 Knative serving 服务。

      2. 舰队组件安装中,您可以运行以下命令来部署相同的 service.yaml

        gcloud run deploy service.yaml --cluster CLUSTER_NAME --cluster-location CLUSTER_LOCATION --project PROJECT_ID

        您需要将其中的:

        • CLUSTER_NAME 替换为您的新集群的名称。 Knative serving 的舰队组件安装。

        • CLUSTER_LOCATION 替换为 所在可用区的可用区或区域 集群内安装的 Knative serving。

        • PROJECT_ID 替换为您的 Google Cloud 项目 ID 其中,新舰队组件安装的 Knative serving。

  • 替代方案:适用于无法创建新集群且必须 主动安装的 Knative serving,可以遵循 步骤:

    • 移除旧的“GKE 插件”和 Istio 资源。
    • 安装新的舰队资源。
    • 请迁移到 Cloud Service Mesh,然后迁移您的流量。
    • 清理所有过时和未使用的资源。

以下指南详细介绍了升级 当前有效安装的 Knative serving,包括所有工作负载、 以满足 GKE Enterprise 1.8 及更高版本的要求。

准备工作

  • 此升级过程只能对符合以下条件的 Google Kubernetes Engine 集群执行: Knative serving 作为 GKE 插件

    检查是否安装了“GKE 插件”。

    要检查您在 Chrome 中安装的 Knative serving GKE 插件”,请运行以下命令:

    gcloud container clusters describe \
    CLUSTER_NAME \
    --region CLUSTER_LOCATION \
    --project PROJECT_ID --format='get(addonsConfig.cloudRunConfig)'
    

    您需要将:

    • CLUSTER_NAME 替换为您的集群名称。
    • CLUSTER_LOCATION 替换为集群所在的位置
    • PROJECT_ID 替换为您的 Google Cloud 项目的 ID。

    结果:

    • 未安装“GKE 插件
      • 如果从未安装该插件,则不会向终端返回任何内容。
      • 如果之前卸载了该插件,则返回 disabled=true
    • 安装了“GKE 插件:如果集群中安装了该插件,则返回该插件的配置详细信息。示例:loadBalancerType=LOAD_BALANCER_TYPE_EXTERNAL
    示例:
    以下示例演示了 Knative serving 安装在 通过“GKE 插件”管理 my-addon-cluster 集群, 配置为处理外部流量:
    gcloud container clusters describe my-addon-cluster \
    --region us-central1-c --project my-gcp-project \
    --format='get(addonsConfig.cloudRunConfig)'
    

    响应:

    loadBalancerType=LOAD_BALANCER_TYPE_EXTERNAL
    

  • 您必须在 Google Cloud 项目中拥有足够的权限 来满足集群要求 和 Cloud Service Mesh:

    • 如果您拥有以下项目的 Owner 角色: Google Cloud 项目,则您将拥有执行 创建集群、安装并配置 Knative serving。

    • 请注意, Cloud Service Mesh 权限要求 也满足安装和配置 Knative serving。

    • 使用其他角色和最低要求:

      根据您的组织,您还可以通过组合以下预定义角色来满足权限要求:

  • Cloud Service Mesh 1.18 版

升级 Knative serving 和迁移工作负载

帮助您升级现有的 Knative serving 和 迁移工作负载时,您需要运行一个脚本,该脚本可以自动执行大部分步骤和 在整个过程中会提示您输入文字。

  1. 准备升级和设置环境

  2. 卸载 GKE 插件

  3. 迁移到 Cloud Service Mesh

  4. 安装舰队组件

  5. 将工作负载流量迁移到 Cloud Service Mesh

  6. 完成升级并执行清理任务