要查看 指定 Pod 的资源限制(CPU/内存),可以通过以下 kubectl
命令实现:
kubectl get pod <pod-name> -o jsonpath='{.spec.containers[*].resources}' | jq
输出示例:
{
"limits": {
"cpu": "500m",
"memory": "1024Mi"
},
"requests": {
"cpu": "100m",
"memory": "256Mi"
}
}
kubectl describe pod <pod-name> | grep -A 5 "Containers:"
输出示例:
Containers:
my-container:
...
Resources:
Limits:
cpu: 500m
memory: 1024Mi
Requests:
cpu: 100m
memory: 256Mi
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]
jq
工具)kubectl get pod <pod-name> -o json | jq '.spec.containers[].resources'
输出示例:
{
"limits": {
"cpu": "500m",
"memory": "1024Mi"
},
"requests": {
"cpu": "100m",
"memory": "256Mi"
}
}
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
kubectl get pods -l app=my-app -o jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.spec.containers[*].resources.limits}{"\n"}{end}'
• 原因:Pod 未设置资源限制。
• 验证:检查 Deployment/YAML 是否配置了 resources
字段。
• 示例错误:Error: cannot convert '2G' to a quantity
• 修复:使用标准单位(如 2Gi
代替 2G
)。
• 错误:Error from server (NotFound): pods "
• 解决:
# 先列出所有 Pod
kubectl get pods --all-namespaces
# 再根据名称查找
kubectl get pod <pod-name> -n <namespace>
通过这些命令,你可以快速定位 Kubernetes 中 Pod 的资源限制配置,确保应用按预期运行。