Kubernetes Ingress: маршрутизация трафика — настройка

Мы просто и по делу рассказываем про ИИ-инструменты для работы: сравнения, пошаговые гайды, бесплатные альтернативы и реальные сценарии применения. Помогаем выбрать между ChatGPT, Gemini, Claude, локальными моделями и десятками узкоспециализированных сервисов — от дизайна и HR до аналитики и SEO. Меньше хайпа, больше практики и экономии времени каждый день.

kubernetesingressnginx

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 и инфраструктуре 📚

🗣 Подборки каналов
🧠 Каталог ботов и приложений
🗺 Навигация

Читайте так же