Kubernetes 使用度量的Kubernates pod内存限制

Kubernetes 使用度量的Kubernates pod内存限制,kubernetes,monitoring,metrics-server,Kubernetes,Monitoring,Metrics Server,我正在尝试使用API获取分配给pod的实际内存量和总内存量。 虽然我能够使用metrics服务器api获取实际内存消耗。 如何使用metrics server API获取分配给pod的总内存 我正在开发一个仪表板,在其中我需要展示pod内存和cpu。ui图有实际输入和总输入。我可以获取命令kubectl get--raw/api/metrics.k8s.io/v1beta1/namespaces/default/pods/使用的实际内存,但是如何获取pod的总内存呢?您只需运行kubectl d

我正在尝试使用API获取分配给pod的实际内存量和总内存量。 虽然我能够使用metrics服务器api获取实际内存消耗。 如何使用metrics server API获取分配给pod的总内存


我正在开发一个仪表板,在其中我需要展示pod内存和cpu。ui图有实际输入和总输入。我可以获取命令kubectl get--raw/api/metrics.k8s.io/v1beta1/namespaces/default/pods/使用的实际内存,但是如何获取pod的总内存呢?

您只需运行
kubectl descripe pod
并查看
容器下的内容。

分配给pod的内存总量受分配给pod容器的内存限制的限制

要为容器指定内存请求,请在容器的资源清单中包含resources:requests字段。要指定内存限制,请包括资源:限制

如果未指定内存限制,则容器没有上限

如果未指定容器的内存限制,则以下情况之一适用:

•容器使用的内存量没有上限。容器可以使用它正在运行的节点上的所有可用内存,而这些内存又可以调用OOM Killer。此外,在OOM终止的情况下,没有资源限制的容器将有更大的终止机会

•容器在具有默认内存限制的命名空间中运行,并且容器会自动分配默认限制。群集管理员可以使用LimitRange为内存限制指定默认值


有关所有可用API的说明,请参阅。它适用于不同的K8s版本(只需注意URL)


Nick,我如何使用API获取此值

乍一看,即使是
/api/v1/namespaces//pods/
也可以完成这项工作

请看我的例子(我已经决定自己试一试)

我们可以看到,API返回pod的限制。
让我知道这是否是您一直在寻找的。

我正在开发一个仪表板,需要在其中展示pod内存和cpu。ui图形具有输入实际和总数量。我可以获取命令kubectl get--raw/api/metrics.k8s.io/v1beta1/namespaces/default/pods/使用的实际内存,但如何获取pod的总内存呢?“您只需运行kubectl descripe pod并在.Containers下查找..Limits”这并不总是一个caseNick,如何使用API获取该值?kubectl get--raw/API/v1/namespaces/default/pods/| json_pp?您所说的“分配给pod的总内存”是什么意思?它是pod可以使用的最大值吗?它是该吊舱上容器使用的所有内存的总和吗?
$ cat pod.yaml 

apiVersion: v1
kind: Pod
metadata:
  name: server-go-lim 
  ...
spec:
  containers:
  - image: nkolchenko/enea:server_go_latest
    resources:
      ...
      limits:
        memory: 1024Mi   # Here is the Limit
    ...

$ kubectl create -f pod.yaml
pod/server-go-lim created


$ kubectl get --raw /api/v1/namespaces/default/pods/server-go-lim | json_pp 
{
   ...
   "spec" : {
      "containers" : [
         {
            "resources" :  
               "limits" : {
                  "memory" : "1Gi"
               }