【问题标题】:Check pod resources consumption检查 pod 资源消耗
【发布时间】:2019-09-13 14:24:12
【问题描述】:

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

【问题讨论】:

标签: kubernetes azure-aks kubernetes-pod


【解决方案1】:

根据您的集群中是否安装了metrics-server,您可以使用:

kubectl top pod
kubectl top node

【讨论】:

  • 我知道“top”命令。但我的意思是,如果我不定义限制,pod 可以请求多少资源?
  • 如果你没有定义请求和限制它可以请求尽可能多的节点。
  • 好的,但是我如何估计应该给 pod 的限制?如果我的容器运行服务器端多线程应用程序,我应该将 pod 2 核心作为资源提供给吗?是否存在将资源拆分为核心的 kubernetes 机制?
  • kubernetes.io/docs/concepts/configuration/…。在大多数云提供商处,1000m 转换为 1 个 CPU。如果您的容器使用多线程,它本身并不意味着它需要 2 个完整的 CPU(除非它会充分利用它们)。 CPU 被解释为容器每 100 毫秒可以使用的 CPU 时间总量。
  • 太棒了!感谢您向我解释这些事情;)感谢
【解决方案2】:

安装Metrics Server后,可以直接在Resource Metrics API查询pods和nodes的资源使用情况:

  • 集群中的所有节点:
    • 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 消耗了多少资源,以及每个节点上剩余多少空闲资源。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-30
    • 2012-08-12
    • 1970-01-01
    • 2010-09-28
    • 1970-01-01
    相关资源
    最近更新 更多