2

kubectl describe nodes提供有关 CPU 和内存等资源的请求和限制的信息。但是,api 端点api/v1/nodes不提供此信息。

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

4

1 回答 1

3

从我在文档中找到的内容来看,负责的端点是 Kubernetes API 服务器。

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

CPU 和内存统称为 计算资源,或者只是 资源。计算资源是可以请求、分配和消耗的可测量数量。它们不同于 API 资源。API 资源,例如 Pod 和Services 是可以通过 Kubernetes API 服务器读取和修改的对象。

进一步了解什么是节点:

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

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
于 2018-08-01T16:47:37.700 回答