vault backup: 2026-04-29 15:31:12
This commit is contained in:
Vendored
+1
-1
@@ -32,6 +32,6 @@
|
||||
"repelStrength": 6.34095634095634,
|
||||
"linkStrength": 0.504158004158004,
|
||||
"linkDistance": 250,
|
||||
"scale": 0.05488233943318438,
|
||||
"scale": 0.30541165903188916,
|
||||
"close": true
|
||||
}
|
||||
Vendored
+10
-57
@@ -21,54 +21,8 @@
|
||||
"icon": "lucide-file",
|
||||
"title": "Kubernetes"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "089732df013c9481",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "markdown",
|
||||
"state": {
|
||||
"file": "00 Inbox/Deployment и ReplicaSet.md",
|
||||
"mode": "source",
|
||||
"source": false,
|
||||
"backlinks": false
|
||||
},
|
||||
"icon": "lucide-file",
|
||||
"title": "Deployment и ReplicaSet"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "801286aef81114cf",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "markdown",
|
||||
"state": {
|
||||
"file": "00 Inbox/PV, PVC.md",
|
||||
"mode": "source",
|
||||
"source": false,
|
||||
"backlinks": false
|
||||
},
|
||||
"icon": "lucide-file",
|
||||
"title": "PV, PVC"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "adcb6e3e2a55e33f",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "markdown",
|
||||
"state": {
|
||||
"file": "00 Inbox/Введение в сетевую безопасность.md",
|
||||
"mode": "source",
|
||||
"source": false,
|
||||
"backlinks": false
|
||||
},
|
||||
"icon": "lucide-file",
|
||||
"title": "Введение в сетевую безопасность"
|
||||
}
|
||||
}
|
||||
],
|
||||
"currentTab": 2
|
||||
]
|
||||
}
|
||||
],
|
||||
"direction": "vertical"
|
||||
@@ -292,11 +246,16 @@
|
||||
"obsidian-git:Open Git source control": false
|
||||
}
|
||||
},
|
||||
"active": "801286aef81114cf",
|
||||
"active": "9860cb6515fd025c",
|
||||
"lastOpenFiles": [
|
||||
"00 Inbox/Deployment и ReplicaSet.md",
|
||||
"00 Inbox/PV, PVC.md",
|
||||
"01 Library/02 DevOps/Kubernetes/Kubernetes.md",
|
||||
"00 Inbox/PV, PVC.md",
|
||||
"01 Library/02 DevOps/Kubernetes/Kubernetes.md.tmp.92756.1777465592821",
|
||||
"01 Library/02 DevOps/Kubernetes/PV, PVC.md",
|
||||
"01 Library/02 DevOps/Kubernetes/PV, PVC.md.tmp.92756.1777465584838",
|
||||
"01 Library/02 DevOps/Kubernetes/Deployment и ReplicaSet.md",
|
||||
"01 Library/02 DevOps/Kubernetes/Deployment и ReplicaSet.md.tmp.92756.1777465578185",
|
||||
"00 Inbox/Deployment и ReplicaSet.md",
|
||||
"00 Inbox/Введение в сетевую безопасность.md",
|
||||
"01 Library/02 DevOps/Kubernetes/Алгоритм выбора лидера Lease.md",
|
||||
"01 Library/02 DevOps/Kubernetes/Алгоритм консенсуса raft.md",
|
||||
@@ -329,16 +288,10 @@
|
||||
"01 Library/09 Sport/Креатин.md",
|
||||
"01 Library/09 Sport/План тренировок (FullBody + Upper-Lower).md",
|
||||
"04 Tools/🛠️ Неоконченные заметки.md",
|
||||
"02 Projects/Учеба/Домашки/Информация по курсовой. ИРФМ.md",
|
||||
"01 Library/11 Machine Learning/Обратное распространение ошибки.md",
|
||||
"03 Journal/2026/03 - March/31.03.26 - Tuesday.md",
|
||||
"diary_Я (копия).csv",
|
||||
"diary_Я.csv",
|
||||
"01 Library/10 Finance/Экономическая Безопасность",
|
||||
"00 Inbox/Курсовая инфа.md.tmp.165293.1776760040061",
|
||||
"CLAUDE.md.tmp.114174.1776715992129",
|
||||
"01 Library/08 Study/OSINT - Зачет.md.tmp.41192.1776715609646",
|
||||
"01 Library/07 HomeLab/Проблемы дистрибутивов.md.tmp.41192.1776715581823",
|
||||
"01 Library/06 Programming/Ruby On Rails/Active Storage.md.tmp.41192.1776715578452"
|
||||
"CLAUDE.md.tmp.114174.1776715992129"
|
||||
]
|
||||
}
|
||||
@@ -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**)
|
||||
|
||||
@@ -0,0 +1,57 @@
|
||||
---
|
||||
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 | Масштабирование приложения |
|
||||
@@ -17,6 +17,15 @@ K8s — система оркестрации контейнеров. Класт
|
||||
- **[[Data Plane - Плоскость данных]]** — worker-узлы: kubelet, kube-proxy, CRI/CNI/CSI
|
||||
|
||||
![[Pasted image 20260429091836.png]]
|
||||
## Рабочие нагрузки
|
||||
|
||||
- [[Deployment и ReplicaSet]] — развёртывание, rolling update, rollback, scaling
|
||||
|
||||
## Хранение данных
|
||||
|
||||
- [[PV, PVC]] — персистентное хранилище: Persistent Volume и Persistent Volume Claim
|
||||
|
||||
|
||||
|
||||
## Альтернативные решения
|
||||
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
---
|
||||
status: stable
|
||||
type: concept
|
||||
tags:
|
||||
- devops
|
||||
- kubernetes
|
||||
- storage
|
||||
created: 2025-12-17
|
||||
updated: 2026-04-29
|
||||
title: PV, PVC
|
||||
---
|
||||
|
||||
# PV, PVC
|
||||
|
||||
Сущности k8s для персистентного хранения данных.
|
||||
|
||||
## Persistent Volume (PV)
|
||||
|
||||
**PV** — отражение реального раздела на диске в терминах k8s. Такой же ресурс кластера, как Master или Worker node.
|
||||
|
||||
- Не зависит от namespace
|
||||
- Создаётся вручную (Manifest) или автоматически (Provisioning)
|
||||
|
||||
## Persistent Volume Claim (PVC)
|
||||
|
||||
**PVC** — запрос приложения на подключение к PV.
|
||||
|
||||
- Зависит от namespace
|
||||
- Описывает требования к хранилищу (размер, класс, режим доступа)
|
||||
|
||||
## Схема подключения
|
||||
|
||||
```
|
||||
Pod → PVC → PV → физический диск
|
||||
```
|
||||
|
||||
**Deployment** может содержать ссылку на PVC — тогда при развёртывании Pod автоматически получает доступ к нужному хранилищу.
|
||||
Reference in New Issue
Block a user