Kubelet
简介
kubelet 是运行在每个 Nodo 上的主要“节点代理”。它可以使用以下之一向 apiserver 注册:hostname;一个替换 hostname 的参数;或 cloud provider 的特定逻辑。
kubelet 是基于 PodSpec 来工作的。 PodSpec 是一个描述 Pod 的 YAML 或 JSON 对象。kubelet 通过各种机制(主要通过 apiserver)获取一组 PodSpec,并确保这些 PodSpec 中描述的容器处于运行状态且健康。kubelet 不能管理不是由 Kubernetes 创建的容器。
除了来自 apiserver 的 PodSpec 之外,有两种容器 manifest 可以提供给 Kubelet。 - File:kubelet 周期性地监视此路径下的文件以进行更新。默认情况下,监视周期为 20 秒,可通过标志进行配置。 - HTTP endpoint:此端点每 20 秒监视一次(也可以使用标志配置)。
监听端口
10250: 对应参数
–port,kubelet server 的端口,默认值1025010248: 对应参数
–healthz-port,kubelet 的本地健康检查端口,默认值10248,设置0禁用10255: 对应参数
–read-only-port: kubelet 的只读端口,不需要身份验证/授权即可提供服务,默认值10255,设置0禁用
主要文件
/cmd/kubelet/kubelet.go kubelet 入口文件
/cmd/kubelet/app/server.go kubelet 服务文件
/pkg/kubelet/kubelet.go kubelet 逻辑
目录结构
/cmd/kubelet
├── app
│ ├── auth.go
│ ├── init_others.go
│ ├── init_windows.go
│ ├── init_windows_test.go
│ ├── options
│ │ ├── container_runtime.go
│ │ ├── globalflags.go
│ │ ├── globalflags_linux.go
│ │ ├── globalflags_other.go
│ │ ├── globalflags_providerless.go
│ │ ├── globalflags_providers.go
│ │ ├── options.go
│ │ ├── options_test.go
│ │ ├── osflags_others.go
│ │ └── osflags_windows.go
│ ├── plugins.go
│ ├── plugins_providerless.go
│ ├── plugins_providers.go
│ ├── server.go
│ ├── server_bootstrap_test.go
│ ├── server_linux.go
│ ├── server_others.go
│ ├── server_test.go
│ ├── server_unsupported.go
│ └── server_windows.go
└── kubelet.go/pkg/kubelet
主流程图

最后更新于
这有帮助吗?