vault backup: 2026-04-29 08:58:24

This commit is contained in:
Dmitry
2026-04-29 08:58:24 +03:00
parent 231514e081
commit c96878f828
15 changed files with 143 additions and 30 deletions
+1 -1
View File
@@ -8,7 +8,7 @@
"interfaceFontFamily": "Inter", "interfaceFontFamily": "Inter",
"textFontFamily": "Inter", "textFontFamily": "Inter",
"baseFontSizeAction": true, "baseFontSizeAction": true,
"baseFontSize": 16, "baseFontSize": 17,
"monospaceFontFamily": "", "monospaceFontFamily": "",
"nativeMenus": false, "nativeMenus": false,
"showRibbon": false "showRibbon": false
+33 -18
View File
@@ -13,13 +13,13 @@
"state": { "state": {
"type": "markdown", "type": "markdown",
"state": { "state": {
"file": "01 Library/11 Machine Learning/Линейные модели.md", "file": "01 Library/02 DevOps/Kubernetes/Kubernetes.md",
"mode": "source", "mode": "source",
"source": false, "source": false,
"backlinks": false "backlinks": false
}, },
"icon": "lucide-file", "icon": "lucide-file",
"title": "Линейные модели" "title": "Kubernetes"
} }
}, },
{ {
@@ -28,17 +28,32 @@
"state": { "state": {
"type": "markdown", "type": "markdown",
"state": { "state": {
"file": "00 Inbox/Анализ типа фин. устойчивости.md", "file": "00 Inbox/Data Plane - Плоскость данных.md",
"mode": "source", "mode": "source",
"source": false, "source": false,
"backlinks": false "backlinks": false
}, },
"icon": "lucide-file", "icon": "lucide-file",
"title": "Анализ типа фин. устойчивости" "title": "Data Plane - Плоскость данных"
}
},
{
"id": "0097adcc4b7e955f",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
"file": "00 Inbox/Control Plane - Плоскость управления.md",
"mode": "source",
"source": false,
"backlinks": false
},
"icon": "lucide-file",
"title": "Control Plane - Плоскость управления"
} }
} }
], ],
"currentTab": 1 "currentTab": 2
} }
], ],
"direction": "vertical" "direction": "vertical"
@@ -262,9 +277,20 @@
"obsidian-git:Open Git source control": false "obsidian-git:Open Git source control": false
} }
}, },
"active": "9860cb6515fd025c", "active": "0097adcc4b7e955f",
"lastOpenFiles": [ "lastOpenFiles": [
"01 Library/02 DevOps/Kubernetes/Kubernetes.md",
"01 Library/11 Machine Learning/Линейные модели.md", "01 Library/11 Machine Learning/Линейные модели.md",
"00 Inbox/Control Plane - Плоскость управления.md",
"00 Inbox/Data Plane - Плоскость данных.md",
"99 System/Cache/Pasted image 20260429085656.png",
"99 System/Cache/Pasted image 20260429085653.png",
"00 Inbox/Алгоритм консенсуса raft.md",
"00 Inbox/Алгоритм выбора лидера Lease.md",
"99 System/Cache/Pasted image 20260428175706.png",
"99 System/Cache/Pasted image 20260428175708.png",
"99 System/Cache/Pasted image 20260428175716.png",
"99 System/Cache/Pasted image 20260428175720.png",
"00 Inbox/Анализ типа фин. устойчивости.md", "00 Inbox/Анализ типа фин. устойчивости.md",
"03 Journal/03 Journal.md", "03 Journal/03 Journal.md",
"02 Projects/Наука/НИР/НИР.md", "02 Projects/Наука/НИР/НИР.md",
@@ -288,13 +314,8 @@
"01 Library/11 Machine Learning/Нейронные сети.md", "01 Library/11 Machine Learning/Нейронные сети.md",
"01 Library/10 Finance/Экономическая Безопасность", "01 Library/10 Finance/Экономическая Безопасность",
"CLAUDE.md", "CLAUDE.md",
"99 System/Claude - Инструкция и контекст.md",
"00 Inbox/Курсовая инфа.md.tmp.165293.1776760040061", "00 Inbox/Курсовая инфа.md.tmp.165293.1776760040061",
"02 Projects/Личные/Финансы/Подписки - календарь.md",
"01 Library/02 DevOps/Контейнеризация/Docker/Docker - Дополнительные знания.md",
"CLAUDE.md.tmp.114174.1776715992129", "CLAUDE.md.tmp.114174.1776715992129",
"01 Library/02 DevOps/Контейнеризация/Docker/Основы - Docker.md",
"01 Library/01 Admin/CA и NGINX.md",
"01 Library/08 Study/OSINT - Зачет.md.tmp.41192.1776715609646", "01 Library/08 Study/OSINT - Зачет.md.tmp.41192.1776715609646",
"01 Library/07 HomeLab/Проблемы дистрибутивов.md.tmp.41192.1776715581823", "01 Library/07 HomeLab/Проблемы дистрибутивов.md.tmp.41192.1776715581823",
"01 Library/06 Programming/Ruby On Rails/Active Storage.md.tmp.41192.1776715578452", "01 Library/06 Programming/Ruby On Rails/Active Storage.md.tmp.41192.1776715578452",
@@ -303,12 +324,6 @@
"99 System/Cache/Pasted image 20260417105833.png", "99 System/Cache/Pasted image 20260417105833.png",
"99 System/Cache/Pasted image 20260417105754.png", "99 System/Cache/Pasted image 20260417105754.png",
"99 System/Cache/Pasted image 20260413131243.png", "99 System/Cache/Pasted image 20260413131243.png",
"99 System/Cache/Pasted image 20260413131152.png", "99 System/Cache/Pasted image 20260413131152.png"
"99 System/Cache/Pasted image 20260413131129.png",
"99 System/Cache/Pasted image 20260413130714.png",
"99 System/Cache/Pasted image 20260410110555.png",
"99 System/Cache/Pasted image 20260410110002.png",
"99 System/Cache/Pasted image 20260410105854.png",
"99 System/Cache/Pasted image 20260410105817.png"
] ]
} }
@@ -0,0 +1,13 @@
---
status: seed
type: concept
tags:
- devops
created: 2025-12-17
updated: 2026-04-29
title: Control Plane - Плоскость управления
---
# Control Plane - Плоскость управления
В k8s плоскостью управления выступают master-узлы
@@ -0,0 +1,45 @@
---
status: seed
type: concept
tags:
- devops
created: 2025-12-17
updated: 2026-04-29
title: Data Plane - Плоскость данных
---
# Data Plane - Плоскость данных
К плоскости данных (Data plane) кластера Kubernetes относят рабочие узлы (Workers), на которых запускаются рабочие нагрузки.
Компоненты Kubelet и Kube-proxy устанавливаются как на узлы управления (Masters), так и на рабочие узлы (Workers), обеспечивая работоспособность рабочих нагрузок в Data-plane и отвечая за их связь с плоскостью управления (Control plane).
![[Pasted image 20260429085656.png]]
## Kubelet
**kubelet** - агент на *каждом* узле кластера.
- Работает как процесс системы, а не контейнер;
- поддержка *любой* k8s-совместимой системы оркестрации (CRI - docker, podman);
- запускает контейнеры с *рабочими* нагрузками;
- обеспечение проверок (**startup**, **readines**, **liveness probes**).
Т.е. это агент k8s непосредственно на клиенте (как zabbix-agent, например), он взаимодействует с системой worker-node (и master, тоже)
## Проверки kubelet
1) **startup probe** - применяется первой для определения факта запуска контейнера;
![[Pasted image 20260428175708.png|200]]
2) **readiness probe** - проверка готовности развернутого в контейнере приложения принимать и обрабатывать рабочую нагрузку;
![[Pasted image 20260428175716.png|200]]
3) **liveness probe** - периодическая проверка запущенного приложения.
![[Pasted image 20260428175720.png|200]]
## Kube-proxy
**kube-proxy** - компонент, отвечающий за *сетевое проксирование* и обеспечивающий *базовые* сетевые правила на узлах управления (Masters) и узлах данных (Workers).
- Управляет основными сетевыми правилами на узлах кластера Kubernetes
- Запускается в контейнере.
- Может делегировать часть своих функций сетевым плагинам (CNI).
### Интерфейсы универсального взаимодействия (плагины)
1) **CRI (Container Runtime Interface)** — интерфейс *коммуникации* между компонентом *Kubelet* и используемой kubernetes-совместимой *системой контейнеризации*.
2) **CNI (Container Network Interface)** — интерфейс для выполнения сетевых функций кластера Kubernetes-совместимыми сетевыми плагинами (Network plugins).
3) **CSI (Container Storage Interface)** — интерфейс обеспечения необходимых действий над персистентным хранением данных рабочих нагрузок кластера kubernetes-совместимыми Volume-drivers.
@@ -0,0 +1,17 @@
---
status: stable
type: concept
tags:
- k8s
created: 2025-12-17
updated: 2026-04-28
title: Алгоритм выбора лидера Lease
---
# Алгоритм выбора лидера Lease
Алгоритм выбора лидирующего узла в распределнных системах, позволяющий сохранять консистентность данных
**Суть проста**: узел, который первым запишет себя в хранилище конфигурации кластера, как лидер, тот и станет лидером
Если лидер перестал выполнять свои функции, то борьба за место лидера по **такому же принципу**.
@@ -0,0 +1,26 @@
---
status: stable
type: concept
tags: []
created: 2025-12-17
updated: 2026-04-29
title: Алгоритм консенсуса raft
---
# Алгоритм консенсуса raft
**Raft** — алгоритм консенсуса, применяющийся в распределенных системах, и обеспечивающий безопасную и согласованную репликацию данных между всеми участниками.
Состоит из двух фаз:
1) Выбор лидера (**leader election**)
2) Репликация данных (**log replication**)
Каждый участник в любой момент времени находится только в одном состоянии:
1) Лидер (**leader**) - только один;
2) Кандидаты в лидеры (**candidate**);
3) Ведомый (**follower**).
*Raft* в фазе выбора лидера опирается на понятие кворума (**quorum**) - большинства.
Из-за этого, в частности, есть рекомендация: *количество master-node должно быть нечетным*.
Визуализация алгоритма консенсуса Raft: http://thesecretlivesofdata.com/raft/
+7 -10
View File
@@ -5,7 +5,7 @@ tags:
- devops - devops
- container - container
created: 2026-02-13 created: 2026-02-13
updated: 2026-02-27 updated: 2026-04-28
title: Kubernetes title: Kubernetes
--- ---
@@ -13,12 +13,13 @@ title: Kubernetes
K8s состоит из двух основных компонент: K8s состоит из двух основных компонент:
1) **Control Plane** - плоскость управления 1) **Control Plane** - плоскость управления
2) **Data Plane** - плоскость данных 2) **Data Plane** - плоскость данных
![[Pasted image 20251220211253.png|600]] ![[Pasted image 20251220211253.png|600]]
## Компоненты Control Plane ## Компоненты Control Plane
1) etcd - open-source key-value хранилище, использующее алгоритм консенсуса raft для обеспечения надежного способа хранения данных. 1) etcd - open-source key-value хранилище, использующее алгоритм консенсуса raft для обеспечения надежного способа хранения данных.
В k8s используется для хранения конфигурации всего кластера. В k8s используется для хранения конфигурации всего кластера.
![[Pasted image 20251220211307.png|300]]
2) kube-api-server - основной компонент для взаимодействия с кластером и обязательный посредник между всем компонентами k8s в data и control plane 2) kube-api-server - основной компонент для взаимодействия с кластером и обязательный посредник между всем компонентами k8s в data и control plane
- используется REST API - используется REST API
- является точкой входа в кластер - является точкой входа в кластер
@@ -26,20 +27,14 @@ K8s состоит из двух основных компонент:
- обеспечение разграничивания прав доступа к содержимому кластера (авторизация и аутентификация) - обеспечение разграничивания прав доступа к содержимому кластера (авторизация и аутентификация)
- stateless-компонент - stateless-компонент
- установка на каждую master-ноду - установка на каждую master-ноду
- выбор лидера происходит по алгоритму **lease** - выбор лидера происходит по алгоритму **[[Алгоритм выбора лидера Lease|lease]]**
> [!abstract] lease
> Алгоритм выбора лидирующего узла в распределнных системах, позволяющий сохранять консистентность данных
> Суть проста: узел, который первым запишет себя в хранилище конфигурации кластера, как лидер, тот и станет лидером
> Если лидер перестал выполнять свои функции, то борьба за место лидера по такому же принципу
3) kube-controller-manager - компонент, ответственный за работу контроллеров. 3) kube-controller-manager - компонент, ответственный за работу контроллеров.
- связывает kube-controller и отвечает за их работу - связывает kube-controller и отвечает за их работу
- сборка мусора - сборка мусора
- stateless - stateless
- на каждой master-ноде - на каждой master-ноде
- выбор лидера аналогично по алгоритму lease - выбор лидера аналогично по алгоритму [[Алгоритм выбора лидера Lease|lease]]
![[Pasted image 20251220211330.png|400]]
Существующие kube-controllers: Существующие kube-controllers:
- node-controller - поддержка связи с узлами кластера, инициализация перенаправления рабочих нагрузок с вышедший из строя узлов. - node-controller - поддержка связи с узлами кластера, инициализация перенаправления рабочих нагрузок с вышедший из строя узлов.
@@ -48,6 +43,8 @@ K8s состоит из двух основных компонент:
- token-c. - token-c.
- account-c. - account-c.
Конспект от MA: [[Devops вводный 9 урок. Введение в Kubernetes. Компоненты control и Data plane.pdf]] Конспект от MA: [[Devops вводный 9 урок. Введение в Kubernetes. Компоненты control и Data plane.pdf]]
Другие решения: Другие решения:
Binary file not shown.

Before

Width:  |  Height:  |  Size: 69 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 174 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB