pkg/kubelet/kuberuntime/kuberuntime_manager.go
computePodAction:
基于pod spec和status计算 podActions
podActions中包含了ContainersToStart,代表需要重启的container
SyncPod:
根据podActions.ContainersToStart,启动容器
内部的一个匿名function: start ,会执行doBackOff,如果isInBackOff,则会返回error,由SyncPod上层的podWorkers去做重试
DoBackOff的时间间隔:
第一次:0
第二次:10
第三次:20
第四次:40
第五次:80-》 1m20
第六次:160 -》2m40
第七次:320 -》5m
podWorkers 中有一个属性backOffPeriod,表示sync失败后重试的时间间隔。
kubelet中有一个属性 backOff,也使用了同一个backOffPeriod,表示backoff的最少时间。SyncPod中使用的backOff就是kubelet中的backOff属性。
kubelet中传递给podWorkers的resyncInterval,代表对每一个pod 检查周期。resyncInterval对应的是 kubeletconfigv1beta1.KubeletConfiguration 的 SyncFrequency ,默认是1min