使用 Istio API(代管式控制平面)的受支持功能

本页介绍了支持的功能和限制, 使用 TRAFFIC_DIRECTORISTIOD 作为控制平面的 Cloud Service Mesh 两种实现之间的差异。请注意,这些不是您可以选择的选项。ISTIOD 实现仅适用于现有用户。 新安装的应用会尽可能使用 TRAFFIC_DIRECTOR 实现。

如需查看集群内控制平面支持的 Cloud Service Mesh 功能列表,请参阅使用 Istio API(集群内 istiod 控制平面)。如果您不确定自己使用的是哪种 Cloud Service Mesh 控制平面,可以按照确定控制平面实现中的说明检查控制平面实现

限制

存在以下限制:

  • GKE 集群必须位于受支持的区域之一中。
  • GKE 版本必须是受支持的版本
  • 仅支持在环境中列出的平台。
  • 不支持更改发布渠道
  • 迁移来源 使用 asmcli 的托管式 Cloud Service Mesh 更改为 将 Cloud Service Mesh 与舰队 API 搭配使用 不受支持。同样,使用舰队 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,则它们将会被覆盖。

  • Managed Cloud Service Mesh 仅支持默认 DNS 网域 .cluster.local

  • 自 2023 年 11 月 14 日起,在快速发布渠道上新安装的代管式 Cloud Service Mesh 将仅使用 Envoy 提取 JWKS。这相当于 PILOT_JWT_ENABLE_REMOTE_JWKS=envoy Istio 选项。与在常规稳定发布渠道中进行安装,或在 2023 年 11 月 14 日之前在快速发布渠道中进行安装相比,您可能需要额外的 ServiceEntryDestinationRule 配置。如需查看示例,请参阅 requestauthn-with-se.yaml.tmpl

控制平面差异

ISTIODTRAFFIC_DIRECTOR 在支持的功能上存在差异 控制平面实现如需检查您使用的是哪种实现,请参阅识别控制平面实现

  • - 表示该功能可用且默认处于启用状态。
  • † - 表示功能 API 在不同平台之间可能存在差异。
  • * - 表示该功能支持 并可以启用,如 启用可选功能 或功能表中链接的功能指南。
  • § - 表示该地图项 受许可名单支持代管式 Anthos Service Mesh 的之前用户会自动列入组织级许可名单。与 Google Cloud 支持团队联系以申请访问权限 或查看您的许可名单状态。
  • - 表示该功能不可用或不受支持。

Google Cloud 支持完全支持默认功能和可选功能。该表中未明确列出的功能会得到全力支持。

控制平面实现由哪些因素决定

当您首次在舰队中预配托管式 Cloud Service Mesh 时,我们会确定要使用哪种控制平面实现。相同的实现是 用于在该舰队中预配代管式 Cloud Service Mesh 的所有集群。

加入代管式 Cloud Service Mesh 的新舰队会收到 TRAFFIC_DIRECTOR 控制平面实现,但有一些例外情况:

  • 如果您是现有的代管式 Cloud Service Mesh 用户,则会收到ISTIOD 控制平面实现(当您将新舰队加入同一 Google Cloud 时) 组织改用代管式 Cloud Service Mesh,至少将持续到 2024 年 6 月 30 日。 如果您是这类用户之一,则可以联系支持人员来调整相关设置。 当前使用情况与 TRAFFIC_DIRECTOR 不兼容的用户 未做更改的实施将继续收到ISTIOD 到 2024 年 9 月 8 日才实施。(这些用户收到了服务通告。)
  • 如果您在预配代管式 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)
每个集群 1000 项服务和 5000 个工作负载
每个网格有 50 个无头服务端口,每个无头 ServicePort 有 36 个 Pod

平台环境

特征 受管 (TD) 受管理 (istiod)
单网络
多网络
单项目
使用共享 VPC 的多项目

多集群部署

特征 受管 (TD) 代管式 (istiod)
多主模式
主远程
使用声明式 API 发现多集群端点
使用远程 Secret 进行多集群端点发现

