要查看 指定 Pod 的资源限制(CPU/内存),可以通过以下 kubectl
命令实现:
1. 快速查看某个 Pod 的资源限制
kubectl get pod <pod-name> -o jsonpath='{.spec.containers[*].resources}' | jq
输出示例:
{"limits": {"cpu": "500m","memory": "1024Mi"},"requests": {"cpu": "100m","memory": "256Mi"}
}
2. 分步操作详解
(1) 查看 Pod 的资源限制(直接查看)
kubectl describe pod <pod-name> | grep -A 5 "Containers:"
输出示例:
Containers:my-container:...Resources:Limits:cpu: 500mmemory: 1024MiRequests:cpu: 100mmemory: 256Mi
(2) 通过 JSONPath 精准提取
kubectl get pod <pod-name> -o=jsonpath='{range .spec.containers[*]}{.name}{"\tLimits: "}{.resources.limits}{"\tRequests: "}{.resources.requests}{"\n"}{end}'
输出示例:
my-container Limits: map[cpu:500m memory:1024Mi] Requests: map[cpu:100m memory:256Mi]
(3) 格式化输出(需要 jq
工具)
kubectl get pod <pod-name> -o json | jq '.spec.containers[].resources'
输出示例:
{"limits": {"cpu": "500m","memory": "1024Mi"},"requests": {"cpu": "100m","memory": "256Mi"}
}
3. 高阶用法
(1) 查看所有 Pod 的资源限制
kubectl get pods -o custom-columns="NAME:.metadata.name,CPU_LIMIT:.spec.containers[*].resources.limits.cpu,MEMORY_LIMIT:.spec.containers[*].resources.limits.memory"
输出示例:
NAME CPU_LIMIT MEMORY_LIMIT
my-pod-1234 500m 1024Mi
another-pod-5678 1 2Gi
(2) 结合标签筛选
kubectl get pods -l app=my-app -o jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.spec.containers[*].resources.limits}{"\n"}{end}'
4. 常见问题
问题1:输出为空
• 原因:Pod 未设置资源限制。
• 验证:检查 Deployment/YAML 是否配置了 resources
字段。
问题2:单位不匹配
• 示例错误:Error: cannot convert '2G' to a quantity
• 修复:使用标准单位(如 2Gi
代替 2G
)。
问题3:Pod 不存在
• 错误:Error from server (NotFound): pods "<pod-name>" not found
• 解决:
# 先列出所有 Pod
kubectl get pods --all-namespaces
# 再根据名称查找
kubectl get pod <pod-name> -n <namespace>
通过这些命令,你可以快速定位 Kubernetes 中 Pod 的资源限制配置,确保应用按预期运行。