Kubernetes - Развертывания

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

Они предоставляют множество обновленных функций matchLabels и selectors. У нас есть новый контроллер в мастере Kubernetes, который называется контроллером развертывания. У него есть возможность изменить развертывание на полпути.

Изменение развертывания

Updating- Пользователь может обновить текущее развертывание до его завершения. При этом будет урегулировано существующее развертывание и будет создано новое развертывание.

Deleting- Пользователь может приостановить / отменить развертывание, удалив его до его завершения. Повторное создание того же развертывания возобновит его.

Rollback- Мы можем откатить развертывание или развертывание в процессе. Пользователь может создать или обновить развертывание, используяDeploymentSpec.PodTemplateSpec = oldRC.PodTemplateSpec.

Стратегии развертывания

Стратегии развертывания помогают определить, как новый RC должен заменить существующий RC.

Recreate- Эта функция убьет все существующие RC, а затем вызовет новые. Это приводит к быстрому развертыванию, однако приведет к простоям, когда старые модули не работают, а новые не подходят.

Rolling Update- Эта функция постепенно отключает старый RC и вызывает новый. Это приводит к медленному развертыванию, однако развертывание не происходит. В этом процессе всегда доступно несколько старых модулей и несколько новых модулей.

Конфигурационный файл Deployment выглядит так.

apiVersion: extensions/v1beta1 --------------------->1
kind: Deployment --------------------------> 2
metadata:
   name: Tomcat-ReplicaSet
spec:
   replicas: 3
   template:
      metadata:
         lables:
            app: Tomcat-ReplicaSet
            tier: Backend
   spec:
      containers:
         - name: Tomcatimage:
            tomcat: 8.0
            ports:
               - containerPort: 7474

В приведенном выше коде единственное, что отличается от набора реплик, это то, что мы определили тип как развертывание.

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

$ kubectl create –f Deployment.yaml -–record
deployment "Deployment" created Successfully.

Получить развертывание

$ kubectl get deployments
NAME           DESIRED     CURRENT     UP-TO-DATE     AVILABLE    AGE
Deployment        3           3           3              3        20s

Проверить статус развертывания

$ kubectl rollout status deployment/Deployment

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

$ kubectl set image deployment/Deployment tomcat=tomcat:6.0

Откат к предыдущему развертыванию

$ kubectl rollout undo deployment/Deployment –to-revision=2