TGViewer
CORTEL CORTEL @cortel_cloud · 4.07K subscribers
Post #2723 1.13K
💻 kube-apiserver: мозг и шлюз Kubernetes-кластера

В Kubernetes всё крутится вокруг API.
Центральный компонент control plane, с которым общаются все остальные — kubectl, kubelet, scheduler, контроллеры и внешние системы — это kube-apiserver.

👀 Что он делает?

— Единая точка входа
Все операции (создание, чтение, обновление, удаление ресурсов) проходят через API-сервер. Другие компоненты не общаются друг с другом напрямую.

— Аутентификация и авторизация
Проверяет, кто делает запрос (сертификат, токен, OIDC) и имеет ли он права.

— Валидация и мутация
При создании или изменении ресурса API-сервер проверяет корректность манифеста и может изменять его через admission webhooks.

— Хранение состояния
Единственный компонент, который общается с etcd — распределённым хранилищем кластера. API-сервер кэширует данные и обеспечивает согласованность.

— Механизм watch
Клиенты могут подписаться на изменения ресурсов через long polling. Это позволяет мгновенно реагировать на события без постоянных опросов.

⚙️ Как это работает?

➡️ Пользователь выполняет kubectl create deployment nginx --image=nginx
➡️ kubectl преобразует команду в HTTP-запрос (JSON) и отправляет его на kube-apiserver.
➡️ API-сервер аутентифицирует пользователя (например, по сертификату из kubeconfig).
➡️ Проверяет права через RBAC: есть ли разрешение на создание deployment в указанном namespace.
➡️ Запускается цепочка admission controllers: валидация (нет ли синтаксических ошибок), мутация (применяются политики по умолчанию).
➡️ API-сервер сериализует объект в Protobuf/JSON и записывает в etcd.
➡️ Возвращает клиенту успешный ответ.
➡️ Событие о создании deployment’а через watch-механизм получает kube-controller-manager, который создаёт ReplicaSet, а тот — поды. Scheduler назначает поды на ноды, а kubelet их запускает.

Пример


kubectl get pods -v=8


В выводе будут видны HTTP-запросы к /api/v1/namespaces/default/pods. API-сервер аутентифицирует запрос, проверяет RBAC, затем загружает данные из etcd (или из своего cache), сериализует в JSON и возвращает.

kube-apiserver — это не просто «REST API».
Это центральная нервная система Kubernetes, которая совмещает роль шлюза, диспетчера, хранителя состояния и механизма оповещений.

Понимание его работы помогает диагностировать 80% проблем с кластером: от отказа в доступе до зависших ресурсов.

#заметкиИнженера
  • ❤ 4
  • 👍 3
  • 🔥 2
More from @cortel_cloud
  1. Oct 1, 2026🖥 sed — потоковый редактор текста в Linux 🤓 Появился в Bell Labs в 1970-х и до сих пор и…
  2. Sep 29, 2026🖥 РАЗНИЦА Block, File и Object Storage 🧑‍🎓Повторение — мать учения. Для разных задач по…
  3. Sep 25, 2026😎 Когнитивная РАЗгрузка За неделю с горящими дедлайнами, часовыми ВКС и постоянным перекл…
  4. Sep 23, 2026💻 kubectl diff: обработка изменений в CI/CD kubectl diff сравнивает текущую конфигурацию…
  5. Sep 18, 2026🛡 ДА! У НАС ЦЕЛАЯ ЧЕРЕДА ПОЛЕЗНЫХ ЭФИРОВ ПРО ИБ! 🎙 Уже 24 сентября Вероника Нечаева, выс…
  6. Sep 16, 2026👩‍💻 Работа с ПДн это непрерывный процесс. Компания меняется — появляются новые сервисы,…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →