Kubernetes Python Client read_node_status() 不提供准确的可分配资源



我正在使用Kubernetes v1.7和Python Client 2.0和6.0。根据此 V1NodeStatus,read_node_status(( 应返回节点的容量和可分配资源。我有几个作业,pod 正在 GPU 机器上运行。此外,还有一些待处理的作业无法为资源不足(即 gpu(安排。当我像这样检查节点的值时

api_response = v1.read_node_status(node)
print api_response.status.capacity

输出

{u'alpha.kubernetes.io/nvidia-gpu': '2', u'pods': '110', u'cpu': '40', u'memory': '65589120Ki'}

我看到报告了节点的适当容量。但是,当我打印api_response.status.allocatable时,它显示的容量与错误的容量相同。如何获取节点可分配/可用资源的准确值?

v1.read_node_status(node)

在后台执行以下请求:

GET http://apiserver:port/api/v1/nodes/{name}/status

您可以使用以下命令检查源信息:

kubectl proxy &
curl http://127.0.0.1:8001/api/v1/nodes/YOUR_NODE_NAME/status

如果你在"allocatable"部分看到你从python客户端获得的相同值,你的代码很好。

为了调查为什么会有这种状态,最好看到更多关于 pod 的数据,这些 Pod 使用无法调度的 GPU 和 Pod。也许它发生是出于其他原因,而不是因为 GPU。

最新更新