本指南介绍了如何准备 Google Cloud 项目、设置现有的 GKE 集群以及安装 Anthos Service Mesh 版本 1.6.14。您可以针对以下使用场景使用本指南:
新安装 Anthos Service Mesh。如果您安装了旧版 Anthos Service Mesh,请参阅升级 GKE 上的 Anthos Service Mesh。
从开源 Istio 1.6 迁移到 Anthos Service Mesh。
从 1.6 版本的 Istio on GKE 插件迁移到 Anthos Service Mesh。您必须先使用 Operator 升级到 Istio 1.6,然后才能迁移到 Anthos Service Mesh。
对于新安装和迁移,如果您配置的所有集群都位于同一个 Google Cloud 项目中,我们建议您使用在 GKE 上安装和迁移,其通过使用脚本可以简化安装和迁移。
准备工作
本指南假定您已具备:
Anthos 与 Anthos Service Mesh 的差异
GKE Enterprise 订阅者务必启用 GKE Enterprise API。
如果您不是 GKE Enterprise 订阅者,您仍然可以安装 Anthos Service Mesh,但 Google Cloud 控制台中的某些界面元素和功能仅供 GKE Enterprise 订阅者使用。如需了解订阅者和非订阅者可以使用的内容,请参阅 GKE Enterprise 和 Anthos Service Mesh 界面差异。如需了解非订阅者的 Anthos Service Mesh 价格,请参阅价格。
使用要求
您的 GKE 集群必须满足以下要求:
具有至少四个 vCPU 的机器类型,例如
e2-standard-4
。如果集群的机器类型没有至少四个 vCPU,请按照将工作负载迁移到不同的机器类型中所述更改机器类型。最小节点数取决于您的机器类型。Anthos Service Mesh 至少需要八个 vCPU。如果机器类型有四个 vCPU,则您的集群必须至少有两个节点。如果机器类型有八个 vCPU,则集群只需要一个节点。如果需要添加节点,请参阅调整集群大小。
如果要将不同 Google Cloud 项目中的集群添加到 Anthos Service Mesh,这些集群必须位于共享虚拟私有云 (VPC)。如需了解如何配置集群,请参阅通过共享 VPC 设置集群。
如需在安装 Anthos Service Mesh 之前准备集群,请启用 Workload Identity。建议使用 Workload Identity 来调用 Google API。如 Workload Identity 限制所述,启用 Workload Identity 会更改从工作负载到 Google API 的调用方式。
(可选,但建议执行)在发布版本中注册该集群。我们建议您在常规发布版本中注册集群,因为其他发布版本可能基于 Anthos Service Mesh 1.6.14 不支持的 GKE 版本。如需了解详情,请参阅支持的环境。如果您拥有静态 GKE 版本,请按照在发布版本中注册现有集群中的说明操作。
如需将服务端口纳入服务网格,必须为服务端口命名,并且名称必须包含以下语法的端口协议:
name: protocol[-suffix]
,其中方括号表示必须以短划线开头的可选后缀。如需了解详情,请参阅为服务端口命名。如果您要在专用集群上安装 Anthos Service Mesh,则必须在防火墙中打开端口 15017,以获取与自动 Sidecar 注入搭配使用的网络钩子,以便正常运行。如需了解详情,请参阅在专用集群上打开端口。
如果您在组织中创建了服务边界,则可能需要将 Mesh CA 服务添加到边界。如需了解详情,请参阅将 Mesh CA 添加到服务边界。
限制
一个 Google Cloud 项目只能关联一个网格。
选择配置文件
安装 Anthos Service Mesh 时,您需要选择以下某个配置文件:
asm-gcp
:如果所有 GKE 集群都位于同一项目中,请使用此配置文件。使用此配置文件安装 Anthos Service Mesh 时,以下功能处于启用状态:asm-gcp-multiproject
(Beta 版):如果您的集群位于共享虚拟私有云并且您希望将不同项目中的集群组添加到 Anthos Service Mesh,则使用此配置文件。使用asm-gcp-multiproject
配置文件安装 Anthos Service Mesh 时:目前,Google Cloud 控制台中的 Anthos Service Mesh 信息中心不可用。但是,您仍然可以在 Cloud Logging 和 Cloud Monitoring 中查看每个项目的日志和指标。
asm-gcp-multiproject
配置文件的支持的功能页面上列出的其他支持的默认功能处于启用状态。
选择证书授权机构
对于新安装和迁移,您可以使用 Anthos Service Mesh 证书授权机构 (Mesh CA) 或 Citadel(现已包含在 istiod
中)作为颁发双向 TLS (mTLS) 证书的证书授权机构 (CA)。
基于以下原因,我们通常建议您使用 Mesh CA:
- Mesh CA 是一项高度可靠的可扩缩服务,针对 Google Cloud 上动态扩缩的工作负载进行了优化。
- 通过 Mesh CA,Google 负责管理 CA 后端的安全性和可用性。
- Mesh CA 让您可在集群中依赖单个信任根。
不过,在某些情况下,您可能会考虑使用 Citadel,例如:
- 如果您拥有自定义 CA。
如果要从 Istio 或 Istio on GKE 插件迁移。
如果您选择 Citadel,则不存在任何停机时间,因为 mTLS 流量在迁移期间不会中断。如果您选择 Mesh CA,则需要为迁移安排停机时间,因为 mTLS 流量在您重启所有命名空间中的所有 Pod 之前会失败。
来自 Mesh CA 的证书包含有关应用的服务的以下数据:
- Google Cloud 项目 ID
- GKE 命名空间
- GKE 服务账号名称
多集群支持
虽然目前并非必需,但我们建议您在项目的队列(以前称为 Environ)中注册集群。借助队列,您可以组织集群,以简化多集群管理。通过在队列中注册集群,您可以根据需要对服务和其他基础架构进行分组,以应用一致的政策。如果您在不同项目中拥有集群,则您需要向队列宿主项目(而不是创建集群的项目)注册集群。如需了解详情,请参阅向队列注册集群。
在设置集群以启用 Anthos Service Mesh 所需的选项时,队列宿主项目的概念非常重要。集群的服务网格由基于项目编号的值标识。设置不同项目的集群时,您需要使用队列宿主项目的项目编号。