使用 Istio API 支持的功能(托管式控制平面)
  
本页面介绍了使用 TRAFFIC_DIRECTOR 或 ISTIOD 作为控制平面的 Cloud Service Mesh 支持的功能和限制,以及每种实现之间的差异。请注意,您无法选择这些选项。ISTIOD 实现仅适用于现有用户。新安装尽可能使用 TRAFFIC_DIRECTOR 实现。
如需查看集群内控制平面的 Cloud Service Mesh 支持的功能列表,请参阅使用 Istio API(集群内 istiod 控制平面)。
如果您不确定自己使用的是哪个 Cloud Service Mesh 控制平面,可以按照识别控制平面实现中的说明检查您的控制平面实现。
限制
存在以下限制:
- GKE 集群必须位于受支持的区域之一中。
 
- GKE 版本必须是受支持的版本。
 
- 仅支持在环境中列出的平台。
 
- 不支持更改发布渠道。
 
- 不支持从具有 
asmcli 的托管式 Cloud Service Mesh 迁移到具有 Fleet API 的 Cloud Service Mesh。同样,不支持将具有 Fleet API 的托管式 Cloud Service Mesh 从 --management manual 配置为 --management automatic。 
- 只有使用 Mesh CA 安装的集群内 Cloud Service Mesh 1.9+ 版才支持迁移和升级。使用 Istio CA(以前称为 Citadel)进行的安装必须先迁移到 Mesh CA。
 
- 缩放仅限于每个集群 1000 项服务和 5000 个工作负载。
 
- 仅支持多集群的多主要部署选项:多集群的主要远程部署选项不受支持。
 
- 不支持 
istioctl ps。您可以改用问题排查中所述的 gcloud beta container fleet mesh debug 命令。 
不受支持的 API:
EnvoyFilter API
 
WasmPlugin API
 
IstioOperator API
 
Kubernetes Ingress API
 
 
您可以在不订阅 GKE Enterprise 的情况下使用托管式控制平面,但 Google Cloud 控制台中的某些界面元素和功能仅限 GKE Enterprise 订阅者使用。如需了解订阅者和非订阅者可以使用的内容,请参阅 GKE Enterprise 和 Cloud Service Mesh 界面差异。
 
在代管式控制平面的预配过程中,与所选渠道对应的 Istio CRD 将安装在指定集群中。如果集群中已有 Istio CRD,则它们将会被覆盖。
 
托管式 Cloud Service Mesh 仅支持默认 DNS 域名 .cluster.local。
 
自 2023 年 11 月 14 日起,快速发布渠道上的托管式 Cloud Service Mesh 的新安装仅使用 Envoy 提取 JWKS。这等同于 PILOT_JWT_ENABLE_REMOTE_JWKS=envoy Istio 选项。与在常规和稳定发布渠道中进行安装,或者在 2023 年 11 月 14 日之前在快速发布渠道中进行安装相比,您可能需要额外的 ServiceEntry 和 DestinationRule 配置。如需了解示例,请参阅 requestauthn-with-se.yaml.tmpl。
 
控制平面差异
受支持的功能在 ISTIOD 和 TRAFFIC_DIRECTOR 控制平面实现之间存在差异。如需检查您使用的实现,请参阅识别控制平面实现。
-  - 表示该功能可用且默认处于启用状态。
 
- † - 表示功能 API 在不同平台之间可能存在差异。
 
-  – 表示平台支持该功能且可启用,如启用可选功能或功能表中链接的功能指南中所述。
 
- § - 表示该功能受许可名单支持。以前的托管式 Anthos Service Mesh 用户会在组织级别自动列入许可名单。如需申请访问权限或查看许可名单状态,请与 Google Cloud 支持团队联系。
 
-  - 表示该功能不可用或不受支持。
 
