3.3 KiB
status, type, tags, created, updated, title
| status | type | tags | created | updated | title | |
|---|---|---|---|---|---|---|
| processing | concept |
|
2025-12-17 | 2026-04-29 | Deployment и ReplicaSet |
Deployment и ReplicaSet
Среди многих kube-controllers, есть два важных контроллера, которые отвечают за развертывание приложений в k8s.
- Deployment-controller
- Replicaset-controller
Deployment
Deployment-controller отвечает за работу с декларативным описанием приложения для его последующего развертывания и обновления.
Сущность, которой оперирует deployment-controller называется Deployment.
ReplicaSet
Deployment в своей работе использует концепцию набора репликаций
Replicaset — сущность Kubernetes, отвечающая за поддержку стабильного набора репликаций приложения, работающих в один момент времени.
За работу с Replicaset отвечает Replicaset-controller.
Приложения в k8s представлены в виде объединений контейнеров (pod). Набором репликаций объединений контейнеров (pods) управляет replicaset.
С набором репликаций (replicaset) работает deployment.
Deployment controller
Deployment-controller способен самостоятельно создать Deployment на основе образа (Docker image), а может использовать готовое описание Deployment (Manifest) в формате yaml или json.
kubectl create deployment mariadb --image=mariadb:4.0
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.
kubectl expose deployment mariadb --port=8080
kubectl apply -f nginx-service-manifest.yaml
Deployment - replicaset
За счет связки Deployment - replicaset, в кластере Kubernetes гарантируется выполнение следующих операций.
- Обновление без downtime (Rolling update).
- Откат текущего обновления (Rollback).
- Просмотр истории обновлений (Revision).
- Откат приложения до конкретной ревизии (Rollback to revision).
- Скалирование и дескалирование приложения (Scaling).