使用 Istio API 支持的功能(托管式控制平面) 
  
本页面介绍了使用 TRAFFIC_DIRECTOR 或 ISTIOD 作为控制平面的 Cloud Service Mesh 支持的功能和限制,以及每种实现之间的差异。请注意,您无法选择这些选项。ISTIOD 实现仅适用于现有用户。新安装尽可能使用 TRAFFIC_DIRECTOR 实现。
如需查看集群内控制平面的 Cloud Service Mesh 支持的功能列表,请参阅使用 Istio API(集群内 istiod 控制平面) 。
如果您不确定自己使用的是哪个 Cloud Service Mesh 控制平面,可以按照识别控制平面实现 中的说明检查您的控制平面实现。
限制 
注意 :一个网格的所有 Cloud Service Mesh 集群必须始终注册到同一舰队,才能使用 Cloud Service Mesh。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 。 
本指南 概述了扩缩限制 
仅支持多集群的多主要部署选项:多集群的主要远程部署选项不受支持。 
不支持 istioctl ps。您可以改用问题排查 中所述的 gcloud beta container fleet mesh debug 命令。 
不受支持的 API:
EnvoyFilter API
 
WasmPlugin API
 
IstioOperator API
 
Kubernetes Ingress API
 
 
 
如需查看不受支持的 API 字段列表,请参阅托管式 Cloud Service Mesh 中不受支持的 Istio API 。
 
您可以在不订阅 GKE Enterprise 的情况下使用托管式控制平面,但 Google Cloud 控制台中的某些界面元素和功能仅限 GKE Enterprise 订阅者使用。如需了解订阅者和非订阅者可以使用的内容,请参阅 GKE Enterprise 和 Cloud Service Mesh 界面差异 。
 
在代管式控制平面的预配过程中,与所选渠道对应的 Istio CRD 将安装在指定集群中。如果集群中已有 Istio CRD,则它们将会被覆盖。
 
托管式 Cloud Service Mesh 仅支持默认 DNS 域名 .cluster.local。
 
托管式 Cloud Service Mesh 的新安装仅使用 Envoy 提取 JWKS,除非该舰队包含未启用此行为的其他集群。这等同于 PILOT_JWT_ENABLE_REMOTE_JWKS=envoy Istio 选项。与没有 VPCSC_GA_SUPPORTED 条件(见下文)的安装相比,您可能需要为 ServiceEntry 和 DestinationRule 配置进行额外配置。有关示例,请查看 requestauthn-with-se.yaml.tmpl 。您可以通过确定控制平面是否支持 VPC Service Controls (即显示 VPCSC_GA_SUPPORTED 条件),来确定当前操作模式是否等同于 PILOT_JWT_ENABLE_REMOTE_JWKS=envoy。
 
只有不包含其他边车(Cloud Service Mesh 边车除外)的工作负载才支持托管式数据平面。
 
 
控制平面差异 
受支持的功能在 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 时,您的舰队中的任何 GKE on Google Cloud 集群都包含集群内 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 插件直接升级(跳过层级)(请参阅间接升级的说明) 
   
   
 
  
  启用可选功能  
   
   
 
 
注意: 支持间接迁移和升级,这意味着您可以遵循每个版本的标准 Cloud Service Mesh 升级路径 ,直到通过集群内控制平面达到 Cloud Service Mesh 1.27 ,然后才能迁移到托管式控制平面。
仅支持从安装了 Mesh CA 的 Cloud Service Mesh 1.9 版或更高版本进行直接迁移和升级。使用 Istio CA 进行的安装必须先迁移到 Mesh CA。 环境 
  功能 
  托管式 (TD) 
  托管式 (istiod) 
 
 
  当前在发布渠道中提供 的 GKE 版本,位于其中一个受支持的区域  
   
   
 
  当前在发布渠道中提供 的 GKE 版本,位于其中一个受支持的区域 ,GKE Autopilot  集群
   
   
   
 
   Google Cloud 以外的环境(本地 GKE Enterprise、其他公有云上的 GKE Enterprise、Amazon EKS、Microsoft AKS 或其他 Kubernetes 集群) 
   
   
 
 
