From 392084811a7b7b120912e1665fca2b96ea833f91 Mon Sep 17 00:00:00 2001 From: wangyizhi1 Date: Wed, 27 Dec 2023 18:00:06 +0800 Subject: [PATCH] fix: exclude non-Running pods when calculating node resources Signed-off-by: wangyizhi1 --- .../cluster-manager/controllers/pod/root_pod_controller.go | 2 +- pkg/utils/resources.go | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/pkg/clustertree/cluster-manager/controllers/pod/root_pod_controller.go b/pkg/clustertree/cluster-manager/controllers/pod/root_pod_controller.go index e3d6ab158..7df92fee9 100644 --- a/pkg/clustertree/cluster-manager/controllers/pod/root_pod_controller.go +++ b/pkg/clustertree/cluster-manager/controllers/pod/root_pod_controller.go @@ -793,7 +793,7 @@ func (r *RootPodReconciler) UpdatePodInLeafCluster(ctx context.Context, lr *leaf r.changeToMasterCoreDNS(ctx, podCopy, r.Options) } - klog.V(4).Infof("Updating pod %+v", podCopy) + klog.V(5).Infof("Updating pod %+v", podCopy) err := lr.Client.Update(ctx, podCopy) if err != nil { diff --git a/pkg/utils/resources.go b/pkg/utils/resources.go index 74ba65e29..9836e523f 100644 --- a/pkg/utils/resources.go +++ b/pkg/utils/resources.go @@ -57,6 +57,9 @@ func GetPodsTotalRequestsAndLimits(podList *corev1.PodList) (reqs corev1.Resourc if IsVirtualPod(&pod) { continue } + if pod.Status.Phase != corev1.PodRunning { + continue + } podReqs, podLimits := v1resource.PodRequestsAndLimits(&pod) for podReqName, podReqValue := range podReqs { if value, ok := reqs[podReqName]; !ok { @@ -90,6 +93,9 @@ func GetUsedPodNums(podList *corev1.PodList, nodes *corev1.NodeList) (res corev1 if IsVirtualPod(&pod) { continue } + if pod.Status.Phase != corev1.PodRunning { + continue + } node, exists := nodeMap[pod.Spec.NodeName] if !exists || node.Spec.Unschedulable || !NodeReady(&node) { continue