Как CoreOS переносит контейнеры Docker, когда используются тома Docker?

Я только учусь, как использовать CoreOS, и уже столкнулся с первой проблемой, которая действительно продолжает беспокоить меня: когда я использовал fleetctl для запуска и управления юнитами, я узнал, что юнит автоматически перемещается на другую машину, когда машина выбрана для запуска. устройство перезагружается или становится недоступным для кластера по другой причине. Теперь представьте ситуацию, когда у вас есть устройство, на котором запущен контейнер Docker, у которого есть доступ к определенному каталогу (через том Docker), присутствующий только на определенной машине.

Что произойдет, если устройство с этим контейнером будет перемещено на другой компьютер? Я полагаю, что устройство выйдет из строя, так как каталог, который должен быть подключен как том Docker, отсутствует на новой машине. Это действительно происходит? И как я мог обойти эту проблему? Как я могу сохранить рабочие данные, используемые докер-контейнером, в условиях автоматической миграции контейнеров?

2 ответа

Решение

Я полагаю, что пока вы несете ответственность за доступность данных. Возможно, вы захотите проверить https://github.com/ClusterHQ/flocker который специально предназначен для сбора данных вместе с док-контейнерами. Я думаю, что он опирается на функции ZFS, которые могут исключить его использование в CoreOS. Единственная альтернатива, которую я мог придумать, - это использование высокодоступного внешнего тома, смонтированного на CoreOS.

Вы можете запустить некоторую распределенную файловую систему в кластере CoreOS. Таким образом, на какой бы машине ни работал ваш контейнер службы базы данных, он всегда сможет использовать базу данных, смонтированную из DFS.

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