Commit d519741e authored by kargakis's avatar kargakis

kubelet: Fallback to api server for pod status

This commit fixes getting the logs from complete/failed pods after a kubelet restart by falling back to the api server in case we fail to resolve the pod status using the status cache.
parent 3a5768a0
...@@ -2311,7 +2311,10 @@ func (kl *Kubelet) GetKubeletContainerLogs(podFullName, containerName string, lo ...@@ -2311,7 +2311,10 @@ func (kl *Kubelet) GetKubeletContainerLogs(podFullName, containerName string, lo
} }
podStatus, found := kl.statusManager.GetPodStatus(podUID) podStatus, found := kl.statusManager.GetPodStatus(podUID)
if !found { if !found {
return fmt.Errorf("failed to get status for pod %q in namespace %q", name, namespace) // If there is no cached status, use the status from the
// apiserver. This is useful if kubelet has recently been
// restarted.
podStatus = pod.Status
} }
if err := kl.validatePodPhase(&podStatus); err != nil { if err := kl.validatePodPhase(&podStatus); err != nil {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment