Script Valley
Kubernetes: From Containers to Clusters
Networking: Services, DNS, and IngressLesson 3.3

Kubernetes Ingress: how to route HTTP traffic to multiple services

Ingress resource, Ingress controller, path-based routing, host-based routing, TLS termination, nginx ingress controller, IngressClass, backend service reference

Ingress Routes External HTTP to Internal Services

Kubernetes Ingress HTTP routing diagram

Rather than creating one LoadBalancer per Service (expensive), Ingress lets a single entry point route HTTP/HTTPS traffic to multiple Services based on path or hostname.

Install nginx Ingress Controller (kind)

kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/main/deploy/static/provider/kind/deploy.yaml

# Wait for it to be ready
kubectl wait --namespace ingress-nginx   --for=condition=ready pod   --selector=app.kubernetes.io/component=controller   --timeout=90s

Path-Based Routing

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: app-ingress
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /
spec:
  ingressClassName: nginx
  rules:
  - host: myapp.local
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: frontend-svc
            port:
              number: 80
      - path: /api
        pathType: Prefix
        backend:
          service:
            name: api-svc
            port:
              number: 80

Up next

Kubernetes NetworkPolicy: how to lock down pod-to-pod communication

Sign in to track progress