默认功能和可选功能完全受 Google Cloud支持团队的支持。该表中未明确列出的功能会得到全力支持。
确定控制平面实现的因素
当您在舰队中首次配置托管式 Cloud Service Mesh 时,我们会确定要使用哪个控制平面实现。在该舰队中,所有用于配置托管式 Cloud Service Mesh 的集群都使用相同的实现。
加入托管式 Cloud Service Mesh 的新舰队会收到 TRAFFIC_DIRECTOR 控制平面实现,但存在以下几种例外情况:
- 如果您是现有的托管式 Cloud Service Mesh 用户,则在将同一 Google Cloud组织中的新舰队加入托管式 Cloud Service Mesh 中时,至少在 2024 年 6 月 30 日之前,您会收到 
ISTIOD 控制平面实现。
如果您是这类用户,可以与支持团队联系,以便微调此行为。
如果用户的现有使用情况与 TRAFFIC_DIRECTOR 实现不兼容,则在 2024 年 9 月 8 日之前,用户将继续收到 ISTIOD 实现。(这些用户收到了服务通告。) 
- 如果您在配置托管式 Cloud Service Mesh 时,舰队中的任何集群都使用 Certificate Authority Service,则您会收到 
ISTIOD 控制平面实现。 
- 如果在您配置托管式 Cloud Service Mesh 时,您的舰队中的任何集群都包含集群内 Cloud Service Mesh 控制平面,您将收到 
ISTIOD 控制平面实现。 
- 如果您的舰队中的任何集群都使用 GKE Sandbox,在您配置托管式 Cloud Service Mesh 时,将收到 
ISTIOD 控制平面实现。 
代管式控制平面支持的功能
安装、升级和回滚
  | 功能 | 
  托管式 (TD) | 
  托管式 (istiod) | 
  | 使用舰队功能 API 在 GKE 集群上安装 | 
   | 
   | 
  | 从使用 Mesh CA 的 ASM 1.9 版升级 | 
   | 
   | 
  | 来自 1.9 之前 Cloud Service Mesh 版本的直接(跳过层级)升级(请参阅间接升级的说明) | 
   | 
   | 
  | 从 Istio OSS 直接升级(跳过层级)(请参阅间接升级的说明) | 
   | 
   | 
  
  | 从 Istio-on-GKE 插件直接升级(跳过层级)(请参阅间接升级的说明) | 
   | 
   | 
  
  | 启用可选功能 | 
   | 
   | 
环境
  | 功能 | 
  托管式 (TD) | 
  托管式 (istiod) | 
  | GKE 1.25-1.27 位于其中一个受支持的区域中 | 
   | 
   | 
  | 具有 Autopilot 的 GKE 1.25-1.27 集群
   | 
   | 
   | 
  |  Google Cloud 以外的环境(本地 GKE Enterprise、其他公有云上的 GKE Enterprise、Amazon EKS、Microsoft AKS 或其他 Kubernetes 集群) | 
   | 
   | 
扩缩
  | 功能 | 
  托管式 (TD) | 
  托管式 (istiod) | 
  | 每个集群 1,000 项服务和 5,000 个工作负载 | 
   | 
   | 
  | 每个网格 50 个无头服务端口,每个无头服务端口 36 个 Pod | 
   | 
   | 
  | 功能 | 
  托管式 (TD) | 
  托管式 (istiod) | 
| 单网络 | 
 | 
 | 
| 多网络 | 
 | 
 | 
  
| 单项目 | 
 | 
 | 
  
| 使用共享 VPC 的多项目 | 
 | 
 | 
多集群部署
有关术语的注意事项
- 多主配置意味着必须在所有集群中复制配置。
 
- 主远程配置意味着单个集群包含配置,并视为可靠来源。
 
- Cloud Service Mesh 会根据通用连接使用简化的网络定义。如果工作负载实例无需使用网关就可以直接通信,则它们位于同一网络上。
 
基础映像
† 使用托管式 (TD) 控制平面的 Cloud Service Mesh 仅支持 distroless 映像类型。您无法更改它。
请注意,distroless 映像具有最小的二进制文件,因此您无法执行 bash 或 curl 等常规命令,因为它们不在 distroless 映像中。
不过,您可以使用临时容器附加到正在运行的工作负载 Pod,以便检查 Pod 并运行自定义命令。例如,请参阅收集 Cloud Service Mesh 日志。
安全
VPC Service Controls
证书分发和轮替机制
  | 功能 | 
  托管式 (TD) | 
  托管式 (istiod) | 
  | 工作负载证书管理 | 
   | 
   | 
  | 入站流量和出站流量网关的外部证书管理。 | 
   | 
   | 
证书授权机构 (CA) 支持
安全功能
除了支持 Istio 安全功能之外,Cloud Service Mesh 还提供了更多功能来帮助您保护应用。
授权政策
  | 功能 | 
  托管式 (TD) | 
  托管式 (istiod) | 
  | 授权 v1beta1 政策 | 
  † | 
   | 
  | CUSTOM 授权政策 | 
 § | 
   | 
† TRAFFIC_DIRECTOR 控制平面实现不支持 rules.from.source.RemoteIp 和 rules.from.source.NotRemoteIp 字段。
对等身份验证
  | 功能 | 
  托管式 (TD) | 
  托管式 (istiod) | 
  
  | 自动 mTLS | 
     | 
     | 
  | mTLS PERMISSIVE 模式 | 
   | 
   | 
  | mTLS STRICT 模式 | 
   * | 
   * | 
  | mTLS DISABLE 模式 | 
   | 
   | 
请求身份验证
  | 功能 | 
  托管式 (TD) | 
  托管式 (istiod) | 
  | JWT 身份验证(备注 1) | 
   | 
   | 
  | 基于 JWT 声明的路由 | 
   | 
   | 
  | JWT 将声明复制到标头 | 
   | 
   | 
注意:
- 第三方 JWT 默认处于启用状态。
 
- 在定义 RequestAuthentication API 时,在 JWKSURI 中添加完整的 fqdn/主机名。
 
- 托管式控制平面会在指定 JWKS URI 时强制 Envoy 提取 JWKS。
 
Telemetry
指标
  | 功能 | 
  托管式 (TD) | 
  托管式 (istiod) | 
  | Cloud Monitoring(HTTP 代理中指标) | 
   | 
   | 
  | Cloud Monitoring(TCP 代理中指标) | 
   | 
   | 
  | Prometheus 指标导出到 Grafana(仅限 Envoy 指标) | 
   * | 
   * | 
  | 将 Prometheus 指标导出到 Kiali | 
   | 
   | 
  | Google Cloud Managed Service for Prometheus,不包括 Cloud Service Mesh 信息中心 | 
   * | 
   * | 
  |  Istio Telemetry API | 
   † | 
   | 
  | 自定义适配器/后端,出入进程 | 
   | 
   | 
  | 任意遥测和日志记录后端 | 
   | 
   | 
† TRAFFIC_DIRECTOR 控制平面支持用于配置访问日志和跟踪记录的 Istio 遥测 API 子集。
代理请求日志记录
跟踪
  | 功能 | 
  托管式 (TD) | 
  托管式 (istiod) | 
  | Cloud Trace | 
   * | 
   * | 
  | Jaeger 跟踪(允许使用客户管理的 Jaeger) | 
   | 
  兼容 | 
  | Zipkin 跟踪(允许使用客户管理的 Zipkin) | 
   | 
  兼容 | 
网络
流量拦截和重定向机制
  | 功能 | 
  托管式 (TD) | 
  托管式 (istiod) | 
  iptables 的传统用法:将 init 容器与 CAP_NET_ADMIN 结合使用 | 
   | 
   | 
  | Istio 容器网络接口 (CNI) | 
   | 
   | 
  | 白盒 Sidecar | 
   | 
   | 
协议支持
  | 功能 | 
  托管式 (TD) | 
  托管式 (istiod) | 
  | IPv4 | 
   | 
   | 
  | HTTP/1.1 | 
   | 
   | 
  | HTTP/2 | 
   | 
   | 
  | TCP 字节流(备注 1) | 
   | 
   | 
  | gRPC | 
   | 
   | 
  | IPv6 | 
   | 
   | 
注意:
- 虽然 TCP 是受支持的网络协议,并且会收集 TCP 指标,但不会报告这些指标。系统仅针对 Google Cloud 控制台中的 HTTP 服务显示指标。
 
- 不支持将配置有第 7 层功能的服务用于以下协议:WebSocket、MongoDB、Redis、Kafka、Cassandra、RabbitMQ、Cloud SQL。您可以通过 TCP 字节流支持来使协议正常工作。如果 TCP 字节流无法支持协议(例如,Kafka 在特定于协议的回复中发送重定向地址,并且此重定向与 Cloud Service Mesh 的路由逻辑不兼容),则协议不受支持。
 
Envoy 部署
  | 功能 | 
  托管式 (TD) | 
  托管式 (istiod) | 
  | Sidecar | 
   | 
   | 
  | 入站流量网关 | 
   | 
   | 
  | 直接从 Sidecar 出站 | 
   | 
   | 
  | 使用出站流量网关出站 | 
   * | 
   * | 
CRD 支持
Istio 入站流量网关的负载均衡器
  | 功能 | 
  托管式 (TD) | 
  托管式 (istiod) | 
  | 第三方外部负载均衡器 | 
   | 
   | 
  | Google Cloud 内部负载均衡器 | 
   * | 
   * | 
服务网格云网关
  | 功能 | 
  托管式 (TD) | 
  托管式 (istiod) | 
  | 服务网格云网关 | 
   | 
   | 
Kubernetes Gateway API
  | 功能 | 
  托管式 (TD) | 
  托管式 (istiod) | 
  | Kubernetes Gateway API | 
   | 
   | 
负载均衡政策
  | 功能 | 
  托管式 (TD) | 
  托管式 (istiod) | 
  | 轮循 | 
   | 
   | 
  | 最少连接 | 
   | 
   | 
  | 随机 | 
   | 
   | 
  | 直通式 | 
   | 
   | 
  | 一致的哈希 | 
   | 
   | 
  | 市行政区 | 
   | 
   | 
服务条目
  | 功能 | 
  托管式 (TD) | 
  托管式 (istiod) | 
  | ServiceEntry v1beta1 | 
  † | 
   | 
† TRAFFIC_DIRECTOR 控制平面实现不支持以下字段和字段中的值:
workloadSelector 字段 
endpoints[].network 字段 
endpoints[].locality 字段 
endpoints[].weight 字段 
endpoints[].serviceAccount 字段 
resolution 字段中的 DNS_ROUND_ROBIN 值 
location 字段中的 MESH_INTERNAL 值 
endpoints[].address 字段中的 Unix 网域套接字地址 
subjectAltNames 字段 
目标规则
  | 功能 | 
  托管式 (TD) | 
  托管式 (istiod) | 
  | DestinationRule v1beta1 | 
  † | 
   | 
† TRAFFIC_DIRECTOR 控制平面实现不支持 trafficPolicy.loadBalancer.localityLbSetting 字段和 trafficPolicy.tunnel 字段。
此外,TRAFFIC_DIRECTOR 控制平面实现要求定义子集的目标规则与 Kubernetes 服务或 ServiceEntry 位于同一命名空间和集群中。
Sidecar
  | 功能 | 
  托管式 (TD) | 
  托管式 (istiod) | 
  | Sidecar v1beta1 | 
  † | 
   | 
† TRAFFIC_DIRECTOR 控制平面实现不支持以下字段和字段中的值:
ingress 字段 
egress.port 字段 
egress.bind 字段 
egress.captureMode 字段 
inboundConnectionPool 字段 
MeshConfig
  | 功能 | 
  托管式 (TD) | 
  托管式 (istiod) | 
  | LocalityLB | 
  § | 
   | 
  | ExtensionProviders | 
  § | 
   | 
  | CACert | 
   | 
   | 
  | ImageType - distroless | 
  § | 
   | 
  | OutboundTrafficPolicy | 
  § | 
   | 
  | defaultProviders.accessLogging | 
   | 
   | 
  | defaultProviders.tracing | 
   | 
   | 
  | defaultConfig.tracing.stackdriver | 
  § | 
   | 
  | accessLogFile | 
  § | 
   | 
ProxyConfig
  | 功能 | 
  托管式 (TD) | 
  托管式 (istiod) | 
  | DNS 代理(ISTIO_META_DNS_CAPTURE、ISTIO_META_DNS_AUTO_ALLOCATE) | 
   | 
   | 
  | HTTP/1.0 支持 (ISTIO_META_NETWORK) | 
   | 
   | 
  | 映像选择(distroless 或基础映像) | 
  † | 
   | 
† 使用 Distroless 映像进行注入。
区域
GKE 集群必须位于以下区域之一中或以下区域内的任何可用区中。
  | 区域 | 
  位置 | 
  africa-south1 | 
  约翰内斯堡 | 
  asia-east1 | 
  台湾 | 
  asia-east2 | 
  香港 | 
  asia-northeast1 | 
  日本东京 | 
  asia-northeast2 | 
  日本大阪 | 
  asia-northeast3 | 
  韩国 | 
  asia-south1 | 
  印度孟买 | 
  asia-south2 | 
  德里(印度) | 
  asia-southeast1 | 
  新加坡 | 
  asia-southeast2  | 
  雅加达 | 
 
  australia-southeast1 | 
  澳大利亚悉尼 | 
  australia-southeast2 | 
  澳大利亚墨尔本 | 
  europe-central2 | 
  波兰 | 
  europe-north1 | 
  芬兰 | 
  europe-north2 | 
  斯德哥尔摩 | 
  europe-southwest1 | 
  西班牙 | 
  europe-west1 | 
  比利时 | 
  europe-west2 | 
  英格兰 | 
  europe-west3 | 
  德国法兰克福 | 
  europe-west4 | 
  荷兰 | 
  europe-west6 | 
  瑞士 | 
  europe-west8 | 
  意大利米兰 | 
  europe-west9 | 
  法国 | 
  europe-west10 | 
  德国柏林 | 
  europe-west12 | 
  意大利都灵 | 
  me-central1 | 
  多哈 | 
  me-central2 | 
  沙特阿拉伯达曼 | 
  me-west1 | 
  特拉维夫 | 
  northamerica-northeast1 | 
  加拿大蒙特利尔 | 
  northamerica-northeast2 | 
  加拿大多伦多 | 
  southamerica-east1 | 
  巴西 | 
  southamerica-west1 | 
  智利 | 
  us-central1 | 
  艾奥瓦 | 
  us-east1 | 
  南卡罗来纳 | 
  us-east4 | 
  北弗吉尼亚 | 
  us-east5 | 
  俄亥俄州 | 
  us-south1 | 
  达拉斯 | 
  us-west1 | 
  俄勒冈 | 
  us-west2 | 
  洛杉矶 | 
  us-west3 | 
  盐湖城 | 
  us-west4 | 
  拉斯维加斯 | 
界面
  | 功能 | 
  托管式 (TD) | 
  托管式 (istiod) | 
  |  Google Cloud 控制台中的 Cloud Service Mesh 信息中心 | 
   | 
   | 
  | Cloud Monitoring | 
   | 
   | 
  | Cloud Logging | 
   | 
   | 
  | 功能 | 
  托管式 (TD) | 
  托管式 (istiod) | 
  gcloud beta container fleet mesh debug  工具  | 
   | 
   |