diff --git a/.obsidian/workspace.json b/.obsidian/workspace.json index efbd9aa..c567a03 100644 --- a/.obsidian/workspace.json +++ b/.obsidian/workspace.json @@ -279,6 +279,8 @@ }, "active": "0097adcc4b7e955f", "lastOpenFiles": [ + "99 System/Cache/Pasted image 20260429090816.png", + "99 System/Cache/Pasted image 20260429090719.png", "99 System/Cache/Pasted image 20260429090040.png", "01 Library/02 DevOps/Kubernetes/Kubernetes.md", "01 Library/11 Machine Learning/Линейные модели.md", @@ -322,8 +324,6 @@ "01 Library/04 Networking/NAT.md.tmp.41192.1776715564998", "01 Library/04 Networking/VPN.md.tmp.41192.1776715560642", "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 20260417105754.png" ] } \ No newline at end of file diff --git a/00 Inbox/Control Plane - Плоскость управления.md b/00 Inbox/Control Plane - Плоскость управления.md index 7d1d4e2..0175609 100644 --- a/00 Inbox/Control Plane - Плоскость управления.md +++ b/00 Inbox/Control Plane - Плоскость управления.md @@ -54,6 +54,57 @@ title: Control Plane - Плоскость управления ### Распространенные kube-controllers - **Node-controller** (поддерживает связь с узлами кластера Kubernetes, инициирует перенаправление рабочих нагрузок с вышедших из строя узлов. - **Replicaset-controller** (инициирует процедуру создания и функционирования сущности Replicaset). -- Endpoint-controller (выполняет создание endpoint - связи между Pod и его Service). -- Token-controller (обеспечивает создание и работу токенов для доступа к API кластера Kubernetes). -- Account-controller (обеспечивает функциональность учетных записей в Kubernetes). \ No newline at end of file +- **Endpoint-controller** (выполняет создание endpoint - связи между Pod и его Service). +- **Token-controller** (обеспечивает создание и работу токенов для доступа к API кластера Kubernetes). +- **Account-controller** (обеспечивает функциональность учетных записей в Kubernetes). + +### Garbage collecting + +Обязанности за сборку мусора (Garbage collecting) в кластере Kubernetes также возложены на компонент *Kube-controller-manager*. + +Примером сборки мусора может выступать отслеживание и удаление старых версий наборов репликаций развертываний (Replicaset). + +Если в кластере превышен лимит старых ревизий Replicaset — наиболее старая ревизия становится *мусором* и ее нужно удалить. + +## Cloud-controller-manadger + +**Cloud-controller-manager** — компонент, ответственный за работу множества Cloud-controllers. + +> Не реализован в Kubernetes по умолчанию. Самостоятельная реализация привлекательна для вендоров, желающих предоставлять Kubernetes как облачную услугу. + +- Является связующим звеном при взаимодействии Cloud-controllers и отвечает за их работу. +- Cloud-controller-manager, как и сами Cloud-controllers не реализованы по умолчанию. + +## Kube-scheduler + +**Kube-scheduler** — компонент, ответственный за выбор подходящих узлов Data plane для запуска рабочих нагрузок. + +При принятии решения руководствуется следующими факторами: *Requests/Limits*, *QoS*, *Affinity/Anti-affinity rules*, *Priority class/Preemption policy* + +- Отвечает за распределение рабочих нагрузок на узлы Data plane с учетом *определенных факторов*. +- *Stateless*-компонент. +- Инсталлируется на каждую Master node. +- Выбор лидера происходит по алгоритму [[Алгоритм выбора лидера Lease|lease]]. + +Kube-scheduler принимает к сведению имеющиеся у развертываний указания по минимальным и максимальным требованиям к вычислительным ресурсам (*Requests* и *Limits*). + +**Requests:** Минимальный объем вычислительной мощности (Cpu, Ram), необходимый для функционирования рабочей нагрузки. + +**Limits:** Максимальный объем вычислительных ресурсов, выделяемый рабочей нагрузке. + +![[Pasted image 20260429090719.png|200]] + +Kube-scheduler руководствуется присвоенным рабочей нагрузке значением QoS (Quality of Service). + +**В зависимости от указанных в развертывании Requests и Limits,** **уровень обслуживания (QoS) может принимать следующие** **значения:** + +- *BestEffort* (Requests и Limits не указаны вовсе). +- *Burstable* (хотя бы для одного контейнера в Pod указаны requests по Cpu или Ram). +- *Guaranteed* (все контейнеры в Pod имеют одинаковые Requests и Limits). + +**Affinity/Anti-affinity rules:** + +Kube-scheduler также руководствуется применяемыми к рабочей нагрузке Affinity/Anti-affinity rules. + +Правила Affinity и Anti-affinity описываются в спецификации развертывания и позволяют влиять на решение Kube-scheduler о направлении рабочих нагрузок на узлы кластера за счет расширения типов возможных ограничений. +![[Pasted image 20260429090816.png|400]] \ No newline at end of file diff --git a/99 System/Cache/Pasted image 20260429090719.png b/99 System/Cache/Pasted image 20260429090719.png new file mode 100644 index 0000000..57a62ec Binary files /dev/null and b/99 System/Cache/Pasted image 20260429090719.png differ diff --git a/99 System/Cache/Pasted image 20260429090816.png b/99 System/Cache/Pasted image 20260429090816.png new file mode 100644 index 0000000..4adec74 Binary files /dev/null and b/99 System/Cache/Pasted image 20260429090816.png differ