Kubernetes Ingress
is an API object that allows you manage external (or) internal HTTP[s]
access to Kubernetes services
running in a cluster.
Amazon Elastic Load Balancing Application Load Balancer
(ALB) is a popular AWS service that load balances incoming traffic at
the application layer across multiple targets, such as Amazon EC2
instances, in a region. ALB supports multiple features including host or
path based routing, TLS (Transport layer security) termination,
WebSockets, HTTP/2, AWS WAF (web application firewall) integration,
integrated access logs, and health checks.
The AWS ALB Ingress controller
is a Kubernetes SIG-AWS subproject - it was the second sub-project added to
SIG-AWS after the aws-authenticator subproject.
The ALB Ingress controller triggers the creation of an ALB and the
necessary supporting AWS resources whenever a Kubernetes user declares
an Ingress resource on the cluster.
TargetGroups
are created for each backend specified in the Ingress resource.
Listeners
are created for every port specified as Ingress resource annotation.
When no port is specified, sensible defaults (80 or 443) are used.
Rules
are created for each path specified in your ingress resource. This
ensures that traffic to a specific path is routed to the correct
TargetGroup.
In this post, we will work through a simple example of running ALB based
Kubernetes Ingresses with Pulumi
EKS,
AWS, and
AWSX
packages.
Read more →