Skip to content

Ingress Overview

In Kubernetes, an Ingress is a collection of rules that allow inbound connections to reach the cluster services. It provides HTTP and HTTPS routing to services based on the request host and path. Ingress is implemented by an Ingress Controller, which is responsible for fulfilling the Ingress rules.

Make your HTTP (or HTTPS) network service available using a protocol-aware configuration mechanism, that understands web concepts like URIs, hostnames, paths, and more. The Ingress concept lets you map traffic to different backends based on rules you define via the Kubernetes API.

Key Features of Ingress

  • Path-based Routing: Ingress can route traffic based on the URL path, allowing different services to be accessed via different paths on the same domain.
  • Host-based Routing: Ingress can route traffic based on the host header, allowing multiple domains to be served from a single IP address.
  • TLS Termination: Ingress can handle TLS termination, allowing secure HTTPS connections to be established at the Ingress level.
  • Load Balancing: Ingress can distribute traffic across multiple backend services, providing load balancing capabilities.
  • Authentication: Ingress can be configured to require authentication for accessing certain services.
  • Custom Rules: Ingress allows for custom rules to be defined, enabling advanced routing and traffic management.

Common Ingress Controllers

  • NGINX Ingress Controller: A widely used Ingress controller that provides robust features and is highly configurable.
  • Traefik: A modern HTTP reverse proxy and load balancer that makes deploying microservices easy.
  • HAProxy Ingress: An Ingress controller based on HAProxy, known for its high performance and reliability.
  • Istio Ingress Gateway: Part of the Istio service mesh, providing advanced traffic management capabilities.
  • Contour: An Ingress controller that uses Envoy as the data plane, providing advanced load balancing and routing features.
  • AWS ALB Ingress Controller: An Ingress controller that integrates with AWS Application Load Balancer (ALB) to manage ingress traffic in AWS environments.
  • GCE Ingress Controller: An Ingress controller that integrates with Google Cloud Load Balancer to manage ingress traffic in GCP environments.
  • Kong Ingress Controller: An Ingress controller that integrates with Kong API Gateway, providing advanced API management features.
  • OpenShift Router: An Ingress controller that is part of the OpenShift platform, providing routing capabilities for OpenShift applications.
  • Voyager: An Ingress controller based on HAProxy, providing advanced load balancing and routing features.
  • KubeEdge Ingress Controller: An Ingress controller designed for edge computing scenarios, enabling routing and load balancing for edge applications.
  • Ambassador: An Ingress controller built on Envoy, designed for microservices and API gateway use cases.
  • F5 BIG-IP Controller: An Ingress controller that integrates with F5 BIG-IP appliances, providing advanced traffic management and security features.
  • Caddy Ingress Controller: An Ingress controller that uses Caddy server, known for its simplicity and automatic HTTPS capabilities.
  • Skipper: An Ingress controller that provides dynamic routing and load balancing capabilities, with support for advanced traffic management features.
  • MetalLB: A load-balancer implementation for bare metal Kubernetes clusters, providing network load balancing capabilities.
  • OpenResty Ingress Controller: An Ingress controller that uses OpenResty, a web platform based on NGINX, providing high performance and flexibility.
  • Gloo Edge: An Ingress controller that provides advanced API gateway features, including traffic management, security, and observability.

References

TBD

Leave Your Message