Ingress в Kubernetes — это объект, который управляет внешним доступом к сервисам внутри кластера, чаще всего по HTTP/HTTPS. Если кратко: он помогает направлять трафик на нужное приложение по домену, пути URL и правилам балансировки.
Зачем нужен Ingress
- публикует несколько сервисов через один внешний IP
- настраивает маршрутизацию по
hostиpath - упрощает TLS/SSL через один входной слой
- позволяет централизованно управлять доступом к веб-приложениям
Как это работает
Ingress сам по себе не обрабатывает трафик. Для этого нужен Ingress Controller — например, NGINX Ingress Controller, Traefik или HAProxy.
Схема простая:
- пользователь отправляет запрос
- Ingress Controller принимает его
- сверяет с правилами Ingress
- отправляет запрос в нужный Service
- Service перенаправляет трафик в Pod
Базовая настройка Ingress
Пример маршрутизации по домену и пути:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: app-ingress
spec:
ingressClassName: nginx
rules:
- host: myapp.example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: frontend-service
port:
number: 80
- path: /api
pathType: Prefix
backend:
service:
name: api-service
port:
number: 80
Что здесь происходит:
- запросы на
myapp.example.com/идут вfrontend-service - запросы на
myapp.example.com/apiидут вapi-service
Как включить HTTPS
Для TLS нужен секрет с сертификатом:
tls:
- hosts:
- myapp.example.com
secretName: myapp-tls
Это позволяет терминировать HTTPS на уровне Ingress. На практике часто используют cert-manager для автоматического выпуска сертификатов через Let’s Encrypt 🔐
Частые ошибки
- Ingress Controller не установлен — объект есть, а маршрутизации нет
- неверный
ingressClassName - Service настроен не на тот порт
- DNS домена не указывает на внешний IP контроллера
- конфликт путей
/и/apiиз-за неверногоpathType
Когда использовать Ingress
- веб-приложений и API
- микросервисов с маршрутизацией по путям
- централизованного TLS
- базового управления доступом и редиректами
Но если нужен L4-трафик, сложная service mesh-логика или продвинутая политика API Gateway, одного Ingress может быть мало ⚙️
Практический совет
Для большинства проектов стартовая связка — NGINX Ingress Controller + cert-manager. Она покрывает 80% задач: публикацию сервисов, HTTPS и удобную маршрутизацию без лишней сложности.
Подборку каналов про IT стоит сохранить отдельно — там часто публикуют полезные разборы по Kubernetes, DevOps и инфраструктуре 📚