集群内 Cloud Service Mesh 的前提条件
本页介绍了在 GKE 上安装集群内 Cloud Service Mesh 的前提条件和要求,例如 GKE Enterprise 许可、集群要求、舰队要求和一般要求。
Cloud 项目
准备工作:
验证是否已为您的项目启用结算功能。
GKE Enterprise 许可
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。
一般要求
如需将服务端口纳入服务网格,必须为服务端口命名,并且名称必须包含以下语法的端口协议:
name: protocol[-suffix]
,其中方括号表示必须以短划线开头的可选后缀。如需了解详情,请参阅为服务端口命名。如果您在组织中创建了服务边界,则可能需要将 Cloud Service Mesh 证书授权机构服务添加到边界。如需了解详情,请参阅将 Cloud Service Mesh 证书颁发机构添加到服务边界。
如果要更改
istio-proxy
sidecar 容器的默认资源限制,新值必须大于默认值,才能避免内存不足 (OOM) 事件。一个 Google Cloud 项目只能关联一个网格。
集群要求
验证是否已在支持的平台中列出集群版本。
您的 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.23.3不支持的 GKE 版本。如需了解详情,请参阅支持的平台。如果您拥有静态 GKE 版本,请按照在发布渠道中注册现有集群中的说明操作。
若要在专用集群上安装 Cloud Service Mesh,则必须在防火墙中打开端口 15017,以获取用于自动辅助信息文件注入和配置验证的网络钩子正常运行。如需了解详情,请参阅在专用集群上打开端口。
确保从中安装 Cloud Service Mesh 的客户端机器与 API 服务器之间有网络连接。
对于 Windows Server 工作负载,不支持 Cloud Service Mesh。如果您的集群同时有 Linux 和 Windows Server 节点池,您仍然可以安装 Cloud Service Mesh 并在 Linux 工作负载上使用它。
舰队要求
所有集群都必须注册到舰队,并且必须启用舰队工作负载身份。您可以自行设置集群,也可以让 asmcli
注册集群,只要集群满足以下要求:
- GKE:(适用于集群内和代管式 Cloud Service Mesh)在 Google Kubernetes Engine 集群上启用 GKE Workload Identity(如果尚未启用)。此外,您必须使用舰队 Workload Identity 注册集群。
运行 asmcli install
时,您需要指定舰队宿主项目的项目 ID。asmcli
会注册集群(如果尚未注册)。