规划升级
本页面提供的信息可帮助您规划 Cloud Service Mesh 升级。我们还建议您查看 Istio 升级说明。
Canary 版升级简介
我们建议您先运行 Canary 部署,以升级 Cloud Service Mesh
新控制平面的新版本采用 Canary 版升级时,asmcli
会将控制平面的新修订版本与旧的控制平面一起安装。旧控制层面和新控制层面都标有 revision
标签,该标签充当控制层面的标识符。
要将工作负载迁移到新的控制层面,请执行以下操作:
在其中一个命名空间中设置新控制层面的
revision
标签。执行滚动重启。重启会在 pod 中重新注入边车代理,以使代理使用新的控制层面。
监控升级对工作负载的影响。如果需要测试应用,请重复上述步骤。
测试应用后,您可以将所有流量迁移到新控制层面或回滚到旧控制层面。
与新控制层面替换旧控制层面的就地升级相比,Canary 升级更为安全。如需了解详细步骤,请参阅切换到新的控制层面。
自定义控制层面
如果您自定义了先前的安装,则需要相同的自定义
。如果您通过向 istioctl install
添加 --set values
标志来自定义安装,则必须将这些设置添加到 IstioOperator
YAML 文件(称为 叠加文件。您可以在运行 asmcli
时使用 --custom_overlay
选项和文件名来指定叠加文件。
通过
asmcli
目录
包含许多叠加层文件。这些文件包含默认配置的常见自定义。您可以原封不动地使用这些文件,也可以
您可以根据需要对其进行其他更改启用可选的 Cloud Service Mesh 功能需要一些文件。当您运行 asmcli
来验证项目和集群时,系统会下载 anthos-service-mesh
软件包。
使用 asmcli install
安装 Cloud Service Mesh 时,您可以使用 --option
或 --custom_overlay
指定一个或多个叠加文件。如果您不需要对 anthos-service-mesh
代码库中的文件进行任何更改,则可以使用 --option
,该脚本将从 GitHub 中提取文件。否则,您可以更改叠加文件,然后使用 --custom_overlay
选项将其传递给 asmcli
。
选择证书授权机构
如果当前安装的 Cloud Service Mesh 使用的是 Cloud Service Mesh 证书授权机构作为颁发证书的证书授权机构 (CA) 双向 TLS (mTLS) 证书,我们建议您继续使用 Cloud Service Mesh 证书授权机构 原因如下:
- Cloud Service Mesh 证书授权机构是一项高度可靠且可伸缩的服务, 针对动态扩缩的工作负载进行了优化。
- 借助 Cloud Service Mesh 证书授权机构,Google 负责管理安全性和可用性 与 CA 后端相关联。
- Cloud Service Mesh 证书授权机构允许您依赖 集群。
如果当前的 Cloud Service Mesh 安装使用 Istio CA(以前称为“Citadel”),则可以在升级时切换到 Cloud Service Mesh 证书授权机构,但需要安排停机时间。在升级过程中,mTLS 流量 中断,直到所有工作负载都改用新的控制平面 具有 Cloud Service Mesh 证书授权机构。
Cloud Service Mesh 证书授权机构提供的证书包含以下数据: 应用的服务:
- Google Cloud 项目 ID
- GKE 命名空间
- GKE 服务账号名称
标识您的 CA
运行 asmcli install
进行升级时,您可以指定 asmcli
应在新控制平面上启用的 CA。
在将工作负载部署到新控制层面时,更改 CA 会导致停机。如果您无法安排停机时间,请务必为旧控制层面使用的新控制层面指定相同的 CA。如果您不确定在网格上启用了哪个 CA,请运行以下命令:
从您的某个命名空间中获取 Pod 列表:
kubectl get pods -n NAMESPACE
将
POD_NAME
替换为以下命令中某个 Pod 的名称:kubectl get pod POD_NAME -n NAMESPACE -o yaml | grep CA_ADDR -A 1
如果对命名空间启用了 Cloud Service Mesh 证书授权机构,您会看到 输出如下:
- name: CA_ADDR value: meshca.googleapis.com:443
准备网关配置
Cloud Service Mesh 允许您将网关部署和管理为服务网格的一部分。网关描述了在网格边缘运行的负载均衡器,用于接收传入或传出 HTTP/TCP 连接。网关是 Envoy 代理,可让您精确控制进出网格的流量。
asmcli
不会安装 istio-ingressgateway
。我们建议您单独部署和管理控制平面和网关。如需了解详情,请参阅安装和升级网关。
升级平台(可选)
最佳做法是将 Cloud Service Mesh 升级到也支持您的当前平台的最新支持版本。然后,升级您的环境,使其在支持的平台和 Kubernetes 版本范围内。最后,如果需要,请升级到 Cloud Service Mesh 的最新支持版本。