Почему ресурсу Ingress назначаются внешние IP-адреса?
У меня кластер GKE работает с nginx-ingress
контролер из сообщества Kubernetes (через Хелма). Я установил его с региональным IP-адресом, который я забронировал заранее, вот так:
helm install stable/nginx-ingress \
--set controller.service.loadBalancerIP=my.reserved.regional.ip
Затем я добавил пару ресурсов Ingress с kubernetes.io/ingress.class: "nginx"
аннотации и ничего больше, и указал им на безголовый сервис в кластере (type: ClusterIP
).
Это работает нормально, и я могу получить доступ к входам на основе vhost через IP балансировщика нагрузки.
Однако мне интересно, почему ресурсам Ingress также назначается внешний IP:
==> v1beta1/Ingress
NAME HOSTS ADDRESS PORTS AGE
ingress-admin admin.my-domain.com 35.195.255.71 80 24m
ingress-api api.my-domain.com 35.195.255.71 80 24m
Это нормально? IP отвечает на пинг, но не обслуживает HTTP (что делает мой сервис). Что мне нужно сделать с ресурсами Ingress, чтобы избежать этого?
1 ответ
Добро пожаловать @Achton на StackExchange.
Чтобы сохранить тот же Зарезервированный статический внешний IP-адрес в ресурсах Ingress, который назначен службе LB Ingress Controller, вам необходимо установить еще один параметр конфигурации при установке контроллера nginx-ingress с диаграммой управления, это:
--set controller.publishService.enabled=true
как объяснено в документации NGINX Ingress Controller здесь