nginx-lego и autoscaler плохо играют после уменьшения - PullRequest
0 голосов
/ 21 ноября 2018

У меня проблемы с nginx-lego (я знаю, что он устарел) и автоскалером узла.Мне пришлось масштабировать вручную через HPA и временно исправлять minReplicas до большого числа.Все масштабировалось хорошо, были добавлены новые узлы из-за увеличения количества модулей.

После всплеска трафика я вернул число в нормальное состояние (что очень мало), и я вижу много ошибок шлюза 502.После того, как я проверил журнал модуля nginx-lego, я смог увидеть, что множество запросов отправлялось на модули, которых больше нет (соединение отказано или нет маршрута к хосту).

2018/11/21 17:48:49 [error] 5546#5546: *6908265 connect() failed (113: No route to host) while connecting to upstream, client: 100.112.130.0, server: xxxx.com, request: "GET /public/images/social-instagram.png HTTP/1.1", upstream: "http://X.X.X.X:3000/public/images/social-instagram.png", host: "xxxx.com", referrer: "https://outlook.live.com/"
2018/11/21 17:48:49 [error] 5409#5409: *6908419 connect() failed (113: No route to host) while connecting to upstream, client: 10.5.143.204, server: xxxx.com, request: "GET /public/images/social-instagram.png HTTP/1.1", upstream: "http://X.X.X.X:3000/public/images/social-instagram.png", host: "xxxx.com"
2018/11/21 17:48:49 [error] 5546#5546: *6908420 connect() failed (111: Connection refused) while connecting to upstream, client: 10.5.143.204, server: xxxx.com, request: "GET /public/images/social-facebook.png HTTP/1.1", upstream: "http://X.X.X.X:3000/public/images/social-facebook.png", host: "xxxx.com"

Есть идеи, что может быть не так?

Я думаю, что исправление minReplicas, вероятно, не лучший способ сделать это, но я знал, что будет всплеск иУ меня не было лучшего представления о том, как предварительно масштабировать весь кластер.

1 Ответ

0 голосов
/ 21 ноября 2018

Похоже, проблема в том, что ваш nginx ingress (lego) контроллер не обновляет nginx.conf при уменьшении.Я бы изучил nginx.conf и посмотрел бы, указывает ли он на бэкэнды, которые больше не существуют.

$ kubectl cp <nginx-lego-pod>:nginx.conf . 

Если что-то выглядит странно, вам, возможно, придется удалить модуль, чтобы он был создан управляющим ReplicaSetваши входящие контроллеры nginx.

$ kubectl delete <nginx-controller-pod>

Затем снова проверьте nginx.conf.

Еще одна проблема может заключаться в том, что ваши конечные точки для ваших внутренних служб не обновляются Kubernetes, но это не связанонепосредственно для увеличения / уменьшения вашего лего HPA.Вы можете проверить с помощью:

$ kubectl get ep 

и посмотреть, есть ли такие, которые больше не существуют.

...