目前,當 K8s 在舊部署上擴展新 pod 并且 Rancher 顯示卡在將 pod 調度到 K8s 作業節點時,我面臨一個問題。它最終將被安排但需要一些時間,據我了解是等待調度程式找到適合資源請求的節點。在該部署的事件部分,它顯示:
Warning FailedScheduling 0/8 nodes are available: 5 Insufficient memory, 3 node(s) didn't match node selector.
然后我轉到“節點”選項卡檢查作業節點上是否存在記憶體不足,它顯示我的作業節點如下:
STATE NAME ROLES VERSION CPU RAM POD
Active worker-01 Worker v1.19.5 14/19 Cores 84.8/86.2 GiB 76/110
Active worker-02 Worker v1.19.5 10.3/19 Cores 83.2/86.2 GiB 51/110
Active worker-03 Worker v1.19.5 14/19 Cores 85.8/86.2 GiB 63/110
Active worker-04 Worker v1.19.5 13/19 Cores 84.4/86.2 GiB 53/110
Active worker-05 Worker v1.19.5 12/19 Cores 85.2/86.2 GiB 68/110
但是當我進入每臺服務器并使用 top 和 free 命令檢查記憶體時,它們會在 worker-1 節點上輸出類似的結果:
top:
Tasks: 827 total, 2 running, 825 sleeping, 0 stopped, 0 zombie
%Cpu(s): 34.9 us, 11.9 sy, 0.0 ni, 51.5 id, 0.0 wa, 0.0 hi, 1.7 si, 0.0 st
KiB Mem : 98833488 total, 2198412 free, 81151568 used, 15483504 buff/cache
KiB Swap: 0 total, 0 free, 0 used. 17101808 avail Mem
free -g:
total used free shared buff/cache available
Mem: 94 77 1 0 14 16
Swap: 0 0 0
因此節點中可用的記憶體約為 16-17 GB,但仍無法將新 pod 調度到其中。所以我想知道是什么導致了記憶體數量的沖突,86.2(在 Rancher GUI 上)和 94(在服務器上)之間的數量是用于作業系統和其他行程的嗎?以及為什么 Rancher 顯示 K8s 作業負載當前大約需要 83-85 GB,但在服務器中可用記憶體大約是 16-17 GB。有沒有辦法更深入地檢查這個?
我還在學習 K8s,所以如果可以的話,請詳細解釋一下或者談論這個的主題。
提前致謝!
uj5u.com熱心網友回復:
作業節點上的實際資源消耗是多少并不重要。真正重要的是資源請求。
請求是容器保證得到的。如果容器請求資源,Kubernetes 只會將其調度到可以為其提供該資源的節點上。
閱讀有關Pod 和容器的資源管理的更多資訊
但我想知道為什么當實際記憶體為 94GB 時它幾乎顯示為 86.2GB
用于查看特定節點上kubectl describe node <node name>有多少可用記憶體kubelet
你會看到類似的東西
Capacity:
cpu: 8
ephemeral-storage: 457871560Ki
hugepages-1Gi: 0
hugepages-2Mi: 0
memory: 32626320Ki
pods: 110
Allocatable:
cpu: 8
ephemeral-storage: 457871560Ki
hugepages-1Gi: 0
hugepages-2Mi: 0
memory: 32626320Ki
pods: 110
......
Allocated resources:
(Total limits may be over 100 percent, i.e., overcommitted.)
Resource Requests Limits
-------- -------- ------
cpu 100m (1%) 100m (1%)
memory 50Mi (0%) 50Mi (0%)
ephemeral-storage 0 (0%) 0 (0%)
hugepages-1Gi 0 (0%) 0 (0%)
hugepages-2Mi 0 (0%) 0 (0%)
K8s 作業負載目前大約需要 83-85 GB,但在服務器中可用記憶體約為 16-17 GB。
從有free問題的輸出來看,這不是真的
KiB Mem : 98833488 total, 2198412 free, 81151568 used, 15483504 buff/cache
2198412 free這是?2GB,你有?1.5GB的buff / cache。
You can use cat /proc/meminfo to get more details about OS-level memory info.
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/456900.html
標籤:码头工人 Kubernetes 牧场主
