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

Ingress и Ingress Controller

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

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

После установки Ingress Controller создайте Ingress.

Установить 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

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

  2. Создайте yaml-файл с манифестом для объекта Ingress.

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

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: example-ingress
spec:
ingressClassName: traefik
rules:
- http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: hello-nginx
port:
number: 80
  1. Примените манифест:

    kubectl apply -f <file_name>

    Укажите <file_name> — имя yaml-файла с манифестом для создания Ingress. Например, ingress.yaml.