Ingress & TLS Termination

An Ingress is an API object that manages external HTTP and HTTPS traffic routing to services inside a Kubernetes cluster.

1. Why Use Ingress Instead of LoadBalancer?

Creating a separate type: LoadBalancer for every service provisions an expensive cloud load balancer ($20-$50/mo each). An Ingress allows you to run a single Ingress Controller (like Nginx) that routes hundreds of subdomains and paths over a single IP!

2. Production Ingress Manifest (Host & Path Routing)

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: main-ingress
  annotations:
    kubernetes.io/ingress.class: "nginx"
    cert-manager.io/cluster-issuer: "letsencrypt-prod"
spec:
  tls:
    - hosts:
        - api.mycompany.com
      secretName: api-tls-cert
  rules:
    - host: api.mycompany.com
      http:
        paths:
          - path: /v1
            pathType: Prefix
            backend:
              service:
                name: api-v1-service
                port:
                  number: 80

Next Up

Learn ConfigMaps: decoupling configuration settings from containers, environment variables, and volume mounts.

Next Lesson: ConfigMaps & App Config →