Skip to main content

Ingress

This guide details how to create network access to your models deployed in a Kubernetes cluster.

Prerequisites

Make sure you have the AWS Load Balancer Controller installed in your cluster. Amazon Elastic Kubernetes Service (EKS) provides two options for exposing applications which can be configured with the Inference Stack.

Application Load Balancer

To provision an Application Load Balancer add the following values to the Inference Stack helm chart:

ingress:
className: alb
annotations:
helm.sh/resource-policy: keep
alb.ingress.kubernetes.io/load-balancer-name: onwards-ingress
alb.ingress.kubernetes.io/target-type: ip
# alb.ingress.kubernetes.io/scheme: internet-facing
# alb.ingress.kubernetes.io/healthcheck-path: /healthz
hosts:
- host: example.com
paths:
- path: /
pathType: Prefix
note

Add alb.ingress.kubernetes.io/scheme: internet-facing to the annotations section for public access, it will default to being internal otherwise.

AWS Network Load Balancer

To provision a Network Load Balancer add the following values to the Inference Stack helm chart:

onwards:
loadBalancer:
enabled: true
nameOverwrite: onwards-service-loadbalancer
port: 80
annotations:
helm.sh/resource-policy: keep
service.beta.kubernetes.io/aws-load-balancer-type: "external"
service.beta.kubernetes.io/aws-load-balancer-nlb-target-type: "ip"
# service.beta.kubernetes.io/aws-load-balancer-scheme: "internet-facing"
# alb.ingress.kubernetes.io/healthcheck-path: /healthz
note

Add service.beta.kubernetes.io/aws-load-balancer-scheme: "internet-facing" to the annotations section for public access; it will default to being internal otherwise.