要查看 指定 Pod 的资源限制(CPU/内存)

要查看 指定 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:     500m
        memory:  1024Mi
      Requests:
        cpu:        100m
        memory:     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 "" not found
解决

# 先列出所有 Pod
kubectl get pods --all-namespaces
# 再根据名称查找
kubectl get pod <pod-name> -n <namespace>

通过这些命令,你可以快速定位 Kubernetes 中 Pod 的资源限制配置,确保应用按预期运行。

你可能感兴趣的:(k8s与docker,k8s)