Назад | Перейти на главную страницу

Почему ресурсу Ingress назначаются внешние IP-адреса?

У меня есть кластер GKE, работающий с nginx-ingress контроллер из сообщества Kubernetes (через Helm). Я установил его с региональным IP-адресом, который я зарезервировал заранее, вот так:

helm install stable/nginx-ingress \
  --set controller.service.loadBalancerIP=my.reserved.regional.ip

Затем я добавил пару ресурсов Ingress с kubernetes.io/ingress.class: "nginx" аннотации и ничего больше, и указал им на безголовый сервис в кластере ( type: ClusterIP).

Это работает нормально, и я могу получить доступ к входам на основе виртуальных хостов через 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, чтобы этого избежать?

Добро пожаловать @Achton на StackExchange.

Чтобы сохранить тот же зарезервированный статический внешний IP-адрес в ресурсах Ingress, который назначен сервису LB контроллера Ingress, вы должны установить еще один параметр конфигурации при установке контроллера nginx-ingress с диаграммой управления, это:

--set controller.publishService.enabled=true

как описано в документации NGINX Ingress Controller Вот