Cloud Service Mesh 前提条件
本页介绍了安装 Cloud Service Mesh 的前提条件和要求,例如 GKE Enterprise 许可、集群要求、舰队要求和一般要求。
Cloud 项目
准备工作:
验证是否已为您的项目启用结算功能。
GKE Enterprise 许可
GKE
Cloud Service Mesh 适用于 GKE Enterprise,也可作为独立服务使用。
Google API 用于确定结算方式。要使用 Cloud Service Mesh,请作为
独立服务,请勿在项目中启用 GKE Enterprise API。
asmcli
会为您启用所有其他必需的 Google API。如需了解 Cloud Service Mesh 价格,请参阅价格。
- GKE Enterprise 订阅者务必启用 GKE Enterprise API。
即使您不是 GKE Enterprise 订阅者,也仍然可以安装 Cloud Service Mesh,但 Google Cloud 控制台中的某些界面元素和功能 仅适用于 GKE Enterprise 订阅者。如需了解订阅者和非订阅者可以使用的内容,请参阅 GKE Enterprise 和 Cloud Service Mesh 界面差异。
如果您启用了 GKE Enterprise API,但想将 Cloud Service Mesh 作为独立服务使用,请停用 GKE Enterprise API。
Google Cloud 外部
如需在本地、GKE on AWS、Amazon EKS 或 Microsoft AKS 上安装 Cloud Service Mesh,您必须是 GKE Enterprise 客户。GKE Enterprise 客户无需单独为 Cloud Service Mesh 付费,因为此项费用已包含在 GKE Enterprise 价格内。如需了解详情,请参阅 GKE Enterprise 价格指南。
一般要求
如需将服务端口纳入服务网格,必须为服务端口命名,并且名称必须包含以下语法的端口协议:
name: protocol[-suffix]
,其中方括号表示必须以短划线开头的可选后缀。如需了解详情,请参阅为服务端口命名。如果您已创建服务边界 那么您可能需要添加 Cloud Service Mesh 证书授权机构服务, 进入边界如需了解详情,请参阅将 Cloud Service Mesh 证书颁发机构添加到服务边界。
如果要更改
istio-proxy
sidecar 容器的默认资源限制,新值必须大于默认值,才能避免内存不足 (OOM) 事件。一个 Google Cloud 项目只能关联一个网格。
集群要求
GKE
验证是否已在支持的平台中列出集群版本。
您的 GKE 集群必须满足以下要求:
GKE 集群必须是标准集群。Autopilot 集群 仅适用于代管式 Cloud Service Mesh。
具有至少 4 个 vCPU 的机器类型,例如
e2-standard-4
。如果集群的机器类型没有至少 4 个 vCPU,请按照将工作负载迁移到不同的机器类型中所述更改机器类型。最小节点数取决于您的机器类型。云服务网格 至少需要 8 个 vCPU。如果机器类型有 4 个 vCPU,则您的集群必须至少有 2 个节点。如果机器类型有 8 个 vCPU,则集群只需要 1 个节点。如果需要添加节点,请参阅调整集群大小。
必须使用 GKE Workload Identity。我们建议您 启用 Workload Identity 然后再安装 Cloud Service Mesh。如 Workload Identity 限制所述,启用 Workload Identity 会更改从工作负载到 Google API 的调用的保护方式。 请注意,您无需在现有节点池上启用 GKE 元数据服务器。
(可选,但建议执行)在发布版本中注册集群。我们建议您在常规发布渠道中注册集群,因为其他发布渠道可能基于 Cloud Service Mesh 1.19.10不支持的 GKE 版本。如需了解详情,请参阅支持的平台。如果您拥有静态 GKE 版本,请按照在发布渠道中注册现有集群中的说明操作。
若要在专用集群上安装 Cloud Service Mesh,则必须在防火墙中打开端口 15017,以获取用于自动辅助信息文件注入和配置验证的网络钩子正常运行。如需了解详情,请参阅在专用集群上打开端口。
确保从中安装 Cloud Service Mesh 的客户端机器与 API 服务器之间有网络连接。
对于 Windows Server 工作负载,不支持 Cloud Service Mesh。如果您的 集群同时具有 Linux 和 Windows Server 节点池,您仍然可以安装 Cloud Service Mesh 并用于 Linux 工作负载。
Google Cloud 外部
确保安装 Cloud Service Mesh 的用户集群至少具有 4 个 vCPU、15 GB 内存和 4 个节点。
验证是否已在支持的平台中列出集群版本。
确保从中安装 Cloud Service Mesh 的客户端机器与 API 服务器之间有网络连接。
如果您在无法直接连接到 CA 服务(例如
meshca.googleapis.com
和privateca.googleapis.com
)的应用 pod 中部署 Sidecar,则必须配置显式基于CONNECT
的 HTTPS 代理。对于设置了会阻止隐式规则的出站防火墙规则的公共集群,请确保您已配置 HTTP/HTTPS 和 DNS 规则以访问公共 Google API。
舰队要求
在 Cloud Service Mesh 1.11 及更高版本中,所有集群都必须注册到舰队,并且必须启用舰队工作负载身份。您可以自行设置集群,也可以让 asmcli
注册集群,只要集群满足以下要求:
GKE:(适用于集群内和代管式 Cloud Service Mesh) 启用 GKE Workload Identity (如果尚未启用)。此外,您必须使用舰队 Workload Identity 注册集群。
Google Cloud 外部的 GKE 集群:(适用于集群内 Cloud Service Mesh)Google Distributed Cloud、Google Distributed Cloud、GKE on AWS 和 GKE on Azure 会在创建集群时自动向项目舰队注册。自 GKE Enterprise 1.8 起,所有这些集群类型都会在注册时自动启用舰队 Workload Identity。现有的已注册集群在升级到 GKE Enterprise 1.8 后也会更新为使用舰队 Workload Identity。
Amazon EKS 集群:(适用于集群内 Cloud Service Mesh) 必须具有公共 IAM OIDC 身份提供方。请按照 为集群创建 IAM OIDC 提供方 检查提供程序是否存在,并在必要时创建提供程序。
运行 asmcli install
时,您需要指定舰队宿主项目的项目 ID。asmcli
会注册集群(如果尚未注册)。