From eeeccd0a6793374f67c113076c0ebc477d2d2b08 Mon Sep 17 00:00:00 2001 From: derekwaynecarr Date: Fri, 1 Apr 2016 13:39:19 -0400 Subject: [PATCH] A pod never terminated if a container image registry was unavailable --- pkg/kubelet/container/image_puller.go | 2 +- pkg/kubelet/container/serialized_image_puller.go | 2 +- pkg/kubelet/kubelet.go | 3 ++- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/pkg/kubelet/container/image_puller.go b/pkg/kubelet/container/image_puller.go index 280b737a0d..fab40afaf9 100644 --- a/pkg/kubelet/container/image_puller.go +++ b/pkg/kubelet/container/image_puller.go @@ -110,7 +110,7 @@ func (puller *imagePuller) PullImage(pod *api.Pod, container *api.Container, pul puller.logIt(ref, api.EventTypeWarning, "Failed", logPrefix, fmt.Sprintf("Failed to pull image %q: %v", container.Image, err), glog.Warning) puller.backOff.Next(backOffKey, puller.backOff.Clock.Now()) if err == RegistryUnavailable { - msg := fmt.Sprintf("image pull failed for %s because the registry is temporarily unavailable.", container.Image) + msg := fmt.Sprintf("image pull failed for %s because the registry is unavailable.", container.Image) return err, msg } else { return ErrImagePull, err.Error() diff --git a/pkg/kubelet/container/serialized_image_puller.go b/pkg/kubelet/container/serialized_image_puller.go index 0450749199..38d82e88eb 100644 --- a/pkg/kubelet/container/serialized_image_puller.go +++ b/pkg/kubelet/container/serialized_image_puller.go @@ -122,7 +122,7 @@ func (puller *serializedImagePuller) PullImage(pod *api.Pod, container *api.Cont puller.logIt(ref, api.EventTypeWarning, FailedToPullImage, logPrefix, fmt.Sprintf("Failed to pull image %q: %v", container.Image, err), glog.Warning) puller.backOff.Next(backOffKey, puller.backOff.Clock.Now()) if err == RegistryUnavailable { - msg := fmt.Sprintf("image pull failed for %s because the registry is temporarily unavailable.", container.Image) + msg := fmt.Sprintf("image pull failed for %s because the registry is unavailable.", container.Image) return err, msg } else { return ErrImagePull, err.Error() diff --git a/pkg/kubelet/kubelet.go b/pkg/kubelet/kubelet.go index 0355438c48..98d137a29b 100644 --- a/pkg/kubelet/kubelet.go +++ b/pkg/kubelet/kubelet.go @@ -3392,7 +3392,8 @@ func (kl *Kubelet) convertStatusToAPIStatus(pod *api.Pod, podStatus *kubecontain } else if reason == kubecontainer.ErrImagePullBackOff || reason == kubecontainer.ErrImageInspect || reason == kubecontainer.ErrImagePull || - reason == kubecontainer.ErrImageNeverPull { + reason == kubecontainer.ErrImageNeverPull || + reason == kubecontainer.RegistryUnavailable { // mark it as waiting, reason will be filled bellow containerStatus.State = api.ContainerState{Waiting: &api.ContainerStateWaiting{}} } else if reason == kubecontainer.ErrRunContainer {