vault backup: 2026-04-29 15:31:12
This commit is contained in:
@@ -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**).
|
||||
|
||||
@@ -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**)
|
||||
|
||||
Reference in New Issue
Block a user