Merge pull request #35309 from yujuhong/fix_restarts

Automatic merge from submit-queue

CRI: Handle container/sandbox restarts for pod with RestartPolicy == …

If all sandbox and containers are dead in a pod, and the restart policy is
"Never", kubelet should not try to recreate all of them.
This commit is contained in:
Kubernetes Submit Queue 2016-10-21 14:35:06 -07:00 committed by GitHub
commit d20dda0c06

View File

@ -471,13 +471,6 @@ func (m *kubeGenericRuntimeManager) computePodContainerChanges(pod *api.Pod, pod
// check the status of containers.
for index, container := range pod.Spec.Containers {
if sandboxChanged {
message := fmt.Sprintf("Container %+v's pod sandbox is dead, the container will be recreated.", container)
glog.Info(message)
changes.ContainersToStart[index] = message
continue
}
containerStatus := podStatus.FindContainerStatusByName(container.Name)
if containerStatus == nil || containerStatus.State != kubecontainer.ContainerStateRunning {
if kubecontainer.ShouldContainerBeRestarted(&container, pod, podStatus) {
@ -487,6 +480,14 @@ func (m *kubeGenericRuntimeManager) computePodContainerChanges(pod *api.Pod, pod
}
continue
}
if sandboxChanged {
if pod.Spec.RestartPolicy != api.RestartPolicyNever {
message := fmt.Sprintf("Container %+v's pod sandbox is dead, the container will be recreated.", container)
glog.Info(message)
changes.ContainersToStart[index] = message
}
continue
}
if initFailed {
// Initialization failed and Container exists.