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.19.10不支持的 GKE 版本,因此建议使用常规发布渠道来注册集群。如需了解详情,请参阅支持的平台。如果您拥有静态 GKE 版本,请按照在发布渠道中注册现有集群中的说明操作。
若要在专用集群上安装 Cloud Service Mesh,则必须在防火墙中打开端口 15017,以获取用于自动边车注入和配置验证的网络钩子正常运行。如需了解详情,请参阅在专用集群上打开端口。
确保从中安装 Cloud Service Mesh 的客户端机器与 API 服务器之间有网络连接。
Cloud Service Mesh 不支持 Windows Server 工作负载。如果您的集群同时有 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
会注册集群(如果尚未注册)。