vault backup: 2026-04-29 08:58:24
@@ -8,7 +8,7 @@
|
||||
"interfaceFontFamily": "Inter",
|
||||
"textFontFamily": "Inter",
|
||||
"baseFontSizeAction": true,
|
||||
"baseFontSize": 16,
|
||||
"baseFontSize": 17,
|
||||
"monospaceFontFamily": "",
|
||||
"nativeMenus": false,
|
||||
"showRibbon": false
|
||||
|
||||
@@ -13,13 +13,13 @@
|
||||
"state": {
|
||||
"type": "markdown",
|
||||
"state": {
|
||||
"file": "01 Library/11 Machine Learning/Линейные модели.md",
|
||||
"file": "01 Library/02 DevOps/Kubernetes/Kubernetes.md",
|
||||
"mode": "source",
|
||||
"source": false,
|
||||
"backlinks": false
|
||||
},
|
||||
"icon": "lucide-file",
|
||||
"title": "Линейные модели"
|
||||
"title": "Kubernetes"
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -28,17 +28,32 @@
|
||||
"state": {
|
||||
"type": "markdown",
|
||||
"state": {
|
||||
"file": "00 Inbox/Анализ типа фин. устойчивости.md",
|
||||
"file": "00 Inbox/Data Plane - Плоскость данных.md",
|
||||
"mode": "source",
|
||||
"source": false,
|
||||
"backlinks": false
|
||||
},
|
||||
"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"
|
||||
@@ -262,9 +277,20 @@
|
||||
"obsidian-git:Open Git source control": false
|
||||
}
|
||||
},
|
||||
"active": "9860cb6515fd025c",
|
||||
"active": "0097adcc4b7e955f",
|
||||
"lastOpenFiles": [
|
||||
"01 Library/02 DevOps/Kubernetes/Kubernetes.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",
|
||||
"03 Journal/03 Journal.md",
|
||||
"02 Projects/Наука/НИР/НИР.md",
|
||||
@@ -288,13 +314,8 @@
|
||||
"01 Library/11 Machine Learning/Нейронные сети.md",
|
||||
"01 Library/10 Finance/Экономическая Безопасность",
|
||||
"CLAUDE.md",
|
||||
"99 System/Claude - Инструкция и контекст.md",
|
||||
"00 Inbox/Курсовая инфа.md.tmp.165293.1776760040061",
|
||||
"02 Projects/Личные/Финансы/Подписки - календарь.md",
|
||||
"01 Library/02 DevOps/Контейнеризация/Docker/Docker - Дополнительные знания.md",
|
||||
"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/07 HomeLab/Проблемы дистрибутивов.md.tmp.41192.1776715581823",
|
||||
"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 20260417105754.png",
|
||||
"99 System/Cache/Pasted image 20260413131243.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"
|
||||
"99 System/Cache/Pasted image 20260413131152.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/
|
||||
@@ -5,20 +5,21 @@ tags:
|
||||
- devops
|
||||
- container
|
||||
created: 2026-02-13
|
||||
updated: 2026-02-27
|
||||
updated: 2026-04-28
|
||||
title: Kubernetes
|
||||
---
|
||||
|
||||
# Kubernetes
|
||||
K8s состоит из двух основных компонент:
|
||||
1) **Control Plane** - плоскость управления
|
||||
2) **Data Plane** - плоскость данных
|
||||
2) **Data Plane** - плоскость данных
|
||||
|
||||
![[Pasted image 20251220211253.png|600]]
|
||||
|
||||
## Компоненты Control Plane
|
||||
1) etcd - open-source key-value хранилище, использующее алгоритм консенсуса raft для обеспечения надежного способа хранения данных.
|
||||
В k8s используется для хранения конфигурации всего кластера.
|
||||
![[Pasted image 20251220211307.png|300]]
|
||||
|
||||
2) kube-api-server - основной компонент для взаимодействия с кластером и обязательный посредник между всем компонентами k8s в data и control plane
|
||||
- используется REST API
|
||||
- является точкой входа в кластер
|
||||
@@ -26,20 +27,14 @@ K8s состоит из двух основных компонент:
|
||||
- обеспечение разграничивания прав доступа к содержимому кластера (авторизация и аутентификация)
|
||||
- stateless-компонент
|
||||
- установка на каждую master-ноду
|
||||
- выбор лидера происходит по алгоритму **lease**
|
||||
|
||||
> [!abstract] lease
|
||||
> Алгоритм выбора лидирующего узла в распределнных системах, позволяющий сохранять консистентность данных
|
||||
> Суть проста: узел, который первым запишет себя в хранилище конфигурации кластера, как лидер, тот и станет лидером
|
||||
> Если лидер перестал выполнять свои функции, то борьба за место лидера по такому же принципу
|
||||
- выбор лидера происходит по алгоритму **[[Алгоритм выбора лидера Lease|lease]]**
|
||||
|
||||
3) kube-controller-manager - компонент, ответственный за работу контроллеров.
|
||||
- связывает kube-controller и отвечает за их работу
|
||||
- сборка мусора
|
||||
- stateless
|
||||
- на каждой master-ноде
|
||||
- выбор лидера аналогично по алгоритму lease
|
||||
![[Pasted image 20251220211330.png|400]]
|
||||
- выбор лидера аналогично по алгоритму [[Алгоритм выбора лидера Lease|lease]]
|
||||
|
||||
Существующие kube-controllers:
|
||||
- node-controller - поддержка связи с узлами кластера, инициализация перенаправления рабочих нагрузок с вышедший из строя узлов.
|
||||
@@ -48,6 +43,8 @@ K8s состоит из двух основных компонент:
|
||||
- token-c.
|
||||
- account-c.
|
||||
|
||||
|
||||
|
||||
Конспект от MA: [[Devops вводный 9 урок. Введение в Kubernetes. Компоненты control и Data plane.pdf]]
|
||||
|
||||
Другие решения:
|
||||
|
||||
|
Before Width: | Height: | Size: 69 KiB |
|
Before Width: | Height: | Size: 174 KiB |
|
After Width: | Height: | Size: 9.6 KiB |
|
After Width: | Height: | Size: 9.6 KiB |
|
After Width: | Height: | Size: 10 KiB |
|
After Width: | Height: | Size: 9.6 KiB |
|
After Width: | Height: | Size: 49 KiB |
|
After Width: | Height: | Size: 49 KiB |