Kubernetes Python客户端read_node_status()没有提供准确的可分配资源

时间:2018-06-22 18:45:23

标签: python api kubernetes

我正在使用2.0和6.0的Kubernetes v1.7和Python Client。根据此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时,它显示的容量与错误的容量相同。如何获得节点的可分配/可用资源的准确值?

1 个答案:

答案 0 :(得分:0)

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的更多数据,这些数据使用了无法计划的GPU和Pod。也许是由于其他原因导致的,而不是因为GPU。