k8s如何快速的查看deployment资源限制requests/limits
1.常用查看方式
1.1describe(最直接)
1 | kubectl describe deployment <deployment-name> |
输出中定位:
Containers:
<container-name>:
Limits:
cpu: 500m
memory: 256Mi
特点:
- 人类可读性强
- 适合排查
- 不适合批量处理
1.2 jsonpath(推荐,结构化)
1 | kubectl get deployment <deployment-name> \ |
示例输出:
nginx 500m 256Mi
特点:
- 精准提取
- 适合脚本/SRE自动化
1.3 wide + custom-columns(批量友好)
1 | kubectl get deployment \ |
输出:
NAME CPU_LIMIT MEM_LIMIT
nginx 500m 256Mi
特点:
- 类似
get体验 - 适合巡检
1.4 查看所有 namespace
1 | kubectl get deployment -A \ |
2.底层结构理解(关键)
Deployment → Pod → Container 关系:
graph TD
A[Deployment] --> B[ReplicaSet]
B --> C[Pod Template]
C --> D[Pod]
D --> E[Container]
E --> F[Resources Limits/Requests]
核心点:
- Deployment 本身没有资源限制
- 资源限制属于 Pod Template → Container
kubectl get deployment默认不会展开这一层
3.同时查看 requests + limits
1 | kubectl get deployment \ |
4.为什么要关注 limits
- 防止 Node OOM
- 控制资源隔离(QoS Class)
- 避免 noisy neighbor
4.1快速审计未设置 limits 的 Deployment
1 | kubectl get deployment -A -o json | jq -r ' |