IP-адреса по умолчанию являются исходными NAT в сервисах Kubernetes начиная с K8s 1.5, поэтому вы не увидите исходный IP-адрес. Для типа обслуживания LoadBalancer
вы можете установить в его спецификации в поле externalTrafficPolicy
значение Local
, чтобы сохранить IP-адрес источника:
$ kubectl patch svc yourservice -p '{"spec":{"externalTrafficPolicy":"Local"}}'
Должно работать поле для поставщиков облачных услуг GCE и Azure . Для других следуйте разделу «Поддержка кроссплатформенности» здесь .
Цитируется из документов:
Начиная с Kubernetes 1.5, поддержка сохранения исходного IP-адреса с помощью служб с Type = LoadBalancer реализована только в подмножестве облачных провайдеров (GCP и Azure).
Обратите внимание, что если вы установите для поля externalTrafficPolicy
значение Local
, только узлы, на которых работает ваш модуль, будут работать как исправные, поскольку они отвечают на ваш сервис.
OpenShift использует тот же синтаксис службы Kubernetes.