как docker обеспечивает высокую доступность

Исходя из среды VMware, мой сквозной процесс заключался в следующем:

  1. Несколько машин Docker (рой) монтируют одни и те же хранилища данных NFS.
  2. Контейнер (например, Maria dB) развертывается на the Docker swarm
  3. Если узел в рое выходит из строя, служба все еще работает на другие узлы

Итак, я смонтировал / var / lib / docker / volume на общем ресурсе NFS на нескольких машинах Docker и попытался создать рой. Но в конце концов я обнаружил, что если несколько машин Docker монтируют одно и то же хранилище данных NFS, службу Docker можно запустить только на одном из узлов.

Итак, я предполагаю, что мой вопрос в том, как создать рой с тем же самым служба работает на нескольких узлах, а данные хранятся в общей папке NFS?

Конечно, есть хороший шанс, что я еще не полностью понял идею того, как работает рой Docker, и я смотрю на это с неправильный угол.

0
задан 16 March 2018 в 16:54
1 ответ

Верно, вы не хотите делиться чем-либо в / var / lib / docker, то есть данными и конфигурациями для этот механизм на одном сервере .

В рое вы добавляете узлы в рой в качестве менеджеров или рабочих, и менеджеры реплицируют базу данных консенсуса рафта, в которой хранятся конфигурация и состояние роя.

Затем вы создаете службы, которые имеют одну или несколько реплик одного и того же образа контейнера, запускаемых на разных узлах в зависимости от требований и доступности.

Для баз данных вы имеете дело с постоянными данными (базами данных и журналами каждого экземпляра базы данных) . Это связано с Docker Volumes (где вы храните постоянные данные) и, в частности, с выбранным вами драйвером тома. По умолчанию просто хранится том для этой реплики службы (контейнера) на узле, на котором она работает в данный момент. Если вы хотите, чтобы этот контейнер базы данных мог выйти из строя и автоматически развернуться на новом узле (одна из функций оркестратора контейнеров), вам необходимо использовать другой драйвер тома, который «знает рой» и знает, как убедиться, что Монтирование NFS размещается на правильном узле, чтобы быть готовым для правильной реплики службы.

Вы можете проверить REX-Ray , который действует как средний уровень для управления томами на внешнем хранилище (и имеет свои собственные драйверы для типа серверной части) или просмотрите полный список в Docker Store .

0
ответ дан 24 November 2019 в 02:59

Теги

Похожие вопросы