# 自定义Gateway API资源说明
Gateway API已经成为Kubernetes云原生流量路由的下一代标准。为了全面掌握集群内的流量流向与规则配置。在CCE中，[Gateway](https://kubernetes.io/zh-cn/docs/concepts/services-networking/gateway/#api-kind-gateway)和[HTTPRoute](https://kubernetes.io/zh-cn/docs/concepts/services-networking/gateway/#api-kind-httproute)资源与原生Gateway API中的定义保持一致，本文介绍除Gateway和HTTPRoute以外的其他自定义资源。
#### GatewayClass
GatewayClass是Kubernetes Gateway API中用于定义底层网关实现类型（如Envoy、CCE）及其全局配置的集群级模板。
```
apiVersion: gateway.networking.k8s.io/v1
kind: GatewayClass
metadata:
  name: cce-shared-internal
spec:
  controllerName: gateway.cce.io/gateway-controller
  parametersRef:
    group: gateway.cce.io
    kind: LoadBalancerAutoCreateConfiguration
    name: cce-shared-internal
```
GatewayClass 主要字段说明：
| 字段                     | 解释                                                                                                                                                                                                                                                                                                                 |
|:---|:---|
| spec.controllerName | 用来标识应该由哪个网络控制器（Controller）来管理和实现该网关类。 - ELB Gateway：gateway.cce.io/gateway-controller  - Envoy Gateway：gateway.envoyproxy.io/gatewayclass-controller   |
| spec.parametersRef     | 用于引用特定于具体 Gateway 控制器的配置资源。 - ELB Gateway：LoadBalancerAutoCreateConfiguration  - Envoy Gateway：EnvoyProxy                                            |
   
#### ELB Gateway 自定义资源
#### LoadBalancerAutoCreateConfiguration（简称lbconfig）
用于定义ELB（弹性负载均衡）的创建参数。您只需将配置好的lbconfig关联至自定义GatewayClass或Gateway，CCE即可根据预设参数自动为您创建对应的ELB实例，详见[自动创建负载均衡配置（lbconfig）](https://support.huaweicloud.com/usermanual-cce/cce_10_1182.html)。
- **绑定方式**：通常将其绑定在GatewayClass的spec.parametersRef中（全局默认），或者绑定在具体Gateway的spec.infrastructure.parametersRef中（单网关定制）。
- **典型配置能力**：自定义ELB参数。支持配置Gateway的负载均衡器实例参数，包括公/私网类型、带宽规格及实例类型（如共享型或独享型ELB）。
 
#### ListenerConfiguration（简称lsconfig）
用于精细化配置和管理ELB监听器的高级参数（如安全策略、连接超时时间等），详见[监听器参数配置（lsconfig）](https://support.huaweicloud.com/usermanual-cce/cce_10_1183.html)。
- **绑定方式**：使用spec.targetRef显式声明该策略作用于哪一个监听器
- **典型配置能力** ：
  - TLS证书与安全控制： 配置HTTPS监听器的服务器证书、SNI域名证书及客户端CA证书（双向认证）。
  
  - 路由与监听控制： 配置转发策略优先级、安全协议版本。
  
  - 入口防护： 配置连接超时时间、客户端IP访问黑白名单。
   
 
#### PoolConfiguration（简称poolconfig）
用于配置和调整后端服务器组的相关参数，详见[后端服务器组配置（poolConfig）](https://support.huaweicloud.com/usermanual-cce/cce_10_1184.html)。
- **绑定方式**：使用spec.targetRef显式声明该策略作用于哪一个Service
- **典型配置能力** ：
  - 健康检查： 支持配置检查协议、端口、路径、探测周期及健康/异常阈值等参数，实现故障后端实例的流量自动隔离与恢复。
  
  - 负载均衡与会话保持： 支持配置ROUND_ROBIN（轮询）、LEAST_CONNECTIONS（最小连接数）与SOURCE_IP（源IP哈希）三种负载均衡算法，并可配置会话保持策略。
   
 
#### Envoy Gateway 自定义资源
此处仅对部分常用扩展CRD进行重点介绍。更多高级资源与详细字段说明，请参见[Gateway API Extensions](https://gateway.envoyproxy.io/docs/api/extension_types/)。
#### EnvoyProxy
控制平面解析到标准Gateway资源后，需要创建具体的Envoy Pod/Deployment/Service作为流量入口。通过EnvoyProxy CRD，运维人员可以对这些生成的Envoy实例进行精细化的Pod资源定制、网络暴露方式设定，详见[Customize EnvoyProxy](https://gateway.envoyproxy.io/docs/tasks/operations/customize-envoyproxy/)。
- **绑定方式**：通常将其绑定在GatewayClass的spec.parametersRef中（全局默认），或者绑定在具体Gateway的spec.infrastructure.parametersRef中（单网关定制）。
- **典型配置能力** ：
  - Pod资源配置： 设置Envoy容器的CPU/Memory requests和limits、副本数（Replicas）、亲和性（Affinity）以及NodeSelector。
  
  - 网络服务类型： 指定Envoy生成的Kubernetes Service类型（LoadBalancer / NodePort / ClusterIP）及相关Annotations。
   
- **配置示例** ：[自定义EnvoyProxy来为Gateway配置已有ELB](https://support.huaweicloud.com/usermanual-cce/cce_10_1147.html#cce_10_1147__section34411953184)
 
#### BackendTrafficPolicy
通过策略附加（Policy Attachment）模式，在不侵入应用代码的情况下，为具体的Route（如HTTPRoute / GRPCRoute）或
Gateway开启各种治理能力，包括熔断、限流、健康检查、超时以及连接池调优等，详见[BackendTrafficPolicy](https://gateway.envoyproxy.io/docs/concepts/gateway_api_extensions/backend-traffic-policy/)。
- **绑定方式**：使用spec.targetRefs显式声明该策略作用于哪一个资源（如kind: HTTPRoute或kind: Gateway）。
- **典型配置能力** ：
  - 熔断器与连接池（Circuit Breaking）： 限制最大连接数、最大并发请求数、最大等待队列数，防止后端服务被冲垮。
  
  - 负载均衡算法： 指定RoundRobin、LeastRequest或Random等后端选择算法。
  
  - 限流控制（Rate Limiting）： 限制客户端访问频率（支持Local本地内存限流与Global全局分布式限流），防止恶意刷流量、突发大流量攻击或超额调用。
   
- ****配置**示例** ：[通过Envoy Gateway配置限流](https://support.huaweicloud.com/usermanual-cce/cce_10_1157.html)
 
