Skip to content

Commit 56fc78b

Browse files
authored
Merge pull request #4550 from shuqz/update-doc
[feat gateway-api]update gw api doc
2 parents 2d9605d + 3c68572 commit 56fc78b

File tree

3 files changed

+34
-6
lines changed

3 files changed

+34
-6
lines changed
60.8 KB
Loading

docs/guide/gateway/gateway.md

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,5 @@
11
# Gateway API
22

3-
!!! warning
4-
- The team is actively trying to close conformance and support gaps.
5-
- Using the LBC and Gateway API together is not suggested for production workloads (yet!)
6-
7-
83
The AWS Load Balancer Controller (LBC) supports reconciliation for Kubernetes Gateway API objects. It satisfies
94
L4 routes (TCPRoute, UDPRoute, TLSRoute) with an AWS NLB. It satisfies L7 routes (HTTPRoute, GRPCRoute) using an AWS ALB.
105
Mixing protocol layers, e.g. TCPRoute and HTTPRoute on the same Gateway, is not supported.

docs/how-it-works.md

Lines changed: 34 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ The following diagram details the AWS components this controller creates. It als
88

99
!!!warning "Note"
1010

11-
The controller manages the configurations of the resources it creates, and we do not recommend out-of-band modifications to these resources because the controller may revert the manual changes during reconciliation. We recommend to use configuration options provided as best practice, such as ingress and service annotations, controller command line flags and IngressClassParams.
11+
The controller manages the configurations of the resources it creates, and we do not recommend out-of-band modifications to these resources because the controller may revert the manual changes during reconciliation. We recommend to use configuration options provided as best practice, such as ingress and service annotations, controller command line flags, IngressClassParams, and Gateway API resources.
1212

1313
### Ingress Creation
1414

@@ -47,3 +47,36 @@ Ingress traffic starts at the ALB and reaches the Kubernetes nodes through each
4747
#### IP mode
4848
Ingress traffic starts at the ALB and reaches the Kubernetes pods directly. CNIs must support directly accessible POD ip via [secondary IP addresses on ENI](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html).
4949

50+
## Gateway API
51+
52+
In addition to Ingress and Service resources, the AWS Load Balancer Controller also supports the [Kubernetes Gateway API](https://gateway-api.sigs.k8s.io/). Gateway API is a more expressive, extensible, and role-oriented API for managing traffic routing in Kubernetes.
53+
54+
The controller satisfies Gateway API resources as follows:
55+
56+
- **L7 Routes (HTTPRoute, GRPCRoute)**: Provisioned using [Application Load Balancers](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/introduction.html)
57+
- **L4 Routes (TCPRoute, UDPRoute, TLSRoute)**: Provisioned using [Network Load Balancers](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/introduction.html)
58+
59+
For more information on Gateway API support, including prerequisites, configuration, and examples, see the [Gateway API Guide](guide/gateway/gateway.md).
60+
61+
### How Gateway API Works
62+
63+
The AWS Load Balancer Controller runs a continuous reconciliation loop to align the desired state expressed through Gateway API objects with the actual state of AWS Load Balancer infrastructure. The controller runs dedicated controller instances for L4 routing (NLB) and L7 routing (ALB), each following a similar workflow.
64+
65+
The following diagram illustrates the Gateway API reconciliation process:
66+
67+
![gateway-reconcile](assets/images/gateway-reconcile.png)
68+
69+
At a high level, the reconciliation loop works as follows:
70+
71+
**[1] API Monitoring**: The controller continuously monitors the Kubernetes API for Gateway API resources being created, modified, or deleted.
72+
73+
**[2] Queueing**: Identified resources are added to an internal queue for processing.
74+
75+
**[3] Processing**: For each item in the queue:
76+
77+
- The associated GatewayClass is verified to determine if it is or should be a managed resource.
78+
- If managed, the Gateway API definition is mapped to AWS resources such as NLB/ALB, Listeners, Listener Rules, Target Groups, and Addons.
79+
- These mapped resources are compared with the actual state in AWS. For any resource that does not match the desired state, the controller executes the necessary AWS API calls to reconcile the differences.
80+
81+
**[4] Status Updates**: After reconciliation, the controller updates the status field of the corresponding Gateway resource. This provides real-time feedback on provisioned AWS resources, such as the load balancer's DNS name and ARN, and whether the Gateway is accepted and programmed.
82+

0 commit comments

Comments
 (0)