To get traffic into your Kubernetes cluster, you need an ingress controller. To properly address security, availability, and developer workflows in a Kubernetes environment, you need more. Learn why you really need an Edge Stack API Gateway to securely and effectively manage traffic to your Kubernetes application.
Kubernetes ingress is a collection of routing rules that govern how external users access services running in a Kubernetes cluster.
A typical Kubernetes application has pods running inside a cluster and a load balancer outside. The load balancer takes connections from the internet and routes the traffic to an edge proxy that sits inside your cluster.
This edge proxy is then responsible for routing traffic into your pods. The edge proxy is commonly called an ingress controller because it is commonly configured using ingress resources in Kubernetes; however, the edge proxy can also be configured with custom resource definitions (CRDs) or annotations.
In this video from our Getting Edgy explainer series, Richard Li explains Kubernetes ingress.
In Kubernetes, there are three general approaches to exposing your application.
NGINX was initially designed as a web server in 2004. In 2006, a competing web server HAProxy was released.
Efforts to manage layer 7 began in 2010 in the form of smart RPC libraries with Finagle from Twitter, Hystrix from Netflix, and gRPC from Google. Then, 3 years later, Airbnb announced SmartStack, the spiritual ancestor of the modern-day service mesh.
2016 was a major year for proxies and service meshes with Buoyant announcing Linkerd and Lyft announcing Envoy. Since the release of Envoy, the space has continued to change rapidly with responses from the incumbents, NGINX and HAProxy as well as new projects based on Envoy Proxy. Today, there are 13 Envoy-based projects referenced on the Envoy website.
If an ingress controller is a car, a proxy is the engine. Proxies have evolved from web servers in the mid-2000s to high powered layer 7 proxies today to account for the new world of microservices and cloud native applications. Today, NGINX, HAProxy, and Envoy are the most popular proxies powering Kubernetes Ingress Controllers.
In Kubernetes, there are three general approaches to exposing your application.
The cloud presents new challenges for cloud native applications. Whether you are building a greenfield app or migrating a legacy app, your cloud native application will have many more microservices at the edge. These microservices will typically be managed by different teams and therefore have diverse requirements. Envoy
Proxy and Ambassador were created to address these exact challenges.
The Kubernetes documentation and many other resources will recommend a simple ingress controller to get you started getting traffic into your Kubernetes cluster. However, as your application becomes more advanced there is a lot of additional functionality you will expect from your ingress controller, including:
Edge Stack API Gateway delivers the scalability, security, and simplicity for some of the world's largest Kubernetes installations.