Создание развертываний
Область применения: AKS в Azure Local 22H2, AKS на Windows Server
В этой статье представлен обзор развертываний Kubernetes и описано, как создавать и обновлять эти развертывания в AKS, включенных Azure Arc.
Обзор развертываний Kubernetes
Развертывание относится к объекту Kubernetes, который управляет производительностью и указывает требуемое поведение модуля pod. Он задает жизненный цикл приложения, включая модули pod, назначенные приложению. Развертывание позволяет взаимодействовать с нужным состоянием приложения, а контроллер работает над изменением текущего состояния в нужном состоянии.
Развертывания автоматизируют процесс для запуска экземпляров pod и гарантируют, что они выполняются как определенные на всех узлах в кластере. Администраторы и ИТ-специалисты используют развертывания для обмена данными о том, что они хотят от приложения, а затем Kubernetes выполняет все необходимые действия для создания требуемого состояния приложения.
Хотя развертывания определяют, как работают приложения, они не гарантируют, где ваши приложения находятся в кластере. Например, если приложению требуется экземпляр pod на каждом узле, необходимо использовать daemonSet. Для приложений с отслеживанием состояния statefulSet предоставляет уникальные сетевые идентификаторы, постоянное хранилище и упорядоченное развертывание и масштабирование.
Объект развертывания Kubernetes позволяет:
- Развертывание набора реплик или модуля pod.
- Масштабирование числа экземпляров приложения вверх или вниз.
- Обновите каждый запущенный экземпляр приложения.
- Откат всех запущенных экземпляров приложения в другую версию.
- Приостановка или продолжение развертывания.
Дополнительные сведения см. в разделе "Развертывания Kubernetes".
Создание развертывания
Чтобы создать развертывание, можно использовать kubectl apply
команды или kubectl create
команды. Так как необходимое количество модулей pod поддерживается и отслеживается, они выполняются и доступны после создания развертывания. Если модуль pod завершается ошибкой, Kubernetes немедленно развертывает реплику модуля pod для его размещения в кластере.
В следующем примере описываются функции файла манифеста развертывания в формате YAML:
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx
spec:
replicas: 3
selector:
matchLabels:
app: nginx
strategy:
type: Recreate
template:
metadata:
labels:
app: nginx
spec:
containers:
- image: nginx
name: nginx
ports:
- containerPort: 80
Чтобы просмотреть развертывание, набор реплик и модули pod, выполните следующую команду:
kubectl get deployment, replicaset, pod
Обновление развертывания
Основным преимуществом развертываний является возможность автоматического обновления программы Kubernetes. Без развертываний необходимо вручную завершить все старые модули pod, запустить новые версии pod и проверить наличие проблем при создании модулей pod. Вы можете kubectl describe deployment
просмотреть порядок, в котором были созданы и удалены модули pod.
Развертывания автоматизируют процесс обновления, так как вы просто обновляете шаблон pod или требуемое состояние. Развертывание изменяет состояние программы в фоновом режиме с действиями, такими как создание новых модулей pod или выделение дополнительных ресурсов, пока выбранное обновление не будет развернуто.
Если в развертывании возникли проблемы, Kubernetes автоматически откатится к предыдущей версии. Вы также можете явно выполнить откат к определенной версии с помощью kubectl rollout undo
команды или временно kubectl rollout pause
остановить развертывание.
Стратегии обновления развертываний
Kubernetes предоставляет несколько стратегий развертывания, чтобы можно было обновить различные способы удовлетворения потребностей вашей среды. Ниже приведены три наиболее распространенные стратегии обновления.
- Последовательное обновление. Это постепенный процесс, позволяющий обновлять систему Kubernetes только с незначительным воздействием на производительность и без простоя. Это сокращает время простоя за счет скорости обновления.
- Отдых: эта стратегия — это процесс всех или ничего, который позволяет одновременно обновлять все аспекты системы с кратким периодом простоя. Она быстро обновляется, но приводит к простою.
- Canary: Эта стратегия представляет собой частичный процесс обновления, который позволяет протестировать новую версию программы на реальных пользователей без обязательств по полному развертыванию. Он быстро обновляется для нескольких пользователей с полным развертыванием позже.