---
status: stable
type: concept
tags:
  - devops
  - kubernetes
  - container
created: 2025-12-17
updated: 2026-04-29
title: 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 | Масштабирование приложения |
