Введение

Задумывались, кто запускает и следит за вашими контейнерами на каждом узле Kubernetes?

Это делает kubelet — тихий агент, который живёт на каждом узле и следит, чтобы всё работало.


Что такое kubelet?

kubelet — это агент, работающий на каждом узле. Он получает инструкции от управляющей плоскости и обеспечивает запуск, мониторинг и перезапуск контейнеров.

kubelet — это как местный диспетчер для каждого узла.


Что делает kubelet?

  • Следит за API-сервером и получает информацию о подах
  • Запускает контейнеры через containerd или другой рантайм
  • Проверяет состояние подов и контейнеров
  • Отправляет отчёты обратно в кластер
systemctl status kubelet

Это покажет состояние kubelet на узле.


Как запускаются поды?

Если вы применяете манифест:

apiVersion: v1
kind: Pod
metadata:
  name: my-app
spec:
  containers:
  - name: app
    image: nginx
  1. kube-apiserver сохраняет описание
  2. Планировщик выбирает узел
  3. kubelet на этом узле запускает контейнер

Проверки здоровья

kubelet запускает liveness и readiness проверки:

livenessProbe:
  httpGet:
    path: /healthz
    port: 8080

Если проверка не проходит — контейнер перезапускается.


Контейнерный рантайм

kubelet не сам запускает контейнеры, а общается с containerd или CRI-O.

crictl ps

Показывает контейнеры, запущенные через рантайм.


Почему это важно

  • Без kubelet поды не запустятся
  • Отвечает за здоровье и логику работы на узле
  • Запускает и удаляет контейнеры
  • Обеспечивает локальную автоматизацию

Сводка

КомпонентРоль
kubeletУправляет подами на узле
containerdЗапускает контейнеры
kube-apiserverДаёт команды
kube-proxyОтвечает за сеть

Заключение

kubelet — незаметный, но ключевой компонент кластера. Он запускает ваши приложения, следит за ними и работает 24/7.

Без него Kubernetes просто не работал бы.

→ Узнать больше: