- 博客(7)
- 资源 (4)
- 收藏
- 关注
原创 Kubelet的grabage collection
介绍Kublet中会定期的执行垃圾回收流程,清理节点上不使用的images和containers.下面讲会对如何配置垃圾回收策略以及代码实现层面上分析该业务流程.Image 回收策略中存在两个阈值,HighThresholdPercent和LowThresholdPercent,当磁盘使用率超过HighThresholdPercent将会触发回收流程,回收流程将会删除最老没有被使用...
2018-03-28 14:45:45 3910
原创 kubelet与runtime的整合
Kubernetes 1.10版本Kubelet调用docker创建容器的调用链如图所示 解析该流程能够深入的了解kubernetes是怎么与docker进行交互的.CRI首先介绍CRI, CRI全称为container runtime interface接口,是kubernetes在1.5版本之后引入的概念,为了使得kubernetes更好的扩展以及整合容器运行时(docker...
2018-03-27 15:39:55 3129
原创 golang中的cross compiling
交叉编译就是编译出在其它操作系统下运行的程序,比如在Linux下编译后在Windows系统中运行,或者说在32位下编译在64位下运行。 golang 1.5之后很容易的实现交叉编译,通过设置$GOOS, $GOARCH两个环境变量就能够编译出来其他平台运行所需要的bin文件.通过下面的例子来说明package mainimport "fmt"import "runtime"fu...
2018-03-27 13:24:23 925
原创 mount namespace和shared subtrees
mount namespace是一个强大并且复杂的机制,用来为每个用户和每个容器创建文件系统树.它是一个很复杂的特性.在我们关于namespaces的一系列文章中,我们将会解开它的复杂性,我们将会深入的研究shared subtrees特性,这个特性以自动,受控的方式允许mount/unmount事件在mount namespaces之间传播事件.介绍mount namespace在2...
2018-03-21 18:50:07 2612
原创 golang-Timers and Tickers
Go内置的timer和ticker实现 1. 在未来某个时刻执行某段代码 2. 指定间隔周期性的执行某个任务example/test1.gopackage mainimport ( "fmt" "time")func durationExec() { timer := time.NewTicker(time.Second * 2) <...
2018-03-11 01:21:36 382
原创 Kubernetes集群升级
云环境下新增节点,安装高版本的kubelet,kube-proxy,加入到现有集群中,等节点ready了再执行操作,通过kubectl 当前集群的节点设置成不可调度,drain命令隔离掉需要升级的节点,让pod在新节点上重建,需要考虑的问题如下: 有状态应用(Pod使用了本地存储)Daemonset Pod NodeSelector到特定节点的PodPod设置了强制Node亲和性的P...
2018-03-09 13:52:32 676
原创 大规模下kubernetes集群的scheduler性能
测试流程搭建测试环境,可以使用社区推荐的kubemark确定当前kubernetes社区确定的scheduler调度性能,每秒能处理多少个pod的调度实际测试当前环境的scheduler性能,是否与社区确定的scheduler性能有差异,如果存在差异过大,那么确定是scheduler本身以外导致的性能差异采用优化方案,通过比对优化前后的性能指标确定是否达到优化效果以及得到影响sched...
2018-03-09 10:05:41 2157
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人