diff --git a/00 Inbox/Deployment и ReplicaSet.md b/00 Inbox/Deployment и ReplicaSet.md index c8c680c..519facd 100644 --- a/00 Inbox/Deployment и ReplicaSet.md +++ b/00 Inbox/Deployment и ReplicaSet.md @@ -30,4 +30,45 @@ Deployment в своей работе использует концепцию н За работу с Replicaset отвечает *Replicaset*-controller. Приложения в k8s представлены в виде объединений контейнеров (**pod**). -Набором репликаций объединений контейнеров (**pods**) управляет replicaset. \ No newline at end of file +Набором репликаций объединений контейнеров (**pods**) управляет replicaset. + +С набором репликаций (replicaset) работает deployment. + +## Deployment controller +*Deployment-controller* способен самостоятельно создать Deployment на основе образа (Docker image), а может использовать готовое описание Deployment (Manifest) в формате `yaml` или `json`. + +```sh +kubectl create deployment mariadb --image=mariadb:4.0 +``` + +```sh +kubectl apply -f nginx-deployment-manifest.yaml +``` + +Deployment-controller через сущность Deployment работает только с объединением контейнеров (Pods) и наборами их репликаций (Replicasets). + +Для связи *Pod* с другими *Pods* и внешним миром используется сущность **Service**. + +*Pod* связывается с *Service* через *Endpoint* (обеспечением работы Endpoints занимается Endpoint-controller). + +## Service + +Создать Service можно выполнив *Expose* существующего *Deployment* или использовав готовое описание *Service* (Manifest) в формате `yaml` или `json`. + +```bash +kubectl expose deployment mariadb --port=8080 +``` +```sh +kubectl apply -f nginx-service-manifest.yaml +``` + +## Deployment - replicaset + +За счет связки *Deployment* - *replicaset*, в кластере Kubernetes гарантируется выполнение следующих операций. + +- Обновление без downtime (**Rolling update**). +- Откат текущего обновления (**Rollback**). +- Просмотр истории обновлений (**Revision**). +- Откат приложения до конкретной ревизии (**Rollback to revision**). +- Скалирование и дескалирование приложения (**Scaling**). +