Доступ к IP-адресу клиентов за службой балансировки нагрузки Kubernetes - PullRequest
0 голосов
/ 31 октября 2018

Кто-нибудь знает, могу ли я получить доступ к исходному IP-адресу клиента, который первоначально выполнил запрос, и если у меня есть служба LoadBalancer в OpenShift? Перезаписывается IP-адресом балансировщика нагрузки.

Должен быть способ доступа к этой информации - может быть в дополнительных данных TCP или около того. Кто-нибудь знает?

Или, может быть, я могу использовать другой подход для пересылки пакета, не теряя эту информацию, но все же имея возможность масштабировать службу для нескольких Pod. Спасибо за любую подсказку!

С уважением, Доминик

OpenShift Master: v3.9.41 Мастер Kubernetes: v1.9.1

1 Ответ

0 голосов
/ 31 октября 2018

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.

...