Не могу перерегистрировать мезос агент

После обновления свойств (isolation) mesos-slave не удается перерегистрировать:

6868 status_update_manager.cpp:177] Pausing sending status updates
6877 slave.cpp:915] New master detected at [email protected]:5050
6867 status_update_manager.cpp:177] Pausing sending status updates
6877 slave.cpp:936] No credentials provided. Attempting to register without authentication
6877 slave.cpp:947] Detecting new master
6869 slave.cpp:1217] Re-registered with master [email protected]:5050
6866 status_update_manager.cpp:184] Resuming sending status updates
6869 slave.cpp:1253] Forwarding total oversubscribed resources {}
6874 slave.cpp:4141] Master marked the agent as disconnected but the agent considers itself registered! Forcing re-registration.
6874 slave.cpp:904] Re-detecting master
6874 slave.cpp:947] Detecting new master
6874 status_update_manager.cpp:177] Pausing sending status updates
6869 status_update_manager.cpp:177] Pausing sending status updates
6871 slave.cpp:915] New master detected at [email protected]:5050
6871 slave.cpp:936] No credentials provided. Attempting to register without authentication
6871 slave.cpp:947] Detecting new master
6872 slave.cpp:1217] Re-registered with master [email protected]:5050
6872 slave.cpp:1253] Forwarding total oversubscribed resources {}
6871 status_update_manager.cpp:184] Resuming sending status updates
6871 slave.cpp:4141] Master marked the agent as disconnected but the agent considers itself registered! Forcing re-registration.

Кажется, что он застрял в бесконечном цикле. Любая идея, как начать новый ведомый? Я пытался удалить work_dir и перезапустить процесс mesos-slave, но безуспешно.

Ситуация возникла из-за случайного переименования work_dir. После перезапуска mesos-slave он не смог ни переподключиться, ни убить запущенные задачи. Я пытался использовать cleanup на рабах:

echo 'cleanup' > /etc/mesos-slave/recover
service mesos-slave restart
# after recovery finishes
rm /etc/mesos-slave/recover
service mesos-slave restart

Частично это помогло, но в Марафоне по-прежнему много зомби-задач, так как мастер Mesos не может получить информацию об этой задаче. Когда я смотрю на метрики, я обнаружил, что некоторые ведомые устройства помечены как «неактивные».

ОБНОВЛЕНИЕ: в основных журналах появляется следующее:

Cannot kill task service_mesos-kafka_kafka.e0e3e128-ef0e-11e6-af93-fead7f32c37c 
of framework ecd3a4be-d34c-46f3-b358-c4e26ac0d131-0000 (marathon) at
[email protected]:52192
because the agent cac09818-0d75-46a9-acb1-4e17fdb9e328-S10 at 
slave(1)@192.168.1.1:5051 (w10.example.net) is disconnected. 
Kill will be retried if the agent re-registers

после перезапуска текущего mesos-master:

Cannot kill task service_mesos-kafka_kafka.e0e3e128-ef0e-11e6-af93-fead7f32c37c 
of framework ecd3a4be-d34c-46f3-b358-c4e26ac0d131-0000 (marathon)
at [email protected]:39972 
because it is unknown; performing reconciliation

Performing explicit task state reconciliation for 1 tasks 
of framework ecd3a4be-d34c-46f3-b358-c4e26ac0d131-0000 (marathon) 
at [email protected]:39972

Dropping reconciliation of task service_mesos-kafka_kafka.e0e3e128-ef0e-11e6-af93-fead7f32c37c 
for framework ecd3a4be-d34c-46f3-b358-c4e26ac0d131-0000 (marathon) 
at [email protected]:39972 
because there are transitional agents

person Tombart    schedule 09.02.2017    source источник
comment
Можете ли вы прикрепить мастер-лог?   -  person janisz    schedule 11.02.2017
comment
Я не мог найти ничего подходящего в главном журнале. Похоже, мезос пометил старых рабов как неактивных и все еще ждет их восстановления.   -  person Tombart    schedule 11.02.2017


Ответы (1)


Ситуация с разделенным мозгом была вызвана наличием более одного work_dir. В большинстве случаев может быть достаточно переместить данные из неправильного work_dir:

 mv /tmp/mesos/slaves/* /var/lib/mesos/slaves/

Затем принудительно перерегистрируйтесь:

rm -rf /var/lib/mesos/meta/slaves/latest
service mesos-slave restart

Текущие запущенные задачи не сохранятся (не будут восстановлены). Задачи от старых исполнителей должны быть помечены как TASK_LOST и запланированы для очистки. Это позволит избежать проблем с заданиями-зомби, которые Mesos не может убить (потому что они выполнялись в разных work_dir).

Если mesos-slave по-прежнему зарегистрирован как неактивный, перезапустите текущий мастер Mesos.

person Tombart    schedule 13.02.2017
comment
Удаление папки latest сработало как шарм. Спасибо. - person JijoeV; 02.09.2018