Создание развертываний

Область применения: AKS в Azure Stack HCI 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

Обновление развертывания

Main преимуществом развертываний является возможность автоматического обновления программы Kubernetes. Без развертываний вам придется вручную завершить все старые модули pod, запустить новые версии pod и запустить проверка, чтобы узнать, есть ли проблемы при создании модулей pod. Вы можете выполнить команду kubectl describe deployment , чтобы увидеть порядок, в котором были выведены и удалены модули pod.

Развертывания автоматизируют процесс обновления, просто обновляя шаблон pod или требуемое состояние. Развертывание изменяет состояние программы в фоновом режиме с помощью таких действий, как создание новых модулей pod или выделение дополнительных ресурсов, пока не будет выполнено выбранное обновление.

При возникновении проблем в развертывании Kubernetes автоматически выполняет откат к предыдущей версии. Вы также можете явно выполнить откат к определенной версии с помощью kubectl rollout undo команды или использовать kubectl rollout pause для временной остановки развертывания.

Стратегии обновления развертываний

Kubernetes предоставляет несколько стратегий развертывания, которые позволяют обновлять их различными способами в соответствии с потребностями вашей среды. Ниже перечислены три наиболее распространенные стратегии обновления.

  • Последовательное обновление. Это постепенный процесс, который позволяет обновлять систему Kubernetes лишь незначительно сказывается на производительности и без простоев. Это позволяет свести к минимуму время простоя за счет скорости обновления.
  • Воссоздания. Эта стратегия представляет собой процесс "все или ничего", который позволяет обновлять все аспекты системы одновременно с коротким периодом простоя. Он быстро обновляется, но приводит к простою.
  • Canary: эта стратегия является частичным процессом обновления, который позволяет протестировать новую версию программы на реальных пользователей без обязательств по полному развертыванию. Он быстро обновляется для нескольких пользователей с полным развертыванием позже.

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