Kubernetes 网关 API v1.1 发布:新增标准功能与实验性增强

Kubernetes Gateway API v1.1 版本发布

Kubernetes SIG Network 宣布了 Gateway API 的 v1.1 版本。此次更新将多项关键特性提升至标准通道(GA),包括对服务网格(Service Mesh)和 GRPCRoute 的支持。此外,还引入了一些实验性功能,如会话持久化和客户端证书验证。

主要特性

  1. 服务网格支持:Gateway API 现在支持服务网格,用户可以通过统一的 API 管理入口流量和网格流量。例如,HTTPRoute 现在可以引用 Service 作为 parentRef,从而实现对特定服务的精确流量控制。
  2. GRPCRoute 标准化:GRPCRoute 自 v1.1.0 起成为标准通道的一部分。对于使用实验性通道的用户,建议等待控制器更新后再升级到标准通道版本。
  3. HTTPRoute 增强:HTTPRoute 是 Gateway API 中用于指定 HTTP 请求路由行为的类型。现在可以通过 port 字段将资源附加到 Gateway Listeners、Services 或其他父资源,从而支持同时附加到多个 Listeners。
  4. 金丝雀部署示例:通过 HTTPRoute 可以实现金丝雀部署,例如将流量 50/50 分配给原始 color 服务和 color2 服务。
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
  name: color-canary
  namespace: faces
spec:
  parentRefs:
    - name: color
      kind: Service
      group: ""
      port: 80
  rules:
  - backendRefs:
    - name: color
      port: 80
      weight: 50
    - name: color2
      port: 80
      weight: 50

实验性功能

  1. 客户端证书验证:现在可以为每个 Gateway Listener 配置客户端证书验证,通过 frontendValidation 字段指定 CA 证书。
apiVersion: gateway.networking.k8s.io/v1
kind: Gateway
metadata:
  name: client-validation-basic
spec:
  gatewayClassName: acme-lb
  listeners:
    name: foo-https
    protocol: HTTPS
    port: 443
    hostname: foo.example.com
  tls:
    certificateRefs:
      kind: Secret
      group: ""
      name: foo-example-com-cert
    frontendValidation:
      caCertificateRefs:
        kind: ConfigMap
        group: ""
        name: foo-example-com-ca-cert
  1. 会话持久化:通过新的 BackendLBPolicy 策略实现会话持久化,支持会话超时、会话名称、会话类型和 Cookie 生命周期等设置。
apiVersion: gateway.networking.k8s.io/v1alpha2
kind: BackendLBPolicy
metadata:
  name: lb-policy
  namespace: foo-ns
spec:
  targetRefs:
  - group: core
    kind: service
    name: foo
  sessionPersistence:
    sessionName: foo-session
    absoluteTimeout: 1h
    idleTimeout: 30m
    type: Cookie
    cookieConfig:
      lifetimeType: Session

其他重要更新

  1. 一致性报告 API:新增了 mode 字段和 gatewayAPIChannel(标准或实验性),自动填充 gatewayAPIVersiongatewayAPIChannel,报告结构更加清晰。
  2. TLS 术语一致性:对 BackendTLSPolicy 进行了重大变更,引入了新的 API 版本(v1alpha3),需要更新引用和配置。
  3. 兼容性:无需升级到最新 Kubernetes 版本即可使用最新的 Gateway API,只要集群运行在 Kubernetes 1.26 或更高版本即可。

总结

Gateway API v1.1 版本带来了多项重要更新,包括服务网格支持、GRPCRoute 标准化、HTTPRoute 增强以及新的实验性功能如客户端证书验证和会话持久化。这些更新进一步提升了 API 的稳定性和功能性,为用户提供了更强大的流量管理和安全控制能力。

阅读 22
0 条评论