add homework 5.5, task 1

This commit is contained in:
2022-05-13 10:04:46 +07:00
parent c464d8ccbe
commit 500c7cac71
2 changed files with 33 additions and 0 deletions

View File

@@ -0,0 +1,32 @@
Выполнение [домашнего задания](https://github.com/netology-code/virt-homeworks/blob/virt-11/05-virt-05-docker-swarm/README.md)
по теме "5.5. Оркестрация кластером Docker контейнеров на примере Docker Swarm".
## Q/A
### Задача 1
> Дайте письменные ответы на следующие вопросы:
> - В чём отличие режимов работы сервисов в Docker Swarm кластере: replication и global?
В режиме `replication` для сервиса указывается количество реплик, которые необходимо запустить.
И именно такое количество копий сервиса будет запущено, не зависимо от количества нод в кластере.
В режиме `global` указанный сервис будет запущен на каждой ноде кластера. При этом невозможно указать конкретное количество реплик.
> - Какой алгоритм выбора лидера используется в Docker Swarm кластере?
Для выбора лидера docker swarm использует алгоритм поддержания распределенного консенсуса — [`Raft`](https://raft.github.io/).
Верхне-уровневый принцип работы `Raft` (основано на [примере](http://thesecretlivesofdata.com/raft/)):
- Каждая нода может находиться в одном из 3-х состояний: `Follower`, `Candidate`, `Leader`.
- В начале работы кластера все ноды находятся в состоянии `Follower`.
- Если нода в состоянии `Follower` не получает информации от `Leader`, то она переходит в состояние `Candidate`.
- После перехода в состояние `Candidate` нода запрашивает "голосование" от других нод кластера.
- Ноды отвечают на опрос кандидату, который инициировал голосование. Если данный кандидат получил большинство положительных ответов, то он переходит в состояние `Leader`.
> - Что такое Overlay Network?
`Overlay Network` - это особый тип docker-сети, который позволяет связать контейнеры, запущенные на разных нодах.
То есть, данная сеть позволяет направить трафик на определённый контейнер на определённой ноде только по имени контейнера.