Kubernetes源码分析 -- Kubelet系统功能以及基础概念

Pod Source

是kubelet用于获取Pod定义和描述信息的一个“数据源”,kubelet进程查询并监听Pod Source来获取属于自己所在节点的Pod列表,当前支持三种Pod Source类型。
Config File:本地配置文件作为Pod 数据源。
Http URL:Pod数据源的内容通过一个HTTP URL方式获取。
Kubernets API Server:默认方式,从API Server获取Pod数据源。

OOM调节

进程根据启动参数创建了KubeletServer以后,调用KuberletServer的run方法,进入启动流程的一开始设置了自身进程的oom_adj参数(默认为-900),这是利用Linux的OOM机制,当系统发生OOM时,oom_adj的值越小,越不容易被系统Kill掉。
oomAdjuster := kubeDeps.OOMAdjuster
if err := oomAdjuster.ApplyOOMScoreAdj(0, int(s.OOMScoreAdj)); err != nil {
glog.Warning(err)
}
在所有的Master任务(API Server、Scheduler、Controller Manager)都不会有这个调用?因为Master节点不运行Pod和容器,主机资源通常是稳定和宽裕的,而Minion节点需要运行大量的Pod和容器,因此容易产生OOM问题,所以这里要确保“守护者”不会因此而被系统Kill掉。

CloudProvider

如果Kubernetes运行在某个运营商的Cloud环境中,则很多环境和资源都需要从CloudProvider中获取,比如在创建Pod的过程中可能需要知道某个Node真是主机名。

PLEG

Pods Lifecycle Events Generator

PodSandbox

你可能感兴趣的:(Kubernetes源码分析 -- Kubelet系统功能以及基础概念)