mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-25 04:33:26 +00:00
Merge pull request #73606 from krzysztof-jastrzebski/daemonsets
Deleting pods assigned to not existing nodes only if
This commit is contained in:
commit
a3c14ecfa5
@ -964,8 +964,11 @@ func (dsc *DaemonSetsController) manage(ds *apps.DaemonSet, hash string) error {
|
|||||||
failedPodsObserved += failedPodsObservedOnNode
|
failedPodsObserved += failedPodsObservedOnNode
|
||||||
}
|
}
|
||||||
|
|
||||||
// Remove pods assigned to not existing nodes.
|
// Remove pods assigned to not existing nodes when daemonset pods are scheduled by default scheduler.
|
||||||
podsToDelete = append(podsToDelete, getPodsWithoutNode(nodeList, nodeToDaemonPods)...)
|
// If node doesn't exist then pods are never scheduled and can't be deleted by PodGCController.
|
||||||
|
if utilfeature.DefaultFeatureGate.Enabled(features.ScheduleDaemonSetPods) {
|
||||||
|
podsToDelete = append(podsToDelete, getPodsWithoutNode(nodeList, nodeToDaemonPods)...)
|
||||||
|
}
|
||||||
|
|
||||||
// Label new pods using the hash label value of the current history when creating them
|
// Label new pods using the hash label value of the current history when creating them
|
||||||
if err = dsc.syncNodes(ds, podsToDelete, nodesNeedingDaemonPods, hash); err != nil {
|
if err = dsc.syncNodes(ds, podsToDelete, nodesNeedingDaemonPods, hash); err != nil {
|
||||||
@ -1529,8 +1532,7 @@ func failedPodsBackoffKey(ds *apps.DaemonSet, nodeName string) string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// getPodsWithoutNode returns list of pods assigned to not existing nodes.
|
// getPodsWithoutNode returns list of pods assigned to not existing nodes.
|
||||||
func getPodsWithoutNode(
|
func getPodsWithoutNode(runningNodesList []*v1.Node, nodeToDaemonPods map[string][]*v1.Pod) []string {
|
||||||
runningNodesList []*v1.Node, nodeToDaemonPods map[string][]*v1.Pod) []string {
|
|
||||||
var results []string
|
var results []string
|
||||||
isNodeRunning := make(map[string]bool)
|
isNodeRunning := make(map[string]bool)
|
||||||
for _, node := range runningNodesList {
|
for _, node := range runningNodesList {
|
||||||
|
@ -2461,7 +2461,11 @@ func TestDeletePodForNotExistingNode(t *testing.T) {
|
|||||||
addNodes(manager.nodeStore, 0, 1, nil)
|
addNodes(manager.nodeStore, 0, 1, nil)
|
||||||
addPods(manager.podStore, "node-0", simpleDaemonSetLabel, ds, 1)
|
addPods(manager.podStore, "node-0", simpleDaemonSetLabel, ds, 1)
|
||||||
addPods(manager.podStore, "node-1", simpleDaemonSetLabel, ds, 1)
|
addPods(manager.podStore, "node-1", simpleDaemonSetLabel, ds, 1)
|
||||||
syncAndValidateDaemonSets(t, manager, ds, podControl, 0, 1, 0)
|
if f {
|
||||||
|
syncAndValidateDaemonSets(t, manager, ds, podControl, 0, 1, 0)
|
||||||
|
} else {
|
||||||
|
syncAndValidateDaemonSets(t, manager, ds, podControl, 0, 0, 0)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user