集群内 Cloud Service Mesh 的前提条件
本页介绍了在 Google Cloud 之外为 Kubernetes 工作负载安装集群内 Cloud Service Mesh 的前提条件和要求,例如 GKE Enterprise 许可、集群要求、舰队要求和一般要求。
Cloud 项目
准备工作:
验证是否已为您的项目启用结算功能。
GKE Enterprise 许可
如需在本地、GKE on AWS、Amazon EKS、GKE on Azure 或 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 项目只能关联一个网格。
集群要求
确保安装 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。
舰队要求
所有集群都必须注册到舰队,并且必须启用舰队工作负载身份。您可以自行设置集群,也可以让 asmcli
注册集群,只要集群满足以下要求:
- 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
会注册集群(如果尚未注册)。