58 lines
1.9 KiB
Markdown
58 lines
1.9 KiB
Markdown
---
|
|
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 | Масштабирование приложения |
|