2.0 KiB
2.0 KiB
04-05-nodejs-资源请求与限制
为
nodejs-demo配置resources.requests/resources.limits,便于调度与避免单个 Pod 占满节点;为后续 HPA(04-13-nodejs-HPA.md)提供基础。
前置条件
- 已部署
nodejs-demo(04-01)。
清单路径(唯一真源)
| 本篇完整清单 | ansible/files/nodejs-demo/04-05-nodejs-demo.yaml |
| 应用 | kubectl apply -f ansible/files/nodejs-demo/04-05-nodejs-demo.yaml |
场景说明(白话)
- requests(请求量):告诉调度器「我常态大概要多少 CPU/内存」,方便排布;CPU 类 HPA 也会用到(见
04-13)。 - limits(上限):内存超过上限,容器可能被 OOM 杀掉;CPU 超过上限会被 限流,变慢但不一定重启。
- Node 堆:还可以用
NODE_OPTIONS=--max-old-space-size=...限制 V8 堆,和容器内存 limit 配合用(见04-03)。
相对 04-04 的变更(原文 → 新文)
| 位置 | 原文(04-04) |
新文(04-05) |
|---|---|---|
containers[].resources |
(无) | requests cpu 50m / memory 64Mi;limits cpu 500m / memory 256Mi |
部署与验证
kubectl apply -f ansible/files/nodejs-demo/04-05-nodejs-demo.yaml
kubectl describe pod -l app=nodejs-demo -n default | grep -A5 "Limits\|Requests"
若集群已装 metrics-server:
kubectl top pod -l app=nodejs-demo -n default
删除限制
将 resources 整段删除或设为合理值后 kubectl apply。
失败排查
- OOMKilled:提高
limits.memory或降低 Node 堆/优化代码;kubectl describe pod看Last State。 - CPU 节流:延迟升高;调大
limits.cpu或优化热点。 06-01-k3s-networkpolicy-故障排查.md(与网络无关时仍可先排除入口问题)