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

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

Введение

В рамках этого испытания вам предстоит продемонстрировать навыки работы с Kubernetes в роли младшего DevOps-инженера в технологическом стартапе. Ваша задача — обновить веб-приложение, использующее NGINX в качестве микросервиса, обеспечив при этом минимальные перебои в работе. Вам потребуется обновить Deployment в Kubernetes до более новой версии образа и подтвердить успешное выполнение стратегии плавного обновления (rolling update).

Обновление Deployment NGINX

Как младший DevOps-инженер, вы должны обновить существующее развертывание таким образом, чтобы пользователи не заметили перебоев в обслуживании.

Предварительные условия

Перед началом убедитесь, что окружение готово:

minikube start
kubectl apply -f ~/project/k8s-manifests/nginx-deployment.yaml

Проверьте статус развертывания:

kubectl get deployments

Задачи

  1. Обновите развертывание web-app, установив образ nginx:1.24.0-alpine.
  2. Убедитесь, что обновление выполнено успешно с использованием механизма rolling update, гарантирующего отсутствие простоев.

Требования

  • Используйте команды kubectl для выполнения обновления.
  • Подтвердите, что приложение продолжает функционировать без пауз в процессе обновления.
  • Используйте kubectl rollout status для мониторинга процесса обновления.
  • Проверьте образы в подах, чтобы убедиться в использовании новой версии.

Подсказки

  • Для смены образа воспользуйтесь командами kubectl edit deployment web-app или kubectl set image.
  • Отслеживайте ход развертывания с помощью kubectl rollout status.
  • Проверить запущенные поды и используемые в них образы контейнеров можно через kubectl get pods -o jsonpath.
✨ Проверить решение и практиковаться

Резюме

В этом испытании вы продемонстрировали навыки работы с Kubernetes, обновив образ в развертывании веб-приложения NGINX. Вы обеспечили непрерывную доступность сервиса в процессе работы и подтвердили успешность плавного обновления. Это упражнение подчеркивает важность поддержания высокой доступности при внесении изменений в инфраструктуру Kubernetes.