有关术语的注意事项

  • 多主配置意味着必须复制配置 所有集群中
  • 主远程配置意味着单个集群包含配置,并视为可靠来源。
  • Cloud Service Mesh 会根据通用连接使用简化的网络定义。如果工作负载实例无需使用网关就可以直接通信,则它们位于同一网络上。

基础映像

特征 受管 (TD) 代管式 (istiod)
Distroless 代理映像

† 具有代管式 (TD) 控制平面的 Cloud Service Mesh 仅支持 distroless 映像类型。您无法更改此 ID。

请注意,distroless 映像包含最少的二进制文件,因此您无法执行常规的 命令(如 bash 或 curl),因为它们未出现在 distroless 映像中。 不过,您可以使用临时容器附加到正在运行的工作负载 Pod,以便检查该 Pod 并运行自定义命令。有关示例,请参见 收集 Cloud Service Mesh 日志

安全

VPC Service Controls

特征 受管 (TD) 受管理 (istiod)
VPC Service Controls 预览
VPC Service Controls 正式版

证书分发和轮替机制

特征 受管 (TD) 代管式 (istiod)
工作负载证书管理
入站流量出站流量网关的外部证书管理。

证书授权机构 (CA) 支持

特征 受管 (TD) 代管式 (istiod)
Cloud Service Mesh 证书授权机构
Certificate Authority Service
Istio CA
与自定义 CA 集成

安全功能

除了支持 Istio 安全功能外,Cloud Service Mesh 提供了更多功能来帮助您保护应用。

特征 受管 (TD) 受管理 (istiod)
IAP 集成
最终用户身份验证
试运行模式
拒绝日志记录
审核政策(不支持)

授权政策

特征 受管 (TD) 受管理 (istiod)
授权 v1beta1 政策
自定义授权政策 §

TRAFFIC_DIRECTOR 控制平面实现不支持 rules.from.source.RemoteIprules.from.source.NotRemoteIp 字段。

对等身份验证

特征 受管 (TD) 代管式 (istiod)
自动 mTLS
mTLS PERMISSIVE 模式
mTLS STRICT 模式 * *
mTLS 停用模式

请求身份验证

特征 受管 (TD) 受管理 (istiod)
JWT 身份验证(备注 1)
基于 JWT 声明的路由
JWT 将声明复制到标头

注意

  1. 第三方 JWT 默认处于启用状态。
  2. 在定义 RequestAuthentication API 时,在 JWKSURI 中添加完整的 FQDN/主机名。
  3. 指定 JWKS URI 时,代管式控制平面会强制 Envoy 提取 JWKS。

遥测

指标

特征 受管 (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)
流量日志
访问日志 * *

跟踪

特征 受管 (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

注意

  1. 虽然 TCP 是网络支持的协议,并且系统会收集 TCP 指标,但不会报告这些指标。系统仅针对 Google Cloud 控制台中的 HTTP 服务显示指标。
  2. 不支持将配置有第 7 层功能的服务用于以下协议:WebSocket、MongoDB、Redis、Kafka、Cassandra、RabbitMQ、Cloud SQL。您可以通过 TCP 字节流支持来使协议正常工作。如果 TCP 字节流无法支持协议(例如,Kafka 在特定于协议的回复中发送重定向地址,并且此重定向与 Cloud Service Mesh 的路由逻辑不兼容),则协议不受支持。
  3. † IPv6 作为双栈网络的预览版功能提供。在 无代理 gRPC、双栈功能仅在 gRPC 1.66.1 或更高版本中受支持 C++PythongRPC Node.js v1.12。如果您尝试使用不支持双栈的 gRPC 版本配置双栈功能,客户端将仅使用 Traffic Director 发送的第一个地址。

Envoy 部署

特征 受管 (TD) 受管理 (istiod)
Sidecar
入站流量网关
直接从 Sidecar 出站
使用出站流量网关出站 * *

CRD 支持

特征 受管 (TD) 代管式 (istiod)
Sidecar 资源
服务条目资源
百分比、故障注入、路径匹配、重定向、重试、重写、超时、重试、镜像、标头操纵和 CORS 路由规则
`EnvoyFilter` API §
`WasmPlugin` API
Istio Operator

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 字段
  • 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 字段

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-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 工具