Входной контроллер Nginx только на localhost: 80 - PullRequest
0 голосов
/ 15 октября 2019

Я хочу, чтобы входной контроллер nginx связывался только на localhost вместо всех интерфейсов. Я развернул с помощью kubespray, в режиме hostNetwork, и входной модуль начинается со следующей команды:

 /nginx-ingress-controller
  --configmap=$(POD_NAMESPACE)/ingress-nginx
  --tcp-services-configmap=$(POD_NAMESPACE)/tcp-services
  --udp-services-configmap=$(POD_NAMESPACE)/udp-services
  --annotations-prefix=nginx.ingress.kubernetes.io
  --report-node-internal-ip-address

Я предполагаю, что нужно изменить следующую строку в /etc/nginx/nginx.conf:

listen 80 default_server reuseport backlog=511 ;

до

listen localhost:80 default_server reuseport backlog=511 ;

Я попытался напрямую изменить файл на изображении, но при запуске он перезаписывается.

Вопросы:

  • Можно ли это сделать с помощью configmap, помещенного в --configmap?
  • Если нет, то где внести изменения, чтобы nginx.confотражает это?

1 Ответ

0 голосов
/ 16 октября 2019

Это можно сделать, добавив следующую пару ключ-значение к ingress-nginx ConfigMap:

bind-address: 127.0.0.1   

localhost не будет работать, он жалуется на неправильный формат. nginx.conf будет обновлен следующей строкой:

listen 127.0.0.1:80 default_server reuseport backlog=511 ;

и будет прослушиваться только через интерфейс обратной связи. T

...