扩缩 
  功能 
  托管式 (TD) 
  托管式 (istiod) 
 
 
  每个集群 1,000 项服务和 5,000 个工作负载 
   
   
 
  每个网格 50 个无头服务端口 ,每个无头服务端口 36 个 Pod 
   
   
 
 
注意: 这是每个集群支持的服务和工作负载数量的软性限制。超出此限制时,请与 Cloud 支持团队联系。  
  功能 
  托管式 (TD) 
  托管式 (istiod) 
 
 
单网络 
 
 
 
多网络 
 
 
 
  
单项目 
 
 
 
  
使用共享 VPC 的多项目 
 
 
 
 
多集群部署 
有关术语的注意事项 
多主配置意味着必须在所有集群中复制配置。 
主远程配置意味着单个集群包含配置,并视为可靠来源。 
Cloud Service Mesh 会根据通用连接使用简化的网络定义。如果工作负载实例无需使用网关就可以直接通信,则它们位于同一网络上。 
多集群端点发现的简单拓扑意味着,舰队中的每个集群要么参与端点发现,要么不参与端点发现。不受支持的复杂拓扑包括:(a) 单向端点发现(例如,集群 A 可以发现集群 B 中的端点,但反之则不行)和 (b) 分散的端点发现网络(例如,集群 A 和 B 可以发现彼此的端点,集群 C 和 D 可以发现彼此的端点,但 A/B 和 C/D 无法发现彼此的端点)。 
 
