跳到主要内容

GAMMA Initiative — 服务网格集成的未来

4.1 什么是 GAMMA?

GAMMA(Gateway API for Mesh Management and Administration) 是将 Gateway API 扩展到服务网格领域的倡议。

  • GA 达成:Gateway API v1.1.0(2025年10月)
  • 集成范围:North-South(入口流量)+ East-West(服务网格)流量
  • 核心概念:过去,入口控制器和服务网格拥有完全独立的配置体系,而 GAMMA 将其统一为单一 API
  • 基于角色的配置:将 Gateway API 的角色分离原则同样应用于网格流量

GAMMA 的出现使集群运维人员不再需要学习和管理两种不同的 API。入口流量和网格流量都可以使用相同的 Gateway API 资源进行管理。

4.2 核心目标 & 网格配置模式

GAMMA Initiative 核心概念
4大核心目标 & 网格配置模式

4大核心目标

🎯
统一 API
使用相同的 Gateway API 资源管理入口流量和服务网格
👥
基于角色的配置
将 Gateway API 的角色分离原则同样应用于网格流量
最小 API 变更
仅对现有 Gateway API 进行最少的更改即可支持网格功能
🔄
跨实现一致性
在 Istio、Cilium、Linkerd 等多种网格中使用相同的 API

网格配置模式

传统方式
Ingress Controller (仅 North-South)
Service Mesh (仅 East-West)
独立的配置体系
▼ GAMMA Initiative ▼
GAMMA 方式
Gateway API (统一 API)
North-South (parentRef: Gateway)
East-West (parentRef: Service)
统一为单一 API

配置方式对比

传统方式
Ingress (独立 CRD)
Ingress/VirtualService 等
Mesh (独立 CRD)
ServiceEntry/DestinationRule 等
→ 需要学习2种 API
GAMMA 方式
HTTPRoute (统一)
• parentRef: Gateway
• parentRef: Service
→ 统一为1种 API

GAMMA HTTPRoute 示例

直接对 Service 应用 L7 策略
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
  name: service-b-retry
  namespace: production
spec:
  parentRefs:
    - group: ""
      kind: Service
      name: service-b    # 附加到 Service 而非 Gateway
  rules:
    - backendRefs:
        - name: service-b
          port: 8080
      timeouts:
        request: 10s
      retry:
        attempts: 3
        backoff: 100ms
      # 对发往 Service B 的流量应用重试/超时策略

4.3 GAMMA 支持现状

以下是主要服务网格实现的 GAMMA 支持现状。

🔄 GAMMA 实现对比
按功能、数据平面、资源开销详细对比 — 点击展开详情
AWS VPC Lattice + ACK✅ GAAWS 托管 (VPC 级别)❌ 无需
Istio Ambient Mode✅ GAztunnel (L4) + waypoint (L7)❌ 无需 (Ambient)
Cilium✅ GAeBPF + Envoy (L7)❌ 无需 (eBPF)
Linkerd✅ Betalinkerd2-proxy (Rust)✅ 需要 (轻量级)
kGateway (Solo.io)✅ GAEnvoy❌ 无需
AWS 环境中的 GAMMA

在 AWS 环境中,可以使用 VPC Lattice + ACK 无需 Sidecar 即可实现 GAMMA 模式。提供基于 IAM 的 mTLS、CloudWatch/X-Ray 可观测性以及通过 AWS FIS 进行故障注入等完整的托管服务网格功能。

4.4 GAMMA 的优势

1. 缩短学习曲线

团队只需学习一种 API(Gateway API)即可管理入口流量和网格流量。

2. 配置一致性

使用相同的 YAML 结构和模式管理 North-South/East-West 所有流量。

# 入口流量 (North-South)
spec:
parentRefs:
- kind: Gateway
name: external-gateway

# 网格流量 (East-West)
spec:
parentRefs:
- kind: Service
name: backend-service

3. 基于角色的分离

基础设施团队管理 Gateway、开发团队管理 HTTPRoute 的明确职责分离同样适用于网格流量。

4. 厂商中立性

可以使用相同的 API 管理多种网格实现,防止厂商锁定。