胡伟煌

个人博客

Shell变量

1. shell变量 Shell支持自定义变量。 1.1. 定义变量 定义变量时,变量名不加美元符号($),如: 1variableName="value" 注意,变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样。同时,变量名的命名须遵循如下规则: 首个字符必须为字母(a-z,A-Z)。 中间不能有空格,可以使用下划线(_)。 不能使用标点符号。 不能使......

kube-scheduler源码分析(一)之 NewSchedulerCommand

以下代码分析基于 kubernetes v1.12.0 版本。 scheduler的cmd代码目录结构如下: 12345678910111213141516171819kube-scheduler├── BUILD├── OWNERS├── app # app的目录下主要为运行scheduler相关的对象│   ├── BUILD│   ├── config ......

kube-controller-manager源码分析(二)之 DeploymentController

以下代码分析基于 kubernetes v1.12.0 版本。 本文主要以deployment controller为例,分析该类controller的运行逻辑。此部分代码主要为位于pkg/controller/deployment。pkg/controller部分的代码包括了各种类型的controller的具体实现。 controller manager的pkg部分代码目录结构如下: ......

kube-controller-manager源码分析(一)之 NewControllerManagerCommand

以下代码分析基于 kubernetes v1.12.0 版本。 本文主要分析https://github.com/kubernetes/kubernetes/tree/v1.12.0/cmd/kube-controller-manager 部分的代码。 本文主要分析 kubernetes/cmd/kube-controller-manager部分,该部分主要涉及各种类型的controll......

kubelet源码分析(四)之 syncLoopIteration

以下代码分析基于 kubernetes v1.12.0 版本。 本文主要分析kubelet中syncLoopIteration部分。syncLoopIteration通过几种channel来对不同类型的事件进行监听并做增删改查的处理。 1. syncLoop syncLoop是处理变更的循环。 它监听来自三种channel(file,apiserver和http)的更改。 对于看到的任何......

Docker源码分析(二)之 Docker Server

1. Docker Server创建流程 Docker Server是Daemon Server的重要组成部分,功能:接收Docker Client发送的请求,并按照相应的路由规则实现请求的路由分发,最终将请求处理的结果返回给Docker Client。 Docker Daemon启动,在mainDaemon()运行的最后创建并运行serverapi的Job,让Docker Daemon提供......

Docker源码分析(一)之 Docker Client

1. 创建Docker Client ​Docker是一个client/server的架构,通过二进制文件docker创建Docker客户端将请求类型与参数发送给Docker Server,Docker Server具体执行命令调用。 Docker Client运行流程图如下: 说明:本文分析的代码为Docker 1.2.0版本。 1.1. Docker命令flag参数解析 Docker ......

Docker源码分析(二)之 Docker Daemon

1. Docker Daemon架构示意图 Docker Daemon是Docker架构中运行在后台的守护进程,大致可以分为Docker Server、Engine和Job三部分。 Docker Daemon可以认为是通过Docker Server模块接受Docker Client的请求,并在Engine中处理请求,然后根据请求类型,创建出指定的Job并运行。 运行过程的作用有以下几种可能......

kubelet源码分析(三)之 RunKubelet

以下代码分析基于 kubernetes v1.12.0 版本。 本文主要分析startKubelet,其中主要是kubelet.Run部分,该部分的内容主要是初始化并运行一些manager。对于kubelet所包含的各种manager的执行逻辑和pod的生命周期管理逻辑待后续文章分析。 后续的文章主要会分类分析pkg/kubelet部分的代码实现。 kubelet的pkg代码目录结构: ......

kubelet源码分析(二)之 NewMainKubelet

以下代码分析基于 kubernetes v1.12.0 版本。 本文主要分析 https://github.com/kubernetes/kubernetes/tree/v1.12.0/pkg/kubelet 部分的代码。 本文主要分析kubelet中的NewMainKubelet部分。 1. NewMainKubelet NewMainKubelet主要用来初始化和构造一个kubele......