Развёртывание и обновление микросервиса NGINX

KubernetesBeginner
Практиковаться сейчас

Введение

Вы приступили к последней задаче этого вводного курса. В предыдущих лабораторных работах вы изучили Pod, Deployment, Service, масштабирование, устранение неполадок и откат. Теперь вам предстоит объединить эти знания в одной небольшой задаче по выпуску обновления — без пошаговой инструкции для каждой команды.

В окружении уже есть работоспособный исходный выпуск с именем web-app. Ваша задача — опубликовать следующую зафиксированную версию образа NGINX, сохранив три доступные реплики и стабильный Service. Итоговое состояние кластера и сохранённый манифест должны совпадать, чтобы выпуск можно было воспроизводимо восстановить после завершения задания.

Выпуск следующей версии NGINX

Запуск среды: В этой лабораторной работе для вас запускается полноценный кластер Kubernetes. Настройка плоскости управления, узла и сетевых компонентов обычно занимает 2–3 минуты. Дождитесь полной загрузки среды, прежде чем начинать работу.

Текущая ситуация

Команда платформы подготовила исходный выпуск в /home/labex/project/final-release/web-app.yaml. Сейчас он запускает nginx:1.26-alpine в трёх репликах за Service web-app.

Область задачи

  • Работайте с существующими Deployment web-app, Service, манифестом и клиентом release-check.
  • Не переименовывайте ресурсы, не изменяйте селекторы и не заменяйте утверждённые параметры поэтапного обновления.
  • Используйте зафиксированный целевой образ; плавающие теги, например latest, не соответствуют требованиям выпуска.

Ваша цель

Опубликовать nginx:1.27-alpine через существующий Deployment и оставить рабочий кластер, путь доступа через Service и сохранённый манифест в едином исправном и воспроизводимом состоянии.

Критерии приёмки

  • Deployment web-app использует ровно три желаемые реплики.
  • Контейнер nginx использует зафиксированный образ nginx:1.27-alpine.
  • Параметры поэтапного обновления остаются равными maxUnavailable: 0 и maxSurge: 1.
  • Аннотация с причиной изменения описывает выпуск NGINX 1.27.
  • Service web-app по-прежнему выбирает Pod этого Deployment и имеет три готовых внутренних сервера.
  • Все три обновлённые реплики готовы и доступны, а HTTP-запрос из кластера к http://web-app завершается успешно.
  • В /home/labex/project/final-release/web-app.yaml указаны итоговый образ и параметры обновления, поэтому повторное применение файла сохранит принятое состояние.

Используйте команды Kubernetes для проверки состояния и процесса обновления, чтобы определить момент завершения выпуска. Если обновление ещё выполняется, дождитесь его окончания — не делайте вывод только по первому результату kubectl get.

Подсказки

Полезно проверить столбцы Deployment READY, UP-TO-DATE и AVAILABLE, образы Pod, историю обновлений и адреса EndpointSlice для Service.

Итоги

Вы завершили курс, самостоятельно выпустив зафиксированный образ NGINX через Deployment в Kubernetes. Вы сохранили явно заданные ограничения доступности, дождались готовности всех обновлённых реплик, оставили Service подключённым к трём готовым внутренним серверам, проверили запрос внутри кластера и сохранили принятое состояние в YAML.

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

✨ Проверить решение и практиковаться