Просмотр IP-адреса клиента в журналах kubernetes при использовании балансировщика нагрузки - PullRequest
0 голосов
/ 14 февраля 2019

Я размещаю свое приложение на GKE.Версия kubectl, установленная на сервере, - v1.10.11-gke.1, а nginx-ingress - nginx-ingress-0.28.2

. Я хотел бы видеть IP-адрес клиента в моих журналах.На данный момент я вижу только IP-адрес модуля, например:

2019-02-14 15:17:21.000 EAT 10.60.1.1 - [10.60.1.1] - - [14/Feb/2019:12:17:21 +0000] "GET /user HTTP/2.0" 404 9 "-" "Mozilla/5.0 (Macintosh;

Мой сервис имеет tls, управляемый letsencrypt.Как я могу получить IP-адрес клиента в журналах?

скриншот файлов журнала

1 Ответ

0 голосов
/ 15 февраля 2019

Я воспроизвел поведение, которое вы наблюдали в тесте.В моих собственных журналах контейнеров на задании, выполняемом с контроллером nginx-ingress, мы можем видеть только внутренний IP-адрес, предполагая, что для файла YAML службы nginx-ingress-controller установлено значение:

externalTrafficPolicy: Cluster

Настройка трафика«Кластер» означает, что все узлы могут получать запросы.«Кластер скрывает исходный IP-адрес клиента», запросы также могут быть SNAT'd к узлу с запущенным модулем.

Однако, если вы измените:

externalTrafficPolicy: Local

Клиентский IP источника выставлен.«Локальный» сохраняет исходный IP-адрес клиента, но может вызвать несбалансированное распространение трафика. Это связано с тем, что балансировщик сетевой нагрузки будет считать работоспособными только узлы, на которых работают модули.Запросы будут отправляться только на исправные узлы.

Некоторые пояснения о том, как сохранить исходный IP в ваших контейнерах, и некоторые дальнейшие чтения по прыжкам для исходного IP для служб с Тип = Nodeport может быть полезно, чтобы понять, что происходит.

...