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

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
  3. Примените манифест:

    kubectl apply -f <file_name>

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