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

В Managed Kubernetes Ingress Controller не предустанавливается в кластер. Для создания объекта Ingress самостоятельно установите любой Ingress Controller.

Ingress — механизм, который обеспечивает маршрутизацию входящего трафика на уровне приложения (L7), предоставляется через Ingress Controller. Ingress Controller — прокси-сервер, развернутый в кластере Managed Kubernetes. Выбор контроллера зависит от требований приложений, размещенных в кластере Managed Kubernetes. Посмотрите список существующих Ingress Controller.

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

Вместе с Ingress Controller будет автоматически создан Service типа LoadBalancer (балансировщик нагрузки) с плавающим IP-адресом. Балансировщик будет входной точкой для доступа к приложениям в кластере, поэтому дополнительно создавать внутренний балансировщик нагрузки не нужно.

Перед созданием Ingress Controller убедитесь, что в пуле выделена [квота](/cloud/managed-kubernetes/about/quotas/) на один плавающий IP-адрес.

Мы рассмотрим установку базового Nginx — вы можете установить другой Ingress Controller по официальной инструкции.

  1. Подключитесь к кластеру.
  2. Установите менеджер пакетов Helm.
  3. Добавьте репозиторий ingress-nginx в Helm:
helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
  1. Установите Ingress Controller:
helm install ingress-nginx/ingress-nginx --generate-name
  1. Проверьте, что Ingress Controller установлен:
kubectl get pods

Вывод команды:

NAME                                                   READY   STATUS    RESTARTS   AGE
ingress-nginx-1652172027-controller-6d765d1688-vr7ab   1/1     Running   0          51s
  1. Будет создан новый балансировщик нагрузки. Он появится в панели управления в разделе Облачная платформа ⟶ Kubernetes ⟶ вкладка Балансировщики.

Создать 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