规划升级
本页面提供的信息可帮助您规划 Cloud Service Mesh 升级。我们还建议您查看 Istio 升级说明。
Canary 版升级简介
我们建议您首先运行新控制层面基于 canary 的部署,以升级 Cloud Service Mesh。采用 Canary 版升级时,asmcli
会将控制平面的新修订版本与旧的控制平面一起安装。旧控制层面和新控制层面都标有 revision
标签,该标签充当控制层面的标识符。
要将工作负载迁移到新的控制层面,请执行以下操作:
在其中一个命名空间中设置新控制层面的
revision
标签。执行滚动重启。重启会在 pod 中重新注入边车代理,以使代理使用新的控制层面。
监控升级对工作负载的影响。如果需要测试应用,请重复上述步骤。
测试应用后,您可以将所有流量迁移到新控制层面或回滚到旧控制层面。
与新控制层面替换旧控制层面的就地升级相比,Canary 升级更为安全。如需了解详细步骤,请参阅切换到新的控制层面。
自定义控制层面
如果您自定义了先前的安装,则需要相同的自定义
。如果您通过向 istioctl install
添加 --set values
标志来自定义安装,则必须将这些设置添加到 IstioOperator
YAML 文件(称为 叠加文件。您可以在运行 asmcli
时使用 --custom_overlay
选项和文件名来指定叠加文件。
GitHub 中的 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 证书授权机构作为颁发双向 TLS (mTLS) 证书的证书授权机构 (CA),我们建议您继续使用 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,您可以选择在 Cloud SQL 中部署和管理网关, 服务网格网关描述了在网格边缘运行的负载均衡器,用于接收传入或传出 HTTP/TCP 连接。网关是 Envoy 代理,可让您精确控制进出网格的流量。
asmcli
不会安装 istio-ingressgateway
。我们建议您单独部署和管理控制平面和网关。如需了解详情,请参阅安装和升级网关。
升级平台(可选)
最佳做法是将 Cloud Service Mesh 升级到也支持您的当前平台的最新支持版本。然后,升级您的环境,使其在支持的平台和 Kubernetes 版本范围内。最后,如果需要,请升级到 Cloud Service Mesh 的最新支持版本。