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