请根据本指南将您现有的 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虽然此过程较为简单且理想,但如果工作负载处理流量,则迁移到新创建的集群会导致停机。如需执行此迁移路径,请在新集群中执行以下操作:
- 安装 Knative serving 作为舰队组件。
将服务部署到新安装。
例如,您可以使用 部署现有服务的修订版本 为每个集群分别下载 然后将每个 YAML 文件部署到 舰队安装 Knative serving:
在旧安装中,您可以运行以下命令来下载 YAML 配置文件,例如
service.yaml
gcloud run services describe SERVICE --format export > service.yaml
将 SERVICE 替换为您的 Knative serving 服务。
在新舰队组件安装中,您可以运行以下命令来部署相同的
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。
使用其他角色和最低要求:
根据您的组织,您还可以通过组合以下预定义角色来满足权限要求:
Google Cloud 项目权限:基本 Editor 角色
舰队权限:GKE Hub Admin 或包含以下权限的角色:
gkehub.features.create
gkehub.features.update
集群权限:一个 Kubernetes Engine Admin 角色:
- Kubernetes Engine Admin
- Kubernetes Engine Cluster Admin
-
Cloud Service Mesh 要求您的集群使用 至少 4 个 vCPU,例如
e2-standard-4
。了解 Cloud Service Mesh 安装指南。 如果您需要更改现有集群的机器类型,请参阅将工作负载迁移到不同的机器类型。建议使用 Cloud Shell 作为此过程中运行命令和迁移脚本的环境。请注意, Cloud Service Mesh 安装脚本 仅支持 Linux 或 Cloud Shell。
如果您当前安装的 Knative serving 使用 您必须迁移到 Cloud Service Mesh 代管式控制平面。 从 Istio on GKE 插件迁移到 Cloud Service Mesh 集群内控制平面 目前不支持 。
升级 Knative serving 和迁移工作负载
帮助您升级现有的 Knative serving 和 迁移工作负载时,您需要运行一个脚本,该脚本可以自动执行大部分步骤和 在整个过程中会提示您输入文字。