【原创】k8s源代码分析-----kubelet(3)ContainerGC
本人空间链接:http://user.qzone.qq.com/29185807/blog/1460080827
源代码为k8s v1.1.1稳定版本号
2.2 ContainerGC
1、參数
代码在k8s.io\kubernetes\cmd\kubelet\app中
结构体变量
type KubeletServer struct {
...
MinimumGCAge time.Duration
MaxContainerCount int
MaxPerPodContainerCount int
...
}
默认參数
func NewKubeletServer() *KubeletServer {
return &KubeletServer{
...
MinimumGCAge: 1 * time.Minute,
MaxContainerCount: 100,
MaxPerPodContainerCount: 2,
...
}
}
flag參数
func (s *KubeletServer) AddFlags(fs *pflag.FlagSet) {
...
fs.DurationVar(&s.MinimumGCAge, "minimum-container-ttl-duration", s.MinimumGCAge, "Minimum age for a finished container before it is garbage collected. Examples: '300ms', '10s' or '2h45m'")
fs.IntVar(&s.MaxContainerCount, "maximum-dead-containers", s.MaxContainerCount, "Maximum number of old instances of containers to retain globally. Each container takes up some disk space. Default: 100.")
fs.IntVar(&s.MaxPerPodContainerCount, "maximum-dead-containers-per-container", s.MaxPerPodContainerCount, "Maximum number of old instances to retain per container. Each container takes up some disk space. Default: 2.")
...
}
MinimumGCAge : minimum-container-ttl-duration 已经停止的容器实例在系统中上的ttl存活时间。
MaxContainerCount:maximum-dead-containers 系统中可以保存的最大已经停止容器实例数量。
MaxPerPodContainerCount:maximum-dead-containers-per-container 每一个容器最多在系统中保存的最大已经停止的实例数量。
2、传递參数
在1中我们看到參数已经构建。那么是怎么传递的
代码依然在k8s.io\kubernetes\cmd\kubelet\app 中
在func (s *KubeletServer) KubeletConfig() (*KubeletConfig, error) {
...
return &KubeletConfig{
...
MaxContainerCount: s.MaxContainerCount,
MaxPerPodContainerCount: s.MaxPerPodContainerCount,
MinimumGCAge: s.MinimumGCAge,
...
}
}
构建了一个KubeletConfig
继续传递
构建了一个kubelet.ContainerGCPolicy
然后传递到了NewMainKubelet中
在函数的末尾调用了k.StartGarbageCollection()
3、工作流程
3.1构建
代码在k8s.io\kubernetes\pkg\kubelet\kubelet.go中
func NewMainKubelet(
然后
整个过程构建完毕了
然后从2中我们知道最后调用了例如以下代码。定期运行GarbageCollect
3.2 详细流程
代码在k8s.io\kubernetes\pkg\kubelet\container_gc.go中
我们看看结构体
我们看看evictableContainers函数,用于获取容器信息
以下是GarbageCollect。首先获取容器信息,然后依据之前传入的參数值,进行容器回收
龚浩华
qq 月牙寂 29185807
2016年4月8日
(版权声明:本文为作者原创。如需转载请通知本人。并标明出处和作者。擅自转载的,保留追究其侵权的权利。)
转载于:https://www.cnblogs.com/jzdwajue/p/7297729.html
【原创】k8s源代码分析-----kubelet(3)ContainerGC相关推荐
- 【原创】k8s源代码分析-----kubelet(8)pod管理
本文QQ空间链接:http://user.qzone.qq.com/29185807/blog/1460540474 本文csdn博客链接:http://blog.csdn.net/screscent ...
- spark(1.1) mllib 源代码分析
在spark mllib 1.1加入版本stat包,其中包括一些统计数据有关的功能.本文分析中卡方检验和实施的主要原则: 一个.根本 在stat包实现Pierxunka方检验,它包括以下类别 (1)适 ...
- Spark SQL 源代码分析系列
从决定写Spark SQL文章的源代码分析,到现在一个月的时间,一个又一个几乎相同的结束很快,在这里也做了一个综合指数,方便阅读,下面是读取顺序 :) 第一章 Spark SQL源代码分析之核心流程 ...
- Spark SQL Catalyst源代码分析之TreeNode Library
/** Spark SQL源代码分析系列文章*/ 前几篇文章介绍了Spark SQL的Catalyst的核心执行流程.SqlParser,和Analyzer,本来打算直接写Optimizer的,可是发 ...
- Spark SQL Catalyst源代码分析Optimizer
/** Spark SQL源代码分析系列*/ 前几篇文章介绍了Spark SQL的Catalyst的核心运行流程.SqlParser,和Analyzer 以及核心类库TreeNode,本文将具体解说S ...
- 新秀nginx源代码分析数据结构篇(四)红黑树ngx_rbtree_t
新秀nginx源代码分析数据结构篇(四)红黑树ngx_rbtree_t Author:Echo Chen(陈斌) Email:chenb19870707@gmail.com Blog:Blog.csd ...
- Spark SQL之External DataSource外部数据源(二)源代码分析
上周Spark1.2刚公布,周末在家没事,把这个特性给了解一下,顺便分析下源代码,看一看这个特性是怎样设计及实现的. /** Spark SQL源代码分析系列文章*/ (Ps: External Da ...
- UiAutomator喷射事件的源代码分析
上一篇文章<UiAutomator源代码分析之UiAutomatorBridge框架>中我们把UiAutomatorBridge以及它相关的类进行的描写叙述,往下我们会尝试依据两个实例将这 ...
- Android应用程序内部启动Activity过程(startActivity)的源代码分析
上文介绍了Android应用程序的启动过程,即应用程序默认Activity的启动过程,一般来说,这种默认Activity是在新的进程和任务中启动的:本文将继续分析在应用程序内部启动非默认Activit ...
- Akka FSM 源代码分析
Akka FSM 源代码分析 萧猛 <simonxiao@qq.com> 啰嗦几句 有限状态机本身不是啥新奇东西,在GoF的设计模式一书中就有状态模式, 也给出了实现的建议.各种语言对状态 ...
最新文章
- 高级软件工程第二次作业
- select,InnoDB为啥会阻塞insert?
- echart 圆饼图 显示单位_玩转ECharts之实现“1/2圆的玫瑰图”
- Python 图像处理篇-利用opencv库展示本地图片实例演示
- Educational Codeforces Round 81 (Rated for Div. 2) F.Good Contest \ 洛谷 划艇 组合 计数dp
- java base64转文件_JAVA将Base64转为文件并保存详解
- centos6.5搭建lnmp过程
- 【链表】判断一个链表是否是回文链表
- Decide what you want,and go after it with everything you got!
- 使用 Chrome Timeline 来优化页面性能 1
- 名人带货成潮流,直播电商是否走上了岔路?
- 大学英语计算机四级考试内容,大学英语四级考试大纲
- amcharts的使用
- 自动铅笔的简笔画怎么画,自动化简笔画图片大全
- 对产品经理来说,PMP和NPDP两个证书,哪一个权威性比较大?
- 为什么需要序列化总结
- HDU 2544 最短路 最短路入门
- android 获取sd卡目录失败_Android获取外置SD卡存储路径的方法
- gstreamer基础教程13-Playback speed
- 互联网时代,用小众语言对抗焦虑和内卷!