Показать страницуИстория страницыСсылки сюдаCopy this pageExport to MarkdownODT преобразованиеНаверх Вы загрузили старую версию документа! Сохранив её, вы создадите новую текущую версию с этим содержимым. Медиафайлы{{tag>vagrant chef shell puppet salt ansible docker devops virtual alpine}} ====== Docker Swarm ====== * Node - это наши виртуальные машины, на которых установлен docker. Есть manager и workers ноды. Manager нода управляет workers нодами. Она отвечает за создание/обновление/удаление сервисов на workers, а также за их масштабирование и поддержку в требуемом состоянии. Workers ноды используются только для выполнения поставленных задач и не могут управлять кластером. * Stack - это набор сервисов, которые логически связаны между собой. По сути это набор сервисов, которые мы описываем в обычном compose файле. Части stack (services) могут располагаться как на одной ноде, так и на разных. * Service - это как раз то, из чего состоит stack. Service является описанием того, какие контейнеры будут создаваться. Если вы пользовались docker-compose.yaml, то уже знакомы с этой сущностью. Кроме стандартных полей docker в режиме swarm поддерживает ряд дополнительных, большинство из которых находятся внутри секции deploy. * Task - это непосредственно созданный контейнер, который docker создал на основе той информации, которую мы указали при описании service. Swarm будет следить за состоянием контейнера и при необходимости его перезапускать или перемещать на другую ноду. ===== Master node ===== <code bash> $ docker swarm init $ docker node ls $ docker node rm stage $ docker stack deploy --with-registry-auth -c ./docker-compose.stage.yaml stage $ docker stack ls $ docker stack services stage $ docker service ps --no-trunc stage_back $ docker service inspect stage_back $ docker stack rm stage $ docker service create --name nginx --replicas 3 nginx:alpine $ docker service ps nginx $ docker node update --label-add TAG=stage stage-1 $ docker container ls $ docker secret create back_config example.yaml </code> * stage - HOSTNAME (из docker node ls) nano ./docker-compose.stage.yaml <code yaml> version: "3.9" services: back: image: docker-registry.ru:5000/ptm:stage ports: - "4003:4003" environment: TZ: "Europe/Moscow" extra_hosts: - host.docker.internal:host-gateway command: make server_start volumes: - /p/ptm/config/config.yaml:/p/ptm/config/config.yaml - /p/ptm/stat/web:/p/ptm/stat/web </code> ===== Node ===== <code bash> $ docker swarm join --token SWMTKN-1-...-... 172.31.245.104:2377 $ docker swarm leave </code>СохранитьПросмотрРазличияОтменить Сводка изменений Примечание: редактируя эту страницу, вы соглашаетесь на использование своего вклада на условиях следующей лицензии: CC0 1.0 Universal