@ -32,9 +32,30 @@ Docker Compose использует YAML в качестве языка конф
Docker Swarm это простой оркестратор для контейнеров, который доступен из коробки. Позволяет объединить докер демоны на разных машинах в кластер, что даёт возможность поставки распределённых приложений упакованных в контейнеры. Swarm, так же как и Compose, имеет декларативную модель описания кластерного приложения. Типичными задачами для такого типа приложений являются организация высокой доступности, балансировки нагрузки и канареечного обновления сервиса. Также вы можете добиться эластичности распределённого приложения, которое создаёт и удаляет контейнеры в зависимости от поступающей нагрузки.
Docker Swarm это простой оркестратор для контейнеров, который доступен из коробки. Позволяет объединить докер демоны на разных машинах в кластер, что даёт возможность поставки распределённых приложений упакованных в контейнеры. Swarm, так же как и Compose, имеет декларативную модель описания кластерного приложения. Типичными задачами для такого типа приложений являются организация высокой доступности, балансировки нагрузки и канареечного обновления сервиса. Также вы можете добиться эластичности распределённого приложения, которое создаёт и удаляет контейнеры в зависимости от поступающей нагрузки.
Имейте ввиду, что разделение томов данных в кластере имеет свои особенности, о которых подробно можно почитать по ссылкам ниже, но вот некоторые из них.
Во-первых, стандартный драйвер томов данных в Docker имеет говорящее название `local`, и таким образом, при использовании его в кластере,
и при монтировании тома с помощью, к примеру, команды `docker service create --mount type=volume...`,
том данных будет локально создаваться на каждом узле Swarm. \
Это часто является нежелательным поведением, поэтому для кластеров часто используются специфические драйвера томов данных, такие как `NFS` или `GlusterFS`.
Во-вторых, тому данных можно задать область видимости(scope) - `single` или `multi`, что означает соответственно возможность доступа из одного или нескольких узлов.
В-третьих, тому данных можно задать ограничения на возможности чтения и записи, такие как
- `none` - доступ к тому возможен только из одного узла
- `readonly` - доступ к тому возможен только на чтение
- `ovewriter` - доступ к тому на запись возможен только с одного узла одновременно, доступ на чтение - отовсюду