第 07 篇:数据面双雄:kubelet 管生命周期,kube-proxy 管网络转发(底座认知 07) kubelet 与 kube-proxy节点上的两大执行者底座认知 · 第 07 篇kubelet 管生命周期kube-proxy 管网络转发目 录一、kubelet节点的「主代理」1.1 核心职责1.2 与运行时协作二、kube-proxyService 的实现者2.1 两种模式2.2 Service 类型三、数据面的排障要点3.1 kubelet 相关3.2 kube-proxy 相关一、kubelet节点的「主代理」kubelet 是运行在每个节点上的核心代理负责把节点纳入集群并管理其上的 Pod 生命周期。它通过 CRI容器运行时接口 与容器运行时containerd通信。1.1 核心职责接收 apiserver 分配的 Pod驱动运行时创建与运行容器执行容器的健康检查liveness / readiness / startup定期向 apiserver 上报节点状态心跳与 Pod 状态管理节点上的 Volume 挂载、Pod 的资源配置通过 cgroup1.2 与运行时协作kubelet 通过 CRI 调用 containerdcontainerd 再通过 shim 与 runc 等底层运行时协作最终创建容器。排查容器创建失败时常需依次查看 kubelet 日志与 containerd 日志。二、kube-proxyService 的实现者kube-proxy 运行在每个节点上负责实现 Service 的流量转发与负载均衡让集群内外的请求能够访问到后端的 Pod。2.1 两种模式模式原理适用iptables通过 iptables 规则逐条实现转发默认规则量大时性能下降ipvs内核级 IPVS 负载均衡高并发规则高效在节点上修改 Service 后iptables 或 ipvs 规则会随之更新将发往 Service VIP虚拟 IP/ClusterIP 的流量转发到后端 Pod。2.2 Service 类型ClusterIP集群内部虚拟 IP默认类型NodePort在节点开放端口集群外可通过 节点IP:NodePort 访问LoadBalancer借助云负载均衡器对外暴露ExternalName将 Service 映射到外部域名三、数据面的排障要点3.1 kubelet 相关journalctl -u kubelet -f查看 kubelet 日志kubectl get node节点 Ready 与否由 kubelet 心跳决定crictl ps / crictl logs查看容器运行状态与日志3.2 kube-proxy 相关iptables -t nat -L -n查看 iptables 转发规则ipvsadm -Ln查看 ipvs 规则ipvs 模式下Pod 之间访问不通先查 Service 的 Endpoint / EndpointSlice 是否就绪理解数据面后最后一篇将把这些组件串起来看一次 kubectl apply 在集群中到底经历了什么。