🧠Kubelet 组件详解笔记

一、组件概述

Kubelet 是 Kubernetes 每个节点上最核心的代理服务,负责:

  • 保证 Pod 实例与期望状态一致;
  • 管理容器的生命周期;
  • 汇报节点状态至集群控制面;
  • 对接容器运行时、网络与存储插件。

Kubelet 作为“节点大管家”,支撑着 Kubernetes 节点侧的正常运作。


二、Kubelet 暴露的端口与 API

端口描述
:10250Kubelet 主 API 端口:供 apiserver 和外部工具与 kubelet 交互,支持安全认证和命令执行等操作。
:10255只读 API 端口(已逐步废弃):无认证机制,对外提供节点与 Pod 状态的只读信息。
:4194cAdvisor UI 端口(非默认开启):用于暴露容器的实时资源监控信息。
:10248/healthz健康检查接口:被控制平面或监控系统用于探测 kubelet 自身运行状况。

三、Kubelet 核心功能模块详解

1️⃣ 同步与调度机制

(1)syncLoop(同步主循环)

持续监听:

  • 来自 apiserver 的 Pod 配置;
  • 容器运行时的实际状态;
    根据变化触发操作(创建、更新、删除等),确保期望状态与实际一致。
(2)PodWorker(Pod 操作执行器)
  • 响应 syncLoop 触发;

  • 负责:

    • 容器创建与初始化;
    • 挂载存储卷;
    • 网络设置与探针处理;
    • 执行重启策略与清理任务。

2️⃣ 资源与健康监控

(1)cAdvisor(容器资源监控)
  • 嵌入式工具,采集容器 CPU、内存、磁盘 IO 等;
  • 为调度器、HPA 提供基础指标数据。
(2)OOMWatcher(内存溢出监测)
  • 监听内核 OOM 事件;
  • 标记对应 Pod 状态;
  • 辅助故障诊断与节点资源评估。
(3)ProbeManager(探针管理器)
  • 执行和管理 Liveness、Readiness、Startup 探针;
  • 定期检查容器健康状况;
  • 触发容器重启或就绪状态更新。

3️⃣ 容器与镜像管理

(1)ImageManager(镜像管理器)
  • 拉取/缓存容器镜像;
  • 与容器运行时交互;
  • 处理镜像拉取失败、认证等问题。
(2)ImageGC(镜像垃圾回收)
  • 当磁盘空间紧张时,清除未被使用的旧镜像;
  • 保证镜像空间充足。
(3)ContainerGC(容器垃圾回收)
  • 自动清除已终止的容器及其日志文件;
  • 避免磁盘空间持续被占用。

4️⃣ 节点与存储管理

(1)StatusManager(状态上报器)
  • 负责持续上报节点与 Pod 状态(如状态、阶段、使用率等)到 apiserver;
  • 保持控制面对节点运行状态的实时感知。
(2)EvictionManager(驱逐管理器)
  • 当节点资源不足(如内存、磁盘)时;
  • 根据 QoS 与优先级驱逐低优先 Pod;
  • 保证节点持续运行关键服务。
(3)DiskSpaceManager(磁盘空间管理器)
  • 监控节点磁盘使用;
  • 触发 GC 机制;
  • 避免磁盘耗尽导致节点崩溃。
(4)VolumeManager(卷管理器)
  • 管理存储卷的挂载与卸载;
  • 与 CSI 插件或内置插件对接;
  • 确保 Pod 能正确访问其所需存储资源。
(5)CertificateWatcher(证书热加载器)
  • 监控 TLS 证书文件变化;
  • 自动更新 Kubelet 与 apiserver 之间的通信凭据;
  • 避免通信中断或认证失败。

5️⃣ 硬件加速与异构资源支持

GPUManager(GPU 资源管理)
  • 管理 NVIDIA/AMD 等 GPU 的分配与回收;
  • 与调度器配合确保 GPU 类型 Pod 落地;
  • 支持拓展到 FPGA、TPU 等异构资源。

四、Kubelet 与运行时的接口(CRI 模型)

(1)CRI gRPC Server

  • Container Runtime Interface(CRI):Kubelet 与容器运行时之间的协议;
  • 标准化容器生命周期操作;
  • 实现运行时解耦(支持 Docker、containerd、CRI-O 等)。

(2)容器运行时(Container Runtime)

  • 创建、运行、停止容器;
  • 管理镜像、日志等;
  • 通过 CRI 屏蔽运行时差异。

(3)网络插件(CNI)

  • Pod 网络由 CNI 插件配置(如 Flannel、Calico);
  • 分配 IP 地址;
  • 设置 NAT、路由规则,保障网络连通性。

五、总结

Kubelet 是 Kubernetes 节点侧运行的 核心控制器,通过:

  • 同步循环驱动;
  • 模块化资源管控;
  • 与 CRI/CNI 的深度集成;
  • 多种自动化机制(如 GC、Eviction、Probe);
    构建了强大、稳定的容器运行平台。

它连接了控制面与实际执行环境,是每个 Kubernetes 节点稳定运行的中枢神经系统。


Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