Создание развертываний в Служба Azure Kubernetes на Azure Stack HCI и сервере Windows

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

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