vault backup: 2026-04-29 15:31:12

This commit is contained in:
Dmitry
2026-04-29 15:31:12 +03:00
parent 4492ca133a
commit bc1a34e895
7 changed files with 114 additions and 173 deletions
-74
View File
@@ -1,74 +0,0 @@
---
status: processing
type: concept
tags:
- devops
created: 2025-12-17
updated: 2026-04-29
title: 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`.
```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**).
-41
View File
@@ -1,41 +0,0 @@
---
status: seed
type: concept
tags: []
created: 2025-12-17
updated: 2026-04-29
title: PV, PVC
---
# PV, PVC
Для обеспечения работы с данными и выгрузки данных на персистентное хранение в Kubernetes используются сущности:
- PV (Persistent Volume).
- PVC (Persistent Volume Claim).
## Persistent Volume
**PV (Persistent Volume)** — сущность, используемая для непосредственного хранения данных, отражение в kubernetes фактического раздела на жестком диске.
- не зависит от namespace
С точки зрения кластера Kubernetes, PV является таким же ресурсом кластера, как Master и Worker node.
## Persistent Volume Claim
**PVC (Persistent Volume Claim)** — это запрос приложения, развернутого в Kubernetes, на подключение к PV для выгрузки данных на персистентное хранение.
- зависит от namespace
С помощью PVC можно управлять хранилищами приложения, развернутого в Kubernetes, посредством выделения и подключения к рабочим нагрузкам дисков с требуемыми характеристиками.
Выгрузка данных приложения на персистентное хранение осуществляется посредством подключения Pods к хранилищу (PV) через специальный запрос на хранилище (PVC).
> [!note] PV может быть создан:
>
> - Вручную (через применение Manifest).
> - Автоматически (с помощью Provisioning).
**Deployment** может содержать запись о необходимости использования персистентного хранилища (PVC).
**PVC** описывает требования к хранилищу (**PV**)