每个节点的CPU /内存请求和限制

时间:2018-08-01 01:10:15

标签: kubernetes kubernetes-apiserver

#container for key, value in foo &[data-tag={key}] applyStyles(value) for key2, value2 in foo unless key1 === key2 &[data-tag*={key}][data-tag*={key2}] applyStyles(blend(value, value2)) 提供有关请求和资源限制(例如CPU和内存)的信息。但是,api端点kubectl describe nodes不提供此信息。

或者,我也可以点击api/v1/nodes端点以获取每个Pod的信息,这些信息可以在节点之间累积。但是是否已经有一个kubernetes API端点提供有关cpu /内存请求和每个节点限制的信息?

1 个答案:

答案 0 :(得分:1)

根据我在文档中找到的内容,负责该工作的端点是Kubernetes API Server。

  

CPU 内存都是资源类型。资源类型具有基本单位。 CPU以内核为单位指定,内存为   以字节为单位指定。

     

CPU和内存统称为计算资源,   或只是资源。计算资源是可衡量的数量,   可以被请求,分配和使用。它们与   API resources。   API资源,例如Pods和Services   是可以通过Kubernetes API读取和修改的对象   服务器。

进一步介绍什么是节点:

  

podsservices不同,节点不是Kubernetes固有创建的:它是由Google Compute Engine等云提供商在外部创建的,或者存在于您的物理机或虚拟机池中。这意味着Kubernetes创建节点时,实际上只是在创建代表该节点的对象。创建后,Kubernetes将检查该节点是否有效。   [...]   当前,有三个与Kubernetes节点接口交互的组件:节点控制器,kubelet和kubectl。   [...]   节点的容量(CPU数量和内存量)是节点对象的一部分。通常,节点在创建节点对象时会注册自己并报告其容量。如果您要进行manual node administration,则在添加节点时需要设置节点容量。

     

Kubernetes调度程序确保有足够的资源用于   节点上的所有Pod。它检查以下请求的总和   节点上的容器不大于节点容量。它   包括所有由kubelet启动的容器,但不包括容器   由Docker直接启动,也没有不在容器中的进程。

编辑:

  

或者,我也可以点击api / v1 / pods端点来获取此信息   我可以跨节点累积的每个Pod信息。

这是按其工作顺序的实际说明。

  

但是已经有一个kubernetes API端点提供了   有关CPU /内存请求和每个节点限制的信息?   这个问题的答案是否定的,没有。

不幸的是,没有端点可以直接获取该信息。 Kubectl使用多个请求来显示节点的描述。您可以通过kubectl -v 8 describe nodes进行检查:

运行kubectl -v=8 describe nodes时,您可以按以下顺序看到GET调用:

/api/v1/nodes?includeUninitialized=true    
/api/v1/nodes/minikube
/api/v1/pods
/api/v1/events?fieldSelector