kubelet
kubelet
张忠琳
我就是我 不用在怀疑
展开
-
【kubernetes/k8s源码分析】 kubelet pod cgroup 源码分析
创建 pod 时,为其设置资源限额 cgroupsyncPod -->kl.containerManager.NewPodContainerManager -->pcm.Exists(pod) --> kl.containerManager.UpdateQOSCgroups()1.NewPodConta...原创 2019-06-20 15:00:39 · 3138 阅读 · 0 评论 -
【kubernetes/k8s源码分析】kubelet源码分析-启动运行与信息处理
Kubelet 每个节点上都运行一个kubelet服务进程,默认监听10250端口,接收并执行master发来的指令,管理Pod及Pod中的容器。每个kubelet进程会在API Server上注册节点自身信息,定期向master节点汇报节点的资源使用情况,并通过cAdvisor监控节点和容器的资源。节点管理节点管理主要是节点自注册和节点状态更新:Kubelet可以...原创 2017-07-12 10:20:14 · 8141 阅读 · 1 评论 -
【kubernetes/k8s源码分析】kubelet源码分析-statusManager与probeManager
简介 在 kubelet 初始化的时候,会NewMainKubelet函数中创建 statusManager 和 probeManager。 statusManager 负责维护状态信息,并把 pod 状态更新到 apiserver,但是不负责监控 pod 状态的变化,而是提供接口供其他组件调用,比如 probeManager。 probeManager 定时去监控 pod ...原创 2017-07-14 11:31:38 · 6107 阅读 · 0 评论 -
【kubernetes/k8s源码分析】kubelet源码分析之cdvisor源码分析
数据流UnsecuredDependencies -> run1. cadvisor.New初始化 if kubeDeps.CAdvisorInterface == nil { imageFsInfoProvider := cadvisor.NewImageFsInfoProvider(s.ContainerRuntime, s.RemoteRuntimeEn...原创 2018-10-19 09:43:56 · 3243 阅读 · 0 评论 -
【kubernetes/k8s源码分析】kubelet源码分析之资源上报
0. 数据流 路径:pkg/kubelet/kubelet.go Run函数() -> syncNodeStatus () -> registerWithAPIServer() -> initialNode() -> setNodeStatus -> 调用的setNodeStatusFuncs函数列表 ...原创 2018-10-15 16:51:59 · 3626 阅读 · 0 评论 -
【kubernetes/k8s源码分析】kubelet源码分析之容器网络初始化源码分析
一. 网络基础 1.1 网络命名空间的操作创建网络命名空间: ip netns add 命名空间内执行命令: ip netns exec 进入命名空间: ip netns exec bash 1.2bridge-nf-call-iptables 数据包进入网卡,协议栈代码就能“看到”整个数据包,剩下的问题就是如何来解析和过滤的问题了 由于网桥工作于数据链路层,在ip...原创 2018-10-16 20:02:29 · 3694 阅读 · 0 评论 -
【kubernetes/k8s源码分析】kubelet cri源码分析
CRI基本原理 早期的 kubernetes 使用 docker 作为默认的 runtime,后来又加入 rkt,每加入一种新运行时,k8s 都要修改接口。container runtime 加入,不同的容器的实现和功能差异很大。标准就是CRI(Container RunTime Interface)。k8s 不再关心底层的容器运行时,kubelet只感知到 CRI server...原创 2019-08-07 16:19:26 · 3887 阅读 · 1 评论 -
【kubernetes/k8s源码分析】kubelet源码分析之启动容器
主要是调用runtime,这里默认为docker0. 数据流NewMainKubelet(cmd/kubelet/app/server.go) ->NewKubeGenericRuntimeManager(pkg/kubelet/kuberuntime/kuberuntime_manager.go) ->syncPod(pkg/kubelet/kubelet.go) ...原创 2018-10-12 16:21:40 · 4145 阅读 · 0 评论 -
【kubernetes/k8s概念】kubelet启动参数
kubernetes version: v1.12.1Desc The kubelet is the primary "node agent" that runs on each node. The kubelet works in terms of a PodSpec. A PodSpec is a YAML or JSON object that describes a p...原创 2018-12-27 14:11:45 · 9026 阅读 · 0 评论 -
【kubernetes/k8s源码分析】 kubelet container gc 垃圾回收源码分析
WHY 容器停止文件系统并不会自动清除,通过docker ps -a也能够看到这些资源。kubelet有container gc的方案用于清理宿主机上的非所需容器 容器镜像耗存储资源,会导致宿主机上会留下不再需要的容器镜像,kubelet设计了一套image gc的方案WHAT Kubernetes 垃圾回收(Garbage Coll...原创 2019-06-18 11:22:34 · 3021 阅读 · 0 评论 -
【kubernetes/k8s源码分析】 kubelet image gc 垃圾回收源码分析
WHY 容器停止文件系统并不会自动清除,通过docker ps -a也能够看到这些资源。kubelet有container gc的方案用于清理宿主机上的非所需容器容器镜像耗存储资源,会导致宿主机上会留下不再需要的容器镜像,kubelet设计了一套image gc的方案WHAT Kubernetes 通过 imageControlle...原创 2019-06-18 17:48:51 · 5250 阅读 · 0 评论 -
【kubernetes/k8s源码分析】 kubelet cgroup 资源预留源码分析
kubernetes 1.13WHY 默认情况下 pod 能够使用节点全部可用资源。用户 pod 中的应用疯狂占用内存,pod 将与 node 上的系统守护进程和 kubernetes 组件争夺资源并导致节点资源短缺,从而产生 node not ready 等严重问题。 WHAT Node Capacity--------------------...原创 2019-06-19 19:22:13 · 5926 阅读 · 1 评论 -
【kubernetes/k8s源码分析】 kubelet qos cgroup 源码分析
在kubernetes中,每个POD都有个QoS标记,通过这个Qos标记来对POD进行服务质量管理。qos 级别Guaranteed:pod 里每个容器都必须设定 request 和 limit,并且值必须相同 Burstable: pod 里至少有一个容器的 cpu 或者 memory request 的值设定了 BestEffort:POD 的所有容器都没有指...原创 2019-06-20 11:19:52 · 3698 阅读 · 1 评论 -
【kubernetes/k8s源码分析】kubelet crio 启动源码分析
github:https://github.com/cri-o/cri-oCompatibility matrix: CRI-O ⬄ KubernetesVersion - Branch Kubernetes branch/version Maintenance status CRI-O 1.12.x - release-1.12 Kubernetes 1.1...原创 2019-08-12 19:39:17 · 3641 阅读 · 0 评论 -
【kubernetes/k8s源码分析】kubelet源码分析之volume manager源码分析
kubernetes version: v1.12.1 kubelet调用VolumeManager,为pods准备存储设备,存储设备就绪会挂载存储设备到pod所在的节点上,并在容器启动的时候挂载在容器指定的目录中;同时,删除卸载不在使用的存储; kubernetes采用Volume Plugins来实现存储卷的挂载等操作 这图谁画的咋这么好呢,...原创 2018-09-21 14:09:06 · 6310 阅读 · 2 评论