Перейти к основному содержимому

Ingress и Ingress Controller

Последнее изменение:

Ingress — объект Kubernetes, который определяет правила маршрутизации внешнего трафика, балансировки нагрузки и SSL-терминации. Ingress Controller представляет собой прокси-сервер в кластере Managed Kubernetes и маршрутизирует трафик на основе правил, которые определены в Ingress.

В Managed Kubernetes Ingress Controller не предустанавливается в кластер, его необходимо установить самостоятельно. Выбор контроллера зависит от требований приложений, размещенных в кластере Managed Kubernetes. Cписок возможных контроллеров можно посмотреть в инструкции Ingress Controllers документации Kubernetes.

Мы рассмотрим установку Ingress Controller Traefik с помощью Helm-чарта.

Установить Ingress Controller Traefik

Вместе с Ingress Controller будет автоматически создан балансировщик нагрузки с публичным IP-адресом. По умолчанию создается балансировщик нагрузки типа Базовый с резервированием, но вы можете выбрать тип балансировщика нагрузки и настроить для него другие параметры — подробнее о параметрах балансировщика нагрузки в инструкции Настроить балансировщик нагрузки. Балансировщик будет входной точкой для доступа к приложениям в кластере, поэтому дополнительно создавать внутренний балансировщик нагрузки не нужно.

  1. Убедитесь, что в пуле выделена квота минимум на один публичный IP-адрес.

  2. Подключитесь к кластеру.

  3. Установите менеджер пакетов Helm.

  4. Добавьте репозиторий traefik в Helm:

    helm repo add traefik https://traefik.github.io/charts
  5. Обновите список репозиториев:

    helm repo update
  6. Установите Ingress Controller:

    helm install traefik traefik/traefik
  7. Убедитесь, что Ingress Controller установлен:

    kubectl get pods

    В ответе появится информация об Ingress Controller:

    NAME                       READY   STATUS    RESTARTS   AGE
    traefik-78d5c6f95b-2xk9p 1/1 Running 0 51s

    Будет создан новый балансировщик нагрузки. Он появится в панели управления: в верхнем меню нажмите Продукты и выберите Облачные серверы → раздел Балансировщики → вкладка Балансировщики.

Создать Ingress

Пример манифеста:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: minimal-ingress
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- http:
paths:
- path: /testpath
pathType: Prefix
backend:
service:
name: test
port:
number: 80