Создание развертываний в гибридной среде AKS
Область применения: AKS в Azure Stack HCI, AKS в Windows Server
В этой статье представлен обзор развертываний Kubernetes, а также описано, как создавать и обновлять развертывания в гибридной среде AKS.
Общие сведения о развертываниях 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
Обновление развертывания
Main преимуществом развертываний является автоматическое обновление программы Kubernetes. Без развертываний вам придется вручную завершить все старые модули pod, запустить новые версии pod и запустить проверка, чтобы узнать, есть ли проблемы при создании модулей pod. Вы можете выполнить команду kubectl describe deployment
, чтобы просмотреть порядок, в котором объекты pod были выведены и удалены.
Развертывания автоматизируют процесс обновления, просто обновляя шаблон pod или требуемое состояние. Развертывание изменяет состояние программы в фоновом режиме с помощью таких действий, как создание новых модулей pod или выделение дополнительных ресурсов, пока не будет выполнено выбранное обновление.
При возникновении проблем в развертывании Kubernetes автоматически выполняет откат к предыдущей версии. Вы также можете явным образом выполнить откат до определенной версии с помощью kubectl rollout undo
команды или использовать kubectl rollout pause
для временной остановки развертывания.
Стратегии обновления развертываний
Kubernetes предоставляет несколько стратегий развертывания, позволяющих обновлять их различными способами в соответствии с потребностями вашей среды. Ниже перечислены три наиболее распространенные стратегии обновления.
- Последовательное обновление. Это постепенный процесс, который позволяет обновлять систему Kubernetes лишь незначительно сказывается на производительности и без простоев. Это позволяет свести к минимуму время простоя за счет скорости обновления.
- Воссоздания. Эта стратегия представляет собой процесс "все или ничего", который позволяет обновлять все аспекты системы одновременно с коротким периодом простоя. Он быстро обновляется, но приводит к простою.
- Возможно. Эта стратегия представляет собой частичный процесс обновления, который позволяет протестировать новую версию программы на реальных пользователях без обязательств по полному развертыванию. Он быстро обновляется для нескольких избранных пользователей с полным развертыванием позже.