Речь идет о контейнерах Docker, таких как sysdig, consul, fluentd, mesos-slave и т. д., которые мы запускаем практически на всех машинах.
В настоящее время мы используем Upstart от Ubuntu и Fleetctl от CoreOS. Мы переходим на Ubuntu 18.04 LTS и в настоящее время думаем, следует ли преобразовать конфигурацию в:
- Systemd или
- Docker-компоновать
Systemd может выполнять проверки работоспособности и автоматически возвращать процессы, которые умерли, в оперативный режим. Он также больше всего похож на Upstart, который мы активно используем. Наши файлы конфигурации Upstart генерируются из cloud-config следующим образом:
- >
/usr/local/bin/generate-docker-upstart fluentd registry/fluentd:1.0.1
-e HOST=elasticsearch
-e PORT=9200
-e INDEX=fluentd
-e NODE=`hostname -s`
-e ROLE=app
-e ENVIRONMENT={{Ref:Environment}}
-e TENANT={{Ref:Tenant}}
-p 24224:24224
--name \$NAME \$IMAGE
Мы используем AWS CloudFormation для подключения виртуальных машин к сети.
Мы не можем использовать реальную структуру оркестрации контейнеров (мы уже используем Marathon/Mesos), потому что эти службы должны работать на каждом хосте и до запуска Marathon/Mesos.
Какое решение наиболее целесообразно? Преобразовать эти файлы в systemd или начать использовать docker-compose, несмотря на то, что вы уже используете Marathon на Mesos?