Kubelet: move active deadline check to per pod worker
Per-pod workers have sufficient knowledge to determine whether a pod has exceeded the active deadline, and they set the status at the end of each sync. Move the active deadline check to generatePodStatus so that per pod workers can update the pod status directly. This eliminates the possibility of a race condition where both SyncPods and the pod worker are updating the status, which could lead to temporary erratic pod status behavior (pod phase: failed -> running -> failed).
This commit is contained in:
@@ -81,6 +81,9 @@ func (s *statusManager) SetPodStatus(pod *api.Pod, status api.PodStatus) {
|
||||
}
|
||||
|
||||
// if the status has no start time, we need to set an initial time
|
||||
// TODO(yujuhong): Consider setting StartTime when generating the pod
|
||||
// status instead, which would allow statusManager to become a simple cache
|
||||
// again.
|
||||
if status.StartTime.IsZero() {
|
||||
if pod.Status.StartTime.IsZero() {
|
||||
// the pod did not have a previously recorded value so set to now
|
||||
|
Reference in New Issue
Block a user