一、概要
kubelet 是运行在每个节点上的主要的“节点代理”,每个节点都会启动 kubelet进程,用来处理 Master 节点下发到本节点的任务,按照 PodSpec 描述来管理Pod 和其中的容器(PodSpec 是用来描述一个 pod 的 YAML 或者 JSON 对象)。
Kubelet 以 PodSpec 的方式工作。PodSpec 是描述一个 Pod 的 YAML 或 JSON 对象。 kubelet 采用一组通过各种机制提供的 PodSpecs(主要通过 apiserver),并确保这些 PodSpecs 中描述的 Pod 正常健康运行。
官方提供了3种方式来获取容器信息:
- apiserver:通过 API Server 监听 etcd 目录获取数据;
- File:启动参数 --config 指定的配置目录下的文件;
- 通过 url 从网络上某个地址来获取信息
二、kubelet 的主要功能
1、kubelet监听端口
[root@bms-115 lzw]# netstat -ntlp |grep kubelet tcp 0 0 127.0.0.1:10248 0.0.0.0:* LISTEN 27893/kubelet tcp 0 0 192.169.1.203:10250 0.0.0.0:* LISTEN 27893/kubelet
2、kubelet 主要功能:
-
pod 管理:kubelet 定期从所监听的数据源获取节点上 pod/container 的期望状态(运行什么容器、运行的副本数量、网络或者存储如何配置等等),并调用对应的容器平台接口达到这个状态。
-
容器健康检查:kubelet 创建了容器之后还要查看容器是否正常运行,如果容器运行出错,就要根据 pod 设置的重启策略进行处理。
-
容器监控:kubelet 会监控所在节点的资源使用情况,并定时向 master 报告,资源使用数据都是通过 cAdvisor 获取的。知道整个集群所有节点的资源情况,对于 pod 的调度和正常运行至关重要。kubelet 工作原理
三、kubelet工作原理
这里借用网上的一张图来说明情况:
标签:分析,容器,PodSpec,kubelet,0.0,Kubelet,源码,pod,节点 From: https://www.cnblogs.com/lizhewei/p/16870284.html