Deploying the AWS Gateway API Controller
Follow these instructions to create a cluster and deploy the AWS Gateway API Controller.
First, configure security group to receive traffic from the VPC Lattice fleet. You must set up security groups so that they allow all Pods communicating with VPC Lattice to allow traffic on all ports from the 169.254.171.0/24
address range. See Control traffic to resources using security groups for details. You can use the following managed prefix to provide the values:
{
"Return": true,
"SecurityGroupRules": [
{
"SecurityGroupRuleId": "sgr-07edb399e8903357b",
"GroupId": "sg-047f384df6b944788",
"GroupOwnerId": "364959265732",
"IsEgress": false,
"IpProtocol": "-1",
"FromPort": -1,
"ToPort": -1,
"CidrIpv4": "169.254.171.0/24"
}
]
}
This step will install the controller and the CRDs (Custom Resource Definitions) required to interact with the Kubernetes Gateway API.
Similar to IngressClass
for Ingress
and StorageClass
for PersistentVolumes
, before creating a Gateway
, we need to formalize the types of load balancing implementations that are available via the Kubernetes resource model with a GatewayClass. The controller that listens to the Gateway API relies on an associated GatewayClass
resource that the user can reference from their Gateway
.
The command above will create the following resource:
# Create a new Gateway Class for AWS VPC lattice provider
apiVersion: gateway.networking.k8s.io/v1beta1
kind: GatewayClass
metadata:
name: amazon-vpc-lattice
spec:
controllerName: application-networking.k8s.aws/gateway-api-controller