vault backup: 2026-04-29 15:31:12
This commit is contained in:
Vendored
+1
-1
@@ -32,6 +32,6 @@
|
|||||||
"repelStrength": 6.34095634095634,
|
"repelStrength": 6.34095634095634,
|
||||||
"linkStrength": 0.504158004158004,
|
"linkStrength": 0.504158004158004,
|
||||||
"linkDistance": 250,
|
"linkDistance": 250,
|
||||||
"scale": 0.05488233943318438,
|
"scale": 0.30541165903188916,
|
||||||
"close": true
|
"close": true
|
||||||
}
|
}
|
||||||
Vendored
+10
-57
@@ -21,54 +21,8 @@
|
|||||||
"icon": "lucide-file",
|
"icon": "lucide-file",
|
||||||
"title": "Kubernetes"
|
"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"
|
"direction": "vertical"
|
||||||
@@ -292,11 +246,16 @@
|
|||||||
"obsidian-git:Open Git source control": false
|
"obsidian-git:Open Git source control": false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"active": "801286aef81114cf",
|
"active": "9860cb6515fd025c",
|
||||||
"lastOpenFiles": [
|
"lastOpenFiles": [
|
||||||
"00 Inbox/Deployment и ReplicaSet.md",
|
|
||||||
"00 Inbox/PV, PVC.md",
|
|
||||||
"01 Library/02 DevOps/Kubernetes/Kubernetes.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",
|
"00 Inbox/Введение в сетевую безопасность.md",
|
||||||
"01 Library/02 DevOps/Kubernetes/Алгоритм выбора лидера Lease.md",
|
"01 Library/02 DevOps/Kubernetes/Алгоритм выбора лидера Lease.md",
|
||||||
"01 Library/02 DevOps/Kubernetes/Алгоритм консенсуса raft.md",
|
"01 Library/02 DevOps/Kubernetes/Алгоритм консенсуса raft.md",
|
||||||
@@ -329,16 +288,10 @@
|
|||||||
"01 Library/09 Sport/Креатин.md",
|
"01 Library/09 Sport/Креатин.md",
|
||||||
"01 Library/09 Sport/План тренировок (FullBody + Upper-Lower).md",
|
"01 Library/09 Sport/План тренировок (FullBody + Upper-Lower).md",
|
||||||
"04 Tools/🛠️ Неоконченные заметки.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",
|
||||||
"diary_Я.csv",
|
"diary_Я.csv",
|
||||||
"01 Library/10 Finance/Экономическая Безопасность",
|
"01 Library/10 Finance/Экономическая Безопасность",
|
||||||
"00 Inbox/Курсовая инфа.md.tmp.165293.1776760040061",
|
"00 Inbox/Курсовая инфа.md.tmp.165293.1776760040061",
|
||||||
"CLAUDE.md.tmp.114174.1776715992129",
|
"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"
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -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
|
- **[[Data Plane - Плоскость данных]]** — worker-узлы: kubelet, kube-proxy, CRI/CNI/CSI
|
||||||
|
|
||||||
![[Pasted image 20260429091836.png]]
|
![[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