Введение
В этом лабораторном занятии (lab) вы научитесь масштабировать и управлять подами (Pods) с использованием развертываний (Deployments) в Kubernetes. Развертывания (Deployments) представляют собой более высокоуровневую абстракцию, которая позволяет декларативно управлять и масштабировать наборы реплик подов (Pods). Используя развертывания (Deployments), вы можете легко обновить свое приложение до новой версии, вернуться к предыдущей версии и масштабировать свое приложение вверх или вниз, чтобы удовлетворить меняющиеся потребности.
Запустите кластер Minikube
Перед созданием ресурсов вам нужен работающий кластер Kubernetes. Minikube - это легковесная среда Kubernetes, которая запускается на вашем локальном компьютере.
Перейдите в рабочую директорию:
Откройте терминал и перейдите в папку проекта по умолчанию:
cd /home/labex/projectЗапустите Minikube:
Запустите Minikube для инициализации кластера Kubernetes:
minikube start- Эта команда настраивает однодневный кластер Kubernetes на вашем локальном компьютере.
- В зависимости от производительности вашей системы Minikube может потребовать несколько минут для запуска.
Проверьте, что Minikube запущен:
Проверьте статус кластера Minikube:
minikube status- Найдите компоненты, такие как
kubeletиapiserver, перечисленные какRunning. - Если кластер не запущен, запустите команду
minikube startснова.
- Найдите компоненты, такие как
Если у вас возникли проблемы с запуском Minikube, используйте minikube delete для сброса среды при необходимости.
Создать развертывание (Deployment)
- Создайте файл с именем
my-deployment.yamlв директории/home/labex/project/со следующим содержимым:
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-deployment
spec:
replicas: 3
selector:
matchLabels:
app: my-app
template:
metadata:
labels:
app: my-app
spec:
containers:
- name: my-app
image: nginx:latest
ports:
- containerPort: 80
Этот YAML-файл определяет развертывание (Deployment) с 3 репликами, запускающими контейнер Nginx. Поле selector выбирает поды (Pods), контролируемые развертыванием (Deployment), на основе метки app.
- Разверните развертывание (Deployment)
my-deployment:
kubectl apply -f my-deployment.yaml
Это создаст развертывание (Deployment) my-deployment и связанные с ним наборы реплик (ReplicaSets) и поды (Pods).
- Проверьте, что развертывание (Deployment) было создано:
kubectl get deployments
Это покажет вам развертывания (Deployments) в вашем кластере, включая развертывание (Deployment) my-deployment.
Масштабирование развертывания (Deployment)
- Увеличьте масштаб развертывания (Deployment)
my-deploymentдо 5 реплик:
kubectl scale deployment my-deployment --replicas=5
Это увеличит количество реплик в развертывании (Deployment) my-deployment до 5.
- Проверьте, что развертывание (Deployment) было масштабировано:
kubectl get deployments
Это покажет вам развертывания (Deployments) в вашем кластере, включая развертывание (Deployment) my-deployment с 5 репликами.
Обновление развертывания (Deployment)
- Отредактируйте развертывание (Deployment)
my-deploymentтак, чтобы оно использовало образ (image)nginx:1.19:
kubectl edit deployment my-deployment
Это откроет развертывание (Deployment) в вашем текстовом редакторе по умолчанию. Измените поле image на nginx:1.19 и сохраните файл.
- Проверьте, что развертывание (Deployment) было обновлено:
kubectl rollout status deployment/my-deployment
Это покажет вам статус последнего развертывания (rollout) развертывания (Deployment) my-deployment.
Откат развертывания (Deployment)
- Откатите развертывание (Deployment)
my-deploymentдо предыдущей версии:
kubectl rollout undo deployment/my-deployment
Это откатит развертывание (Deployment) my-deployment до предыдущей версии.
- Проверьте, что развертывание (Deployment) было откачено:
kubectl rollout status deployment/my-deployment
Это покажет вам статус последнего развертывания (rollout) развертывания (Deployment) my-deployment.
Очистка
- Удалите развертывание (Deployment)
my-deployment:
kubectl delete deployment my-deployment
Это удалит развертывание (Deployment) my-deployment и связанные с ним наборы реплик (ReplicaSets) и поды (Pods).
Резюме
В этом практическом занятии (lab) вы научились создавать и управлять развертываниями (Deployments) в Kubernetes. Вы создали развертывание (Deployment) с 3 репликами, масштабировали развертывание до 5 реплик, обновили развертывание для использования другого образа (image), откатили развертывание до предыдущей версии.


