Skip to content

Commit

Permalink
Update README.md (#1)
Browse files Browse the repository at this point in the history
  • Loading branch information
buptliuwei authored and bbbmj committed Aug 26, 2019
1 parent cd2c45e commit 8c75b38
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -248,7 +248,7 @@ Scheduler 作为一个独立的组件运行在集群控制平面上,工作方
一个有用的方法,你可以把 Kubelet 当成一种特殊的 Controller,它每隔 20 秒(可以自定义)向 kube-apiserver 查询 Pod,过滤 NodeName 与自身所在节点匹配的 Pod 列表。一旦获取到了这个列表,它就会通过与自己的内部缓存进行比较来检测差异,如果有差异,就开始同步 Pod 列表。我们来看看同步过程是什么样的:

1. 如果 Pod 正在创建, Kubelet 就会[暴露一些指标](https://github.com/kubernetes/kubernetes/blob/v1.14.0/pkg/kubelet/kubelet.go#L1504),可以用于在 Prometheus 中追踪 Pod 启动延时。
1. 然后,[生成一个 PodStatus 对象](https://github.com/kubernetes/kubernetes/blob/v1.14.0/pkg/kubelet/kubelet_pods.go#L1333),表示 Pod 当前阶段的状态。Pod 的 Phase 状态是 Pod 在其生命周期中的高度概括,包括 `Pending``Running``Succeeded``Failed``Unkown` 这几个值。状态的产生过程非常复杂,因此很有必要深入深挖一下
1. 然后,[生成一个 PodStatus 对象](https://github.com/kubernetes/kubernetes/blob/v1.14.0/pkg/kubelet/kubelet_pods.go#L1333),表示 Pod 当前阶段的状态。Pod 的 Phase 状态是 Pod 在其生命周期中的高度概括,包括 `Pending``Running``Succeeded``Failed``Unkown` 这几个值。状态的产生过程非常复杂,因此很有必要深挖一下
- 首先,串行执行一系列 `PodSyncHandlers`,每个处理器检查 Pod 是否应该运行在该节点上。当其中之一的处理器认为该 Pod 不应该运行在该节点上,则 Pod 的 Phase 值就会[变成 `PodFailed`](https://github.com/kubernetes/kubernetes/blob/v1.14.0/pkg/kubelet/kubelet_pods.go#L1340-L1345) 并将从该节点被驱逐。例如,以 Job 为例,当一个 Pod 失败重试的时间超过了 `activeDeadlineSeconds` 设置的值,就会将该 Pod 从该节点驱逐出去。
- 接下来,Pod 的 Phase 值由 init 容器和主容器状态共同决定。由于主容器尚未启动,容器被视为处于[等待阶段](https://github.com/kubernetes/kubernetes/blob/v1.14.0/pkg/kubelet/kubelet_pods.go#L1284),如果 [Pod 中至少有一个容器处于等待阶段,则其 Phase 值为 `Pending`](https://github.com/kubernetes/kubernetes/blob/v1.14.0/pkg/kubelet/kubelet_pods.go#L1298-L1301)
- 最后,Pod 的 Condition 字段由 Pod 内所有容器状态决定。现在我们的容器还没有被容器运行时 (Container Runtime) 创建,所以,Kubelet [`PodReady` 的状态设置为 False](https://github.com/kubernetes/kubernetes/blob/v1.14.0/pkg/kubelet/status/generate.go#L72-L83)
Expand Down

0 comments on commit 8c75b38

Please sign in to comment.