Kubernetes 使用度量的Kubernates pod内存限制
我正在尝试使用API获取分配给pod的实际内存量和总内存量。 虽然我能够使用metrics服务器api获取实际内存消耗。 如何使用metrics server API获取分配给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
我正在开发一个仪表板,在其中我需要展示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"
}