Масштабирование и обновления без простоя в Swarm
Масштабируйте службы в swarm, выполняйте поэтапные обновления без простоя и автоматически возвращайтесь к предыдущей версии при сбое обновления.
«Масштабирование и обновления без простоя в Swarm» — бесплатный урок Docker & DevOps Fundamentals на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Docker & DevOps Fundamentals, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Docker & DevOps Fundamentals содержит 4 уроков всего.
Сервисы масштабируются
В Swarm сервис описывает желаемое количество одинаковых контейнерных реплик. Менеджер Swarm постоянно поддерживает это количество работающих реплик на разных узлах.
Масштабирование сервиса
В любой момент измените количество реплик с помощью docker service scale. Планировщик распределяет новые задачи по доступным узлам.
docker service scale web=5Масштабирование при создании
Также можно задать количество реплик при создании сервиса с помощью --replicas.
docker service create --name web --replicas 3 -p 80:80 nginxПроверка состояния реплик
Используйте docker service ls для получения сводной информации, а docker service ps — чтобы увидеть каждую задачу и узел, на котором она выполняется.
docker service ps webЧто такое поэтапное обновление?
Поэтапное обновление заменяет реплики небольшими группами, поэтому сервис остаётся доступным на всём протяжении процесса. В Swarm эта возможность встроена.
Запуск обновления
Укажите новый образ для сервиса с помощью docker service update --image. Swarm постепенно заменяет задачи согласно Вашей политике обновления.
docker service update --image nginx:1.27 webУправление развёртыванием
Настройте развёртывание с помощью параллелизма и задержки: укажите, сколько задач изменять одновременно и сколько ждать между группами.
docker service update \
--update-parallelism 2 \
--update-delay 10s \
--image nginx:1.27 webДействие при сбое обновления
Установите --update-failure-action в значение rollback, чтобы при сбое обновление автоматически отменялось, а сервис не оставался неисправным.
docker service update \
--update-failure-action rollback \
--image nginx:1.27 webРучной откат
Если обновление работает неправильно, команда docker service rollback мгновенно возвращает сервис к предыдущей спецификации.
docker service rollback webПроверки работоспособности управляют обновлениями
Проверка контейнера с помощью HEALTHCHECK позволяет Swarm узнать, действительно ли новая реплика готова. В сочетании с политикой обновления это предотвращает переключение трафика на неисправные задачи.
HEALTHCHECK --interval=10s CMD curl -f http://localhost/ || exit 1Глобальный и реплицируемый режимы
Реплицируемые сервисы запускают фиксированное количество задач, а глобальные сервисы — ровно одну задачу на каждом узле. Это идеально подходит для агентов, например сборщиков журналов. Масштабирование не применяется к глобальному режиму.
docker service create --mode global --name agent myagentБыстрая проверка
Как поэтапное обновление сохраняет доступность сервиса?
Итоги
Теперь Вы уверенно умеете управлять сервисами Swarm:
docker service scaleизменяет количество репликservice update --imageзапускает поэтапные обновления- Параллелизм, задержка и
--update-failure-action rollbackуправляют безопасностью service rollbackвыполняет откат, а проверки работоспособности контролируют готовность
Вместе эти возможности обеспечивают развёртывания в Swarm без простоя.
Часто задаваемые вопросы
Урок «Масштабирование и обновления без простоя в Swarm» бесплатный?
Да — полный текст урока «Масштабирование и обновления без простоя в Swarm» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Docker & DevOps Fundamentals, подпишись на CoddyKit PRO. Курс Docker & DevOps Fundamentals содержит 4 уроков всего.
Чему я научусь в уроке «Масштабирование и обновления без простоя в Swarm»?
Масштабируйте службы в swarm, выполняйте поэтапные обновления без простоя и автоматически возвращайтесь к предыдущей версии при сбое обновления. Ты практикуешь Docker & DevOps Fundamentals с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Docker & DevOps Fundamentals?
Предыдущий опыт не требуется. Docker & DevOps Fundamentals на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.
Сколько времени занимает урок «Масштабирование и обновления без простоя в Swarm»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Docker & DevOps Fundamentals?
Да. Каждый урок Docker & DevOps Fundamentals включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Введение в Docker Swarm
- Настройка кластера Swarm
- Развёртывание сервисов в Swarm
- Масштабирование и обновления без простоя в Swarm