--- status: stable type: concept tags: - devops - kubernetes - container created: 2025-12-17 updated: 2026-05-07 aliases: - Deployment и ReplicaSet --- # Deployment и ReplicaSet Два ключевых контроллера k8s, отвечающих за развёртывание приложений. ## Deployment **Deployment-controller** управляет декларативным описанием приложения для его развёртывания и обновления. Способен создать Deployment из образа или из готового манифеста: ```sh kubectl create deployment mariadb --image=mariadb:4.0 kubectl apply -f nginx-deployment-manifest.yaml ``` Deployment работает только с **Pods** и **ReplicaSets**. ## ReplicaSet **ReplicaSet** — сущность k8s, обеспечивающая поддержку стабильного набора реплик Pod в любой момент времени. Приложение = Pod (объединение контейнеров). ReplicaSet управляет множеством таких Pod. ## Service Для связи Pod с другими Pod и внешним миром используется **Service**. Pod связывается с Service через **Endpoint** (управляет Endpoint-controller). Создание Service: ```bash kubectl expose deployment mariadb --port=8080 kubectl apply -f nginx-service-manifest.yaml ``` ## Возможности связки Deployment + ReplicaSet | Операция | Описание | |---|---| | Rolling update | Обновление без downtime | | Rollback | Откат текущего обновления | | Revision | Просмотр истории обновлений | | Rollback to revision | Откат до конкретной ревизии | | Scaling | Масштабирование приложения |