2016-12-09 7 views
1

Я запускаю контейнеры докеров на мезо/марафон. Я хотел бы выполнить проверки работоспособности, в основном хочу запустить скрипт проверки работоспособности. Мой вопрос: будет ли команда проверки работоспособности запущена на самом контейнере или она будет работать на подчиненном устройстве? Вероятно, это уровень контейнера, так как это проверка работоспособности приложения, так что это очевидно, но я хотел бы подтвердить это. Не нашел соответствующей документации, в которой говорится, где она запущена.Как использовать режим проверки работоспособности марафона?

Благодаря

Я попробовать эхо в/TMP/TestFile с помощью команды, которые я вижу на подчиненном. Это означает, что он работает на подчиненном устройстве? Просто нужно подтверждение. Любая дополнительная информация полезна

ответ

4

Короткий ответ: это зависит. Длинный ответ ниже:).

Контрольные проверки работоспособности выполняются исполнителем докеров Mesos в контейнере задач через docker exec. Если вы запускаете свои контейнеры с помощью «унифицированного контейнеризатора», т. Е. В случае докеров-контейнеров без демона докеров, все происходит аналогично, с разницей нет docker exec, а исполнитель Mesos просто входит в пространство имен mnt вашего контейнера перед выполнением команды проверьте (см. this doc). Проверки работоспособности HTTP и TCP выполняются планировщиком Marathon, следовательно, не обязательно на узле, где работает ваш контейнер (если вы не запускаете Marathon на том же узле с агентом Mesos, что, вероятно, вам не следует делать). Выезд this page.

Теперь, начиная с версии Mesos 1.2.0 и Marathon 1.3, существует возможность запускать так называемый Mesos-native health checks. В этом случае проверки работоспособности HTTP (S) и TCP выполняются на агенте, где работает ваш контейнер. Чтобы убедиться, что сеть контейнеров может быть достигнута, эти проверки вводят пространство имен net вашего контейнера.

+0

спасибо за ответ, это полезно. Просто некоторые последующие действия. Я в основном бегу марафон с мезо. В этом случае я хочу проверить, доступна ли раба от марафона, что связано с проверкой оживленности отдельного процесса, выполняемого на подчиненном устройстве. Я также хочу проверить, доступен ли контейнер. Может ли использоваться команда проверки работоспособности. Я думал использовать pidof подчиненного процесса в качестве проверки работоспособности и, следовательно, хотел бы знать, будет ли в этой среде командование работать на подчиненном устройстве или контейнере. –

+0

Если вы хотите проверить, что контейнер доступен из планировщика, тогда проверка работоспособности HTTP или TCP в марафоне - это правильная вещь (я предполагаю, что вы можете выразить «достижимый» в некотором HTTP-запросе). Логически, если Marathon может достичь задачи, он также может достичь агента, в котором выполняется задание. Вопрос в том, почему вы хотите проверить, может ли марафон связаться с агентом? Какую проблему ты пытаешься решить? – rukletsov

+0

Да, я могу использовать доступность контейнера, которого достаточно, я думаю. И, как вы сказали, это означает, что агент доступен, если задача. Еще раз спасибо. –