Установить 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 убедись, что в пуле выделена квота на один публичный IP-адрес.
Мы рассмотрим установку базового Nginx — ты можешь установить другой Ingress Controller по официальной инструкции.
Вместе с Ingress Controller будет автоматически создан Service типа LoadBalancer (балансировщик нагрузки) с публичным IP-адресом. По умолчанию создается балансировщик нагрузки типа Базовый с резервированием, но ты можешь выбрать тип балансировщика нагрузки и настроить для него другие параметры. Балансировщик будет входной точкой для доступа к приложениям в кластере, поэтому дополнительно создавать внутренний балансировщик нагрузки не нужно.
Для установки Ingess и Ingress Controller потребуется пакетный менеджер Helm. Для твоего удобства, рекомендуем ознакомиться с гайдом по использованию Helm.
- Без настройки балансировщика нагрузки
- С настройкой балансировщика нагрузки
Добавь репозиторий ingress-nginx в Helm:
helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
Установи Ingress Controller:
helm install ingress-nginx/ingress-nginx --generate-name
Проверь, что Ingress Controller установлен:
kubectl get pods
Вывод команды:
NAME READY STATUS RESTARTS AGE
ingress-nginx-1652172027-controller-6d765d1688-vr7ab 1/1 Running 0 51sБудет создан новый балансировщик нагрузки. Он появится в панели управления в разделе Облачная платформа → Балансировщики.
Добавь репозиторий ingress-nginx в Helm:
helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
Получи значения по умолчанию и сохрани их в файл
values.yaml
:helm inspect values ingress-nginx/ingress-nginx > values.yaml
Добавь необходимые параметры для балансировщика в блок
annotations
файлаvalues.yaml
.Фрагмент манифеста с блоком
annotations
:metadata:
name: loadbalancer-name
labels:
app: nginx
annotations:
service.beta.kubernetes.io/openstack-internal-load-balancer: "true"Сохрани изменения.
Установи Ingress Controller:
helm install ingress-nginx/ingress-nginx --generate-name -f values.yaml
Проверь, что Ingress Controller установлен:
kubectl get pods
Вывод команды:
NAME READY STATUS RESTARTS AGE
ingress-nginx-1652172027-controller-6d765d1688-vr7ab 1/1 Running 0 51sБудет создан новый балансировщик нагрузки. Он появится в панели управления в разделе Managed 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