Создание развертываний в гибридной среде 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 лишь незначительно сказывается на производительности и без простоев. Это позволяет свести к минимуму время простоя за счет скорости обновления.
  • Воссоздания. Эта стратегия представляет собой процесс "все или ничего", который позволяет обновлять все аспекты системы одновременно с коротким периодом простоя. Он быстро обновляется, но приводит к простою.
  • Возможно. Эта стратегия представляет собой частичный процесс обновления, который позволяет протестировать новую версию программы на реальных пользователях без обязательств по полному развертыванию. Он быстро обновляется для нескольких избранных пользователей с полным развертыванием позже.

Дальнейшие действия