Введение
Задумывались, кто запускает и следит за вашими контейнерами на каждом узле 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
- kube-apiserver сохраняет описание
- Планировщик выбирает узел
- 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 просто не работал бы.
→ Узнать больше: