Kubernetes Gateway API v1.1 版本发布
Kubernetes SIG Network 宣布了 Gateway API 的 v1.1 版本。此次更新将多项关键特性提升至标准通道(GA),包括对服务网格(Service Mesh)和 GRPCRoute 的支持。此外,还引入了一些实验性功能,如会话持久化和客户端证书验证。
主要特性
- 服务网格支持:Gateway API 现在支持服务网格,用户可以通过统一的 API 管理入口流量和网格流量。例如,HTTPRoute 现在可以引用 Service 作为
parentRef,从而实现对特定服务的精确流量控制。 - GRPCRoute 标准化:GRPCRoute 自 v1.1.0 起成为标准通道的一部分。对于使用实验性通道的用户,建议等待控制器更新后再升级到标准通道版本。
- HTTPRoute 增强:HTTPRoute 是 Gateway API 中用于指定 HTTP 请求路由行为的类型。现在可以通过
port字段将资源附加到 Gateway Listeners、Services 或其他父资源,从而支持同时附加到多个 Listeners。 - 金丝雀部署示例:通过 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实验性功能
- 客户端证书验证:现在可以为每个 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- 会话持久化:通过新的
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其他重要更新
- 一致性报告 API:新增了
mode字段和gatewayAPIChannel(标准或实验性),自动填充gatewayAPIVersion和gatewayAPIChannel,报告结构更加清晰。 - TLS 术语一致性:对
BackendTLSPolicy进行了重大变更,引入了新的 API 版本(v1alpha3),需要更新引用和配置。 - 兼容性:无需升级到最新 Kubernetes 版本即可使用最新的 Gateway API,只要集群运行在 Kubernetes 1.26 或更高版本即可。
总结
Gateway API v1.1 版本带来了多项重要更新,包括服务网格支持、GRPCRoute 标准化、HTTPRoute 增强以及新的实验性功能如客户端证书验证和会话持久化。这些更新进一步提升了 API 的稳定性和功能性,为用户提供了更强大的流量管理和安全控制能力。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。