基础映像 
† 使用托管式 (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 授权政策 
  § 
   
 
 
对等身份验证 
  功能 
  托管式 (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 子集。TRAFFIC_DIRECTOR 控制平面不支持配置跟踪记录采样率。
注意: 您可以配置第三方遥测产品(例如 Grafana 和 Prometheus),但我们无法保证未来的兼容性,并且 Cloud 支持团队无法提供有关管理这些产品方面的帮助。  
代理请求日志记录 
跟踪 
  功能 
  托管式 (TD) 
  托管式 (istiod) 
 
 
  Cloud Trace 
    * 
    * 
 
  Jaeger 跟踪(允许使用客户管理的 Jaeger) 
   
  兼容 
 
  Zipkin 跟踪(允许使用客户管理的 Zipkin) 
   
  兼容 
 
 
注意: 您可以配置第三方遥测产品(例如 Jaeger、Zipkin 和 Grafana),但我们无法保证未来的兼容性,并且 Cloud 支持团队无法提供有关管理这些产品方面的帮助。  
网络 
流量拦截和重定向机制 
  功能 
  托管式 (TD) 
  托管式 (istiod) 
 
 
  通过具有 CAP_NET_ADMIN 的 init 容器来使用 iptables 
   
  †  
 
  Istio 容器网络接口 (CNI) 
   
   
 
  白盒 Sidecar 
   
   
 
 
† 我们强烈建议您使用容器网络接口 (CNI),而不是 init 容器。
协议支持 
  功能 
  托管式 (TD) 
  托管式 (istiod) 
 
 
  IPv4 
   
   
 
  HTTP/1.1 
   
   
 
  HTTP/2 
   
   
 
  TCP 字节流(备注 1)  
   
   
 
  gRPC  
   
   
 
  IPv6 
  †  
   
 
 
注意 :
虽然 TCP 是受支持的网络协议,并且会收集 TCP 指标,但不会报告这些指标。系统仅针对 Google Cloud 控制台中的 HTTP 服务显示指标。 
不支持将配置有第 7 层功能的服务用于以下协议:WebSocket、MongoDB、Redis、MySQL、Kafka、Cassandra、RabbitMQ、Cloud SQL。您可以通过 TCP 字节流支持来使协议正常工作。如果 TCP 字节流无法支持协议(例如,Kafka 在特定于协议的回复中发送重定向地址,并且此重定向与 Cloud Service Mesh 的路由逻辑不兼容),则协议不受支持。 虽然可以使用 Mongo、MySQL 和 Redis 协议创建网关端口,但网格会将生成的流量视为标准 TCP,缺乏特定于协议的处理。
 
† 在无代理 gRPC 中,IPv6 双栈功能仅在 C++  和 Python  中的 gRPC 1.66.1 或更高版本、gRPC Go v1.71  和 gRPC Node.js v1.12  中受支持。
如果您尝试使用不支持双栈的 gRPC 版本配置双栈功能,客户端将仅使用 Traffic Director 发送的第一个地址。
 
 
Envoy 部署 
  功能 
  托管式 (TD) 
  托管式 (istiod) 
 
 
  Sidecar 
   
   
 
  入站流量网关 
   
   
 
  直接从 Sidecar 出站 
   
   
 
  使用出站流量网关出站 
    * 
    * 
 
 
CRD 支持 
Istio 入站流量网关的负载均衡器 
  功能 
  托管式 (TD) 
  托管式 (istiod) 
 
 
  第三方外部负载均衡器 
   
   
 
  Google Cloud 内部负载均衡器 
    * 
    * 
 
 
服务网格云网关 
  功能 
  托管式 (TD) 
  托管式 (istiod) 
 
 
  服务网格云网关 
   
   
 
 
Kubernetes Gateway API 
  功能 
  托管式 (TD) 
  托管式 (istiod) 
 
 
  Kubernetes Gateway API 
   
   
 
 
负载均衡政策 
  功能 
  托管式 (TD) 
  托管式 (istiod) 
 
 
  轮循 
   
   
 
  最少连接 
   
   
 
  随机 
   
   
 
  直通式 
   
   
 
  一致的哈希 
   
   
 
  市行政区 
   
   
 
  GCPTrafficDistributionPolicy 
   
   
 
  GCPBackendPolicy 
   
   
 
 
服务条目 
  功能 
  托管式 (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 字段 
如果 resolution 字段具有 DNS 值,则为两个或更多个 endpoints[] 条目 
 
目标规则 
  功能 
  托管式 (TD) 
  托管式 (istiod) 
 
 
  DestinationRule v1beta1 
   † 
   
 
 
† TRAFFIC_DIRECTOR 控制平面实现不支持以下字段。
trafficPolicy.loadBalancer.localityLbSetting 字段 
trafficPolicy.tunnel 字段 
trafficPolicy.tls.credentialName 字段 
trafficPolicy.portLevelSettings[].tls.credentialName 字段 
 
此外,TRAFFIC_DIRECTOR 控制平面实现要求定义子集的目标规则与 Kubernetes 服务或 ServiceEntry 位于同一命名空间和集群中。
Sidecar 
  功能 
  托管式 (TD) 
  托管式 (istiod) 
 
 
  Sidecar v1beta1 
   † 
   
 
 
† TRAFFIC_DIRECTOR 控制平面实现不支持以下字段和字段中的值:
ingress 字段 
egress.port 字段 
egress.bind 字段 
egress.captureMode 字段 
inboundConnectionPool 字段 
 
DNS 代理 
  特性 
  托管式 (TD) 
  托管式 (istiod) 
 
 
  跨集群的 Service 域名解析 
   † 
   
 
  集群中 ServiceEntry 的域名解析 
   † 
   
 
  无头 Service  的域名解析 
   
   
 
  地址自动分配  
   
   
 
 
† 需要使用 1.21.5-asm.39 或更高版本的边车。
MeshConfig 
  功能 
  托管式 (TD) 
  托管式 (istiod) 
 
 
  DiscoverySelectors 
   
   
 
  clusterLocal 
   
   
 
  LocalityLB 
   § 
   
 
  ExtensionProviders 
   § 
   
 
  CACert 
   
   
 
  ImageType - distroless 
   § 
   
 
  OutboundTrafficPolicy 
   § 
   
 
  defaultProviders.accessLogging 
   
   
 
  defaultProviders.tracing 
   
   
 
  defaultConfig.tracing.stackdriver 
   § 
   
 
  accessLogFile 
   § 
   
 
 
ProxyConfig 
  功能 
  托管式 (TD) 
  托管式 (istiod) 
 
 
  HTTP/1.0 支持 (ISTIO_META_NETWORK) 
   
   
 
  映像选择(distroless 或基础映像) 
   † 
   
 
  
   Kubernetes 原生边车  (ENABLE_NATIVE_SIDECARS) 
   
   
 
 
† 使用 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  工具