kubernetes-sigs / descheduler

Descheduler for Kubernetes
https://sigs.k8s.io/descheduler
Apache License 2.0
4.26k stars 650 forks source link

confusing about the currently resource which descheduler is collecting #1240

Closed wang-xiaowu closed 10 months ago

wang-xiaowu commented 10 months ago

i know desceduler currently only collect request resource of pods,not actual used resource now i did not config any resource for my business pods,so what's the meaning of usagePercentage which desceduler's log shows this is descheduler's log

2023-09-08T16:21:37.043751128+08:00 I0908 08:21:37.043614       1 node.go:49] "Node lister returned empty list, now fetch directly"
I0908 08:21:37.050181       1 descheduler.go:278] Building a pod evictor
2023-09-08T16:21:37.050711423+08:00 I0908 08:21:37.050636       1 nodeutilization.go:227] "Node is appropriately utilized" node="k3s-release-node1" usage=map[cpu:2225m memory:2029Mi pods:11] usagePercentage=map[cpu:27.8125 memory:13.08786860528167 pods:3.6666666666666665]
2023-09-08T16:21:37.050724668+08:00 I0908 08:21:37.050664       1 nodeutilization.go:227] "Node is appropriately utilized" node="k3s-release-node2" usage=map[cpu:3825m memory:7693Mi pods:57] usagePercentage=map[cpu:47.8125 memory:49.661356515599486 pods:19]
2023-09-08T16:21:37.050733672+08:00 I0908 08:21:37.050680       1 nodeutilization.go:227] "Node is appropriately utilized" node="k3s-release-server1" usage=map[cpu:1525m memory:6279Mi pods:31] usagePercentage=map[cpu:19.0625 memory:40.50203225248057 pods:10.333333333333334]
2023-09-08T16:21:37.050737541+08:00 I0908 08:21:37.050702       1 nodeutilization.go:227] "Node is appropriately utilized" node="k3s-release-server2" usage=map[cpu:5325m memory:7753Mi pods:54] usagePercentage=map[cpu:66.5625 memory:50.00988976128762 pods:18]
2023-09-08T16:21:37.050745950+08:00 I0908 08:21:37.050717       1 nodeutilization.go:227] "Node is appropriately utilized" node="k3s-release-server3" usage=map[cpu:4135m memory:8869Mi pods:39] usagePercentage=map[cpu:51.6875 memory:57.20852731753642 pods:13]
2023-09-08T16:21:37.050750034+08:00 I0908 08:21:37.050736       1 lownodeutilization.go:118] "Criteria for a node under utilization" CPU=20 Mem=20 Pods=20
2023-09-08T16:21:37.050804680+08:00 I0908 08:21:37.050746       1 lownodeutilization.go:119] "Number of underutilized nodes" totalNumber=0
I0908 08:21:37.050772       1 lownodeutilization.go:132] "Criteria for a node above target utilization" CPU=80 Mem=80 Pods=50
2023-09-08T16:21:37.050826135+08:00 I0908 08:21:37.050781       1 lownodeutilization.go:133] "Number of overutilized nodes" totalNumber=0
I0908 08:21:37.050800       1 lownodeutilization.go:136] "No node is underutilized, nothing to do here, you might tune your thresholds further"
a7i commented 10 months ago

Hi @wang-xiaowu would you be able to share the output of kubectl describe node k3s-release-node1?

wang-xiaowu commented 10 months ago
# kubectl describe node k3s-release-node1
Name:               k3s-release-node1
Roles:              worker
Labels:             beta.kubernetes.io/arch=amd64
                    beta.kubernetes.io/instance-type=k3s
                    beta.kubernetes.io/os=linux
                    kubernetes.io/arch=amd64
                    kubernetes.io/hostname=k3s-release-node1
                    kubernetes.io/os=linux
                    node-role.kubernetes.io/worker=worker
                    node.kubernetes.io/instance-type=k3s
Annotations:        flannel.alpha.coreos.com/backend-data: {"VNI":1,"VtepMAC":"4a:f9:65:cc:c3:51"}
                    flannel.alpha.coreos.com/backend-type: vxlan
                    flannel.alpha.coreos.com/kube-subnet-manager: true
                    flannel.alpha.coreos.com/public-ip: 10.1.4.15
                    k3s.io/hostname: k3s-release-node1
                    k3s.io/internal-ip: 10.1.4.15
                    k3s.io/node-args: ["agent","--kubelet-arg","max-pods=300","eviction-hard=memory.available\u003c500Mi","system-reserved=memory=1Gi"]
                    k3s.io/node-config-hash: GGMEOSIPX3TR6JIYAUZOARYGMFGIHQZ6JAQ46UKNF46HI2SWHI4Q====
                    k3s.io/node-env:
                      {"K3S_DATA_DIR":"/var/lib/rancher/k3s/data/484bf694b486d93cc93bcf90f74d5c77628550d4456f21760fd720b88c93881e","K3S_TOKEN":"********","K3S_U...
                    management.cattle.io/pod-limits: {"cpu":"4400m","memory":"10144Mi"}
                    management.cattle.io/pod-requests: {"cpu":"2225m","memory":"2029Mi","pods":"11"}
                    node.alpha.kubernetes.io/ttl: 0
                    volumes.kubernetes.io/controller-managed-attach-detach: true
CreationTimestamp:  Fri, 18 Nov 2022 14:02:38 +0800
Taints:             deploy=node1:NoSchedule
Unschedulable:      false
Lease:
  HolderIdentity:  k3s-release-node1
  AcquireTime:     <unset>
  RenewTime:       Wed, 13 Sep 2023 10:36:51 +0800
Conditions:
  Type             Status  LastHeartbeatTime                 LastTransitionTime                Reason                       Message
  ----             ------  -----------------                 ------------------                ------                       -------
  MemoryPressure   False   Wed, 13 Sep 2023 10:34:11 +0800   Wed, 17 May 2023 12:41:47 +0800   KubeletHasSufficientMemory   kubelet has sufficient memory available
  DiskPressure     False   Wed, 13 Sep 2023 10:34:11 +0800   Wed, 17 May 2023 12:41:47 +0800   KubeletHasNoDiskPressure     kubelet has no disk pressure
  PIDPressure      False   Wed, 13 Sep 2023 10:34:11 +0800   Wed, 17 May 2023 12:41:47 +0800   KubeletHasSufficientPID      kubelet has sufficient PID available
  Ready            True    Wed, 13 Sep 2023 10:34:11 +0800   Tue, 29 Aug 2023 10:57:32 +0800   KubeletReady                 kubelet is posting ready status
Addresses:
  InternalIP:  10.1.4.15
  Hostname:    k3s-release-node1
Capacity:
  cpu:                8
  ephemeral-storage:  103019184Ki
  hugepages-1Gi:      0
  hugepages-2Mi:      0
  memory:             15874976Ki
  pods:               300
Allocatable:
  cpu:                8
  ephemeral-storage:  100217062117
  hugepages-1Gi:      0
  hugepages-2Mi:      0
  memory:             15874976Ki
  pods:               300
System Info:
  Machine ID:                 1812ee08555f4a7fbedd6f763d53f359
  System UUID:                1812ee08-555f-4a7f-bedd-6f763d53f359
  Boot ID:                    5dd6f132-0dcb-4e25-a42c-4d54aea0a172
  Kernel Version:             5.4.224-1.el7.elrepo.x86_64
  OS Image:                   CentOS Linux 7 (Core)
  Operating System:           linux
  Architecture:               amd64
  Container Runtime Version:  containerd://1.7.1-k3s1
  Kubelet Version:            v1.24.16+k3s1
  Kube-Proxy Version:         v1.24.16+k3s1
PodCIDR:                      10.42.3.0/24
PodCIDRs:                     10.42.3.0/24
ProviderID:                   k3s://k3s-release-node1
Non-terminated Pods:          (11 in total)
  Namespace                   Name                                             CPU Requests  CPU Limits   Memory Requests  Memory Limits  Age
  ---------                   ----                                             ------------  ----------   ---------------  -------------  ---
  kube-system                 kube-state-metrics-64dcf75c88-lzgfz              0 (0%)        0 (0%)       0 (0%)           0 (0%)         118d
  kube-system                 node-local-dns-kzsgn                             25m (0%)      0 (0%)       5Mi (0%)         0 (0%)         298d
  sopei-biz                   wecom-robot-server-6b979cd497-8wc2r              100m (1%)     1 (12%)      100Mi (0%)       1Gi (6%)       13d
  sopei-biz                   wecom-robot-server-6b979cd497-fxmnx              100m (1%)     1 (12%)      100Mi (0%)       1Gi (6%)       13d
  sopei-biz                   xxl-job-admin-7f76749b7-hhcj8                    0 (0%)        0 (0%)       200Mi (1%)       1000Mi (6%)    118d
  sopei-biz                   xxl-job-executor-calculation-75946d5cf8-5lxmn    600m (7%)     800m (10%)   200Mi (1%)       1000Mi (6%)    32d
  sopei-biz                   xxl-job-executor-collection-6f5f5bb65c-hvzsq     500m (6%)     500m (6%)    200Mi (1%)       1000Mi (6%)    118d
  sopei-biz                   xxl-job-executor-sccs-69f7bf9d49-qd595           900m (11%)    1100m (13%)  200Mi (1%)       1000Mi (6%)    103d
  sopei-utils                 filebeat-ccdfx                                   0 (0%)        0 (0%)       0 (0%)           0 (0%)         19d
  sopei-utils                 kie-server-release-sccs-77797c6754-pz5x5         0 (0%)        0 (0%)       512Mi (3%)       2Gi (13%)      20d
  sopei-utils                 kie-server-release-sccs-77797c6754-z6rdp         0 (0%)        0 (0%)       512Mi (3%)       2Gi (13%)      20d
Allocated resources:
  (Total limits may be over 100 percent, i.e., overcommitted.)
  Resource           Requests      Limits
  --------           --------      ------
  cpu                2225m (27%)   4400m (55%)
  memory             2029Mi (13%)  10144Mi (65%)
  ephemeral-storage  0 (0%)        0 (0%)
  hugepages-1Gi      0 (0%)        0 (0%)
  hugepages-2Mi      0 (0%)        0 (0%)
Events:              <none>
a7i commented 10 months ago

Given the output of Descheduler:

"Node is appropriately utilized" node="k3s-release-node1" usage=map[cpu:2225m memory:2029Mi pods:11] usagePercentage=map[cpu:27.8125 memory:13.08786860528167 pods:3.6666666666666665]

And the node output showing that some pods (from namespace sopei-biz) have Requests defined, this seems to all match up, correct?

a7i commented 10 months ago

/kind support

wang-xiaowu commented 10 months ago

Given the output of Descheduler:

"Node is appropriately utilized" node="k3s-release-node1" usage=map[cpu:2225m memory:2029Mi pods:11] usagePercentage=map[cpu:27.8125 memory:13.08786860528167 pods:3.6666666666666665]

And the node output showing that some pods (from namespace sopei-biz) have Requests defined, this seems to all match up, correct?

yes so usage only shows the used resource of the pod which was defined requests,right?

a7i commented 10 months ago

Exactly, because that's what Scheduler uses

wang-xiaowu commented 10 months ago

i see thx~