Skip to main content
logoTetrate Service ExpressVersion: Latest

Amazon Load Balancing and Tetrate Service Express Integration

Deploy and configure Amazon Load Balancers

Tetrate Service Express (TSE) can automatically provision Amazon Load Balancers on behalf of external-facing (service type: LoadBalancer) services. A use case for this integration is described in the publish a service Getting Started example.

How does the Load Balancing integration work?

TSE determines if you have deployed AWS Load Balancer Controller in each EKS cluster. If AWS Load Balancer Controller is present, TSE will generate configuration annotations for this; otherwise, TSE will fall back to the legacy AWS cloud provider load balancer controller.

AWS Load Balancer Controller is recommended

Tetrate recommends installing AWS Load Balancer Controller on each workload cluster.

For more background information, check out the Amazon resource Network load balancing on Amazon EKS.

With either load balancer controller, TSE selects AWS Network Load Balancer by default for external-facing services. Network Load Balancer provides the best level of compatibility with TSE, and is a cost-effective and lightweight solution.

You can customise the load balancing options using annotations service.beta.kubernetes.io. These are documented here:

For example, when deploying an Ingress Gateway, you can enable cross-zone load balancing and support external (internet) clients as follows:

apiVersion: install.tetrate.io/v1alpha1
kind: IngressGateway
metadata:
name: bookinfo-ingress-gw
namespace: bookinfo
spec:
kubeSpec:
service:
type: LoadBalancer
annotations:
service.beta.kubernetes.io/aws-load-balancer-name: my-bookinfo-gw-load-balancer
service.beta.kubernetes.io/aws-load-balancer-scheme: internet-facing
service.beta.kubernetes.io/aws-load-balancer-attributes: "load_balancing.cross_zone.enabled=true"