mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-31 15:25:57 +00:00
avoid recovery for mirrored pods on failover
This commit is contained in:
parent
50d805110a
commit
a5307305f1
@ -44,6 +44,7 @@ import (
|
|||||||
"k8s.io/kubernetes/pkg/api/errors"
|
"k8s.io/kubernetes/pkg/api/errors"
|
||||||
client "k8s.io/kubernetes/pkg/client/unversioned"
|
client "k8s.io/kubernetes/pkg/client/unversioned"
|
||||||
"k8s.io/kubernetes/pkg/fields"
|
"k8s.io/kubernetes/pkg/fields"
|
||||||
|
"k8s.io/kubernetes/pkg/kubelet"
|
||||||
"k8s.io/kubernetes/pkg/kubelet/container"
|
"k8s.io/kubernetes/pkg/kubelet/container"
|
||||||
"k8s.io/kubernetes/pkg/labels"
|
"k8s.io/kubernetes/pkg/labels"
|
||||||
"k8s.io/kubernetes/pkg/tools"
|
"k8s.io/kubernetes/pkg/tools"
|
||||||
@ -923,6 +924,12 @@ func (ks *KubernetesScheduler) recoverTasks() error {
|
|||||||
ks.slaves.checkAndAdd(slaveId, t.Offer.Host())
|
ks.slaves.checkAndAdd(slaveId, t.Offer.Host())
|
||||||
}
|
}
|
||||||
for _, pod := range podList.Items {
|
for _, pod := range podList.Items {
|
||||||
|
if _, isMirrorPod := pod.Annotations[kubelet.ConfigMirrorAnnotationKey]; isMirrorPod {
|
||||||
|
// mirrored pods are never reconciled because the scheduler isn't responsible for
|
||||||
|
// scheduling them; they're started by the executor/kubelet upon instantiation and
|
||||||
|
// reflected in the apiserver afterward. the scheduler has no knowledge of them.
|
||||||
|
continue
|
||||||
|
}
|
||||||
if t, ok, err := podtask.RecoverFrom(pod); err != nil {
|
if t, ok, err := podtask.RecoverFrom(pod); err != nil {
|
||||||
log.Errorf("failed to recover task from pod, will attempt to delete '%v/%v': %v", pod.Namespace, pod.Name, err)
|
log.Errorf("failed to recover task from pod, will attempt to delete '%v/%v': %v", pod.Namespace, pod.Name, err)
|
||||||
err := ks.client.Pods(pod.Namespace).Delete(pod.Name, nil)
|
err := ks.client.Pods(pod.Namespace).Delete(pod.Name, nil)
|
||||||
|
Loading…
Reference in New Issue
Block a user