Gateway API 中的 GatewayClass 资源有什么作用?
1. 定义网关实现类别
- GatewayClass 是集群级(Cluster-scoped)资源,声明"一类网关"的通用配置与行为,类似于 Ingress 的 IngressClass 或存储的 StorageClass。
- 每个 GatewayClass 通过 spec.controllerName 引用具体实现它的控制器(如 Envoy Gateway、Istio、NGINX Gateway Fabric 等)。
2. 由基础设施提供商创建
- 通常由基础设施提供商或平台团队创建,集群中至少需定义一个 GatewayClass 才能拥有可用的网关。
- 可通过 parametersRef 引用控制器专属的配置对象,实现实现特定的参数化定制,而无需改动通用字段。
3. 能力声明与一致性
- GatewayClass 的状态提供 supportedFeatures 字段(自 v1.4 起进入标准通道),由控制器主动声明其所支持的功能集合,用户与工具可据此判断该实现的能力范围;一致性测试套件也会基于该字段自动选取用例,无需依赖厂商文档猜测。