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