Использование cons-шаблона для предоставления 2000+ сервисов в nginx .conf - PullRequest
0 голосов
/ 01 мая 2020

У нас есть nginx conf-файл, который создается с шаблоном consul для 2000+ сервисов, с консулом 1.6.1.

Мы пытаемся перейти на консул 1.7.2 и запустить проблема, при которой агент узла DDoSes Consul шаблон-консула.

Узел / агент клиента v1.6.1 работает нормально, но агент узла / клиента v1.7.2 начинает отказывать в соединениях из шаблона консула.

рассматриваемый шаблон (упрощенная версия) выглядит следующим образом:

{{- range services }}
{{- if (in .Tags "nginxqa1") }}
{{- range service .Name }}
{{ .Address }}
{{- end }}
{{- end }}
{{- end }}

Добавление следующих записей конфигурации лимитов на узле / клиентском консуле, похоже, решает проблему:

http_max_conns_per_client = 5000

Но есть ли какие-либо последствия для этого?

Есть ли лучший способ сделать это? Я вижу эти сообщения:

2020/05/01 18:24:51.653257 [WARN] (runner) watching 2631 dependencies - watching this many dependencies could DDoS your consul cluster

Любые идеи / предложения приветствуются.

1 Ответ

1 голос
/ 04 мая 2020

Параметр http_max_conns_per_client был введен в hashicorp / consul # 7159 для адреса CVE-2020-7219 . Значение по умолчанию 200 казалось разумным значением по умолчанию для большинства случаев использования. Однако есть сценарий ios, например, ваш, в котором имеет смысл повысить это значение.

Единственным недостатком этого является то, что любой клиент, способный связываться с Консул API, сможет создавать до 5000 подключений. Невозможно повысить этот лимит только для определенного c клиента. Имейте это в виду, когда вы sh эти изменения в производстве.

...