检查Pod资源消耗情况

Man*_*tro 5 kubernetes kubernetes-pod azure-aks

我在基本的 k8s 集群上进行了一些部署,但没有定义请求和限制。有什么方法可以检查 pod 需要多少内存和 cpu?

Blo*_*je5 8

根据集群中是否安装了指标服务器,您可以使用:

kubectl top pod
kubectl top node
Run Code Online (Sandbox Code Playgroud)


wei*_*eld 6

安装Metrics Server后,您可以直接通过Resource Metrics API查询pod 和节点的资源使用情况:

  • 集群中所有节点:
    • kubectl get --raw=/apis/metrics.k8s.io/v1beta1/nodes
  • 特定节点:
    • kubectl get --raw=/apis/metrics.k8s.io/v1beta1/nodes/{node}
  • 集群中的所有 Pod:
    • kubectl get --raw=/apis/metrics.k8s.io/v1beta1/pods
  • 特定命名空间中的所有 Pod:
    • kubectl get --raw=/apis/metrics.k8s.io/v1beta1/namespaces/{namespace}/pods
  • 特定的 Pod:
    • kubectl get --raw=/apis/metrics.k8s.io/v1beta1/namespaces/{namespace}/pods/{pod}

该 API 会返回 Pod 和节点的绝对 CPU 和内存使用情况。

由此,您应该能够算出每个 pod 消耗了多少资源以及每个节点上还剩下多少可用资源。