Эластичный поиск на AWS Fargate

Столкновение с проблемой при развертывании elasticsearch на AWS Fargate

Были выполнены следующие шаги:

настроил мой образ докера и отправил его в AWS ECR. определение задачи для моей службы elasticsearch

служба эластичного поиска не работает при начальной загрузке. Исключение составляет следующее: [3]: максимальное количество областей виртуальной памяти vm.max_map_count [65530] слишком мало, увеличьте как минимум до [262144]

это известная проблема с es для es 5.0 и новее. Решение, предоставленное es, выглядит следующим образом sysctl -w vm.max_map_count = 262144

https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html#docker-cli-run-prod-mode

Можно ли применить эту команду в AWS Fargate, поскольку у нас нет доступа к хосту?

Обновлять: Elastic Search предоставил возможность избежать проверки mmaps при загрузке, но на данный момент еще не выпущен

https://github.com/elastic/elasticsearch/pull/32421

https://discuss.elastic.co/t/elk-on-aws-fargate/153967/4

4
0
3 222
1

Ответы 1

Похоже, ты не можешь этого сделать.

Позволь мне объяснить:

Docker фактически оборачивает процесс и запускает его, используя ядро, установленное на машине хозяин.

Изменение "vm.max_map_count" на самом деле настройка ядра Linux на хост-машине.

Когда хост-машина находится под вашим контролем, например, когда вы используете EC2, вы можете настроить ядро ​​хост-машины, применив «пользовательские данные» к вашему Конфигурация запуска. (См .: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/bootstrap_container_instance.html)

Но если хост-машина не находится под вашим контролем, как в случае с Fargate, вы не можете изменить хост и настройки ядра, которые он запускает. Вся идея Fargate состоит в том, чтобы запускать образы Docker без гражданства, образы, которые не делают никаких предположений о хосте, внутри которого они запускаются.

Однако в Elasticsearch само приложение зависит от конфигурации отдельного хоста (параметр «vm.max_map_count»), что означает, что оно действительно делает предположения о своем хозяине и, следовательно, не может работать на хосте общий, таком как Fargate (если вы не отключите эту проверку, что не очень хорошо идея для производственной среды.)

Я думаю, что эластичный поиск исправил это в последней версии, и нам не нужно явно устанавливать vm.max_map_count ... обсуждение.elastic.co/t/elk-on-aws-fargate/153967/4

Musab Qamri 17.12.2018 18:00

@MusabQamri, даже если они отключили, они отключили только проверить! Вам все еще нужно для использования в производственной среде, чтобы установить этот параметр ядра. В каком контексте вы используете ES? Производство или разработка / тестирование?

David Peleg 18.12.2018 18:06

Другие вопросы по теме