iT邦幫忙

2026 iThome 鐵人賽

DAY 20
0

memory request 先開一個荒謬的數字

          resources:
            requests:
              memory: "100Gi"
              cpu: "50m"
            limits:
              cpu: "200m"
              memory: "100Gi"

requests 不能大於 limits,limits 要一起放大,不然 apply 會被擋,另外不需要真的去消耗那麼多記憶體,光是預約就足以讓它排不進去

kubectl apply -f manifests/base
kubectl get pods -n ithome-lab

https://ithelp.ithome.com.tw/upload/images/20261004/201761546GzPbZAfPY.png

Pending,這個狀態的意思是這個 Pod 還沒有被指派到任何一台 Node

Pending 的 Pod 沒有 Container,所以有些指令會直接失效

kubectl logs <POD_NAME> -n ithome-lab

會發現沒東西出現,因為程式還沒有被放到機器上,所以沒有輸出

所以遇到 Pending,logs 這一步可以直接跳過

describe

kubectl describe pod <POD_NAME> -n ithome-lab

https://ithelp.ithome.com.tw/upload/images/20261004/20176154RobRCqeTpU.png

Insufficient memory 就是記憶體不夠

順便看一下 Node

kubectl describe node

https://ithelp.ithome.com.tw/upload/images/20261004/20176154VMSyTdYQUi.png

https://ithelp.ithome.com.tw/upload/images/20261004/20176154fyUwQZVs1A.png

  • Capacity 是這台機器實際有多少
  • Allocatable 是扣掉系統自己要用的之後、可以分給 Pod 的量
  • Allocated resources 是目前已經被 requests 預約掉多少

排程器比對的是 Allocatable 跟已經預約掉的量,不是實際使用量

Insufficient memory 只是 Pending 的其中一種原因,Events 那行訊息還可能是別的

沒有符合 nodeSelector 或 affinity 條件的機器,訊息會是 didn't match node selector;Node 上有 taint 而 Pod 沒有對應的 toleration,訊息會提到 taint;如果是要掛儲存,PVC 還沒 bound 也會卡在 Pending。這幾種的 STATUS 都是 Pending,一樣要靠 Events 那一行分辨

修復就是把數字改回去

kubectl apply -f manifests/base
kubectl get pods -n ithome-lab

明天見 :D


上一篇
Day 19 Readiness probe
系列文
讓Claude Code當我的 K8s 助教:部署、故障排查與入門可觀測性 共 20 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言