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 集群必须是标准集群。只有代管式 Cloud Service Mesh 支持 Autopilot 集群。
具有至少 4 个 vCPU 的机器类型,例如
e2-standard-4
。如果集群的机器类型没有至少 4 个 vCPU,请按照将工作负载迁移到不同的机器类型中所述更改机器类型。最小节点数取决于您的机器类型。Cloud Service Mesh 至少需要 8 个 vCPU。如果机器类型有 4 个 vCPU,则您的集群必须至少有 2 个节点。如果机器类型有 8 个 vCPU,则集群只需要 1 个节点。如果需要添加节点,请参阅调整集群大小。
必须使用 GKE Workload Identity。我们建议您在安装 Cloud Service Mesh 之前启用 Workload Identity。如 Workload Identity 限制所述,启用 Workload Identity 会更改从工作负载到 Google API 的调用的保护方式。 请注意,您无需在现有节点池上启用 GKE 元数据服务器。
(可选,但建议执行)在发布版本中注册集群。我们建议您在常规发布渠道中注册集群,因为其他发布渠道可能基于 Cloud Service Mesh 1.18.7不支持的 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)在 Google Kubernetes Engine 集群上启用 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
会注册集群(如果尚未注册)。