Ответ
Для доступа к Ingress-контроллеру изнутри кластера используется Service типа ClusterIP. Этот сервис предоставляет стабильный DNS-имя и внутренний IP-адрес для набора подов контроллера.
Пример манифеста Service для Ingress NGINX:
apiVersion: v1
kind: Service
metadata:
name: ingress-nginx-controller
namespace: ingress-nginx
spec:
type: ClusterIP
ports:
- name: http
port: 80
targetPort: http
protocol: TCP
- name: https
port: 443
targetPort: https
protocol: TCP
selector:
app.kubernetes.io/name: ingress-nginx
Практическое использование:
- Внутрикластерные запросы: Другие сервисы в кластере могут направлять HTTP-запросы на этот Service по его DNS-имени (например,
curl http://ingress-nginx-controller.ingress-nginx.svc.cluster.local). Ingress-контроллер, получив запрос, будет обрабатывать правила Ingress-ресурсов для маршрутизации к конечным сервисам приложений. - Доступ извне кластера: Для внешнего доступа обычно используется Service типа
LoadBalancer(в облаке) илиNodePort(on-premise). ВнутреннийClusterIPсервис при этом остается для внутрикластерной коммуникации. - Важно: Убедитесь, что Ingress-контроллер слушает на портах, указанных в Service (обычно 80 и 443), и что Network Policies не блокируют трафик к его подам.