自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 收藏
  • 关注

原创 docker-monitor-injector源码分析

docker-monitor-injector是携程开源的一个修正docker容器内监控数据的工具,通过劫持open,fopen等linux库函数,重算/proc/meminfo,/proc/stat等度量指标,使得容器内free,top等系统工具能正确统计容器性能指标。

2016-12-30 11:40:50 14108

原创 劫持系统函数Demo

以下内容是劫持glib.c中标准printf函数的方法。是这篇 Docker容器内的监控命令数据修正思路的基础知识。对LD_PRELOAD熟悉可以不看。

2016-12-30 11:32:02 14658

原创 Docker容器内的监控命令数据修正思路

思路概述:编写linux c代码,生成对应的动态链接库(so文件),通过LDPRELOAD实现对/proc文件系统访问的劫持。劫持之后,实现容器内正确的数据计算逻辑,并生成对应的/proc文件放到容器内/tmp/proc目录,劫持后对应的命令的数据来源就从/tmp/proc/*中获取。主要是劫持proc文件系统的访问,其他的细节可以各种各样。

2016-12-30 11:21:11 15632

原创 docker volume源码分析

这是在docker v1.10.3版本的使用过程中,使用convoy 作为volume driver,在一次docker volume remove失败时,使我不得不对docker volume 的源码做一次分析。

2016-12-29 17:41:00 15097

原创 docker stats命令源码分析结果

本文是基于docker 1.10.3版本的源码,对docker stats命令进行源码分析,看看docker stats命令输出的数据是从cgroups fs中怎么怎么计算出来的。

2016-12-29 16:46:45 20566

原创 docker v1.11 源码重构分析

基于docker v1.12的源代码,对docker engine v1.11中重构后的源码结构进行分析,涵盖dockerd, containerd, containerd-shim, runC。

2016-12-28 22:49:07 14817

原创 containerd源码分析

本文是对containerd v0.2.4的源码分析。

2016-12-28 20:35:24 16818

原创 Linux kernel Namespace源码分析

学习一下linux kernel namespace的代码还是很有必要的,让你对docker容器的namespace隔离有更深的认识。

2016-12-27 23:02:28 17983

原创 Linux Kernel Cgroups源码浅析

本文是我几个月前在研究linux kernel Cgroups时整理的。文中大部分的理论知识是从网上各种贴子solo的,源码分析部分,我是基于kernel 4.4.19的代码进行解读分析的,各个内核版本之间应该几乎没啥差别。介绍Cgroups是control groups的缩写,是Linux内核提供的一种可以限制、记录、隔离进程组(process groups)所使用的物理资源(如:cpu,memo

2016-12-27 21:14:34 18168

原创 Kubernetes GC in V1.3 源码分析

本文是对Kubernetes V1.3发布的新Garbage Collector模块的源码解读。实际上本文的是基于kubernetes v1.4的代码进行分析的,和V1.3没有大的改动。GC worker的默认值从V1.3中的5调整为V1.4中的20。

2016-12-27 14:37:33 22786

原创 runC源码分析——主体调用链

本文将简单的对runC的源码调用主体逻辑进行梳理,为跟系统的阅读runC源码。runC总体调用逻辑下图中,runC源码逻辑跳转流程总体上分为三步: main入口 ——> runC处理 ——> libcontainer处理。runC其实就是在libcontainer的基础上进行了封装成各个Command。

2016-12-27 09:15:40 15491

原创 runC源码分析——cgroup

runC中cgroup相关部分代码的解读。由于代码本身和原理都相对简单,安静的读一遍代码即可。

2016-12-27 08:59:18 15498

原创 Registry GC源码分析

对Registry GC进行源码分析,并对生产环境中的实际操作策略提供建议。

2016-12-26 15:11:00 15504

原创 Harbor介绍及我们的改造

本文讲述了我们基于Harbor V0.4.1进行的分析和改造,尤其是基于local disk和共享mysql场景下的HA 方案和bug fix。

2016-12-26 14:55:34 26945 1

原创 runC源码分析——namespace

runC源码中对namespace的处理代码分析。

2016-12-26 11:49:04 14414

原创 runC源码分析——Create/Run Container

本文是对runC源码的核心部分——Create Command & Run Command 进行源码分析。

2016-12-25 12:36:54 19922

原创 Kubernetes GC 工作原理解析 in v1.3

本文是对kubernetes GC proposal的解读分析,是对GC in kubernetes v1.3的内部结构剖析,并记录了其中一些关键点,以便日后能更好的温故而知新。

2016-12-25 12:02:23 22906

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除