In addition to the Kubernetes stack on AWS, I’m also helping to build an on-premise Kubernetes platform. We want to continue to leverage feed, the ingress controller we built. Ingress generally requires an external IP load balancer to front requests from the internet and elsewhere. In AWS we use ELBs. For on-premise, we need to build our own.
The solution we’ve settled on for now is:
- IPVS with consistent hashing (using built-in source hash module) and direct-return.
- gorb to provide an API for ipvs so our ingress controller can attach and detach itself.
- VIPs registered to a DNS entry with active/passive failover, handled by keepalived.