即使添加了额外的Kubernetes节点,我仍然看到新的节点未使用,同时出现错误“没有与所有谓词匹配的节点可用:

时间:2018-07-23 09:29:29

标签: amazon-web-services kubernetes kubernetes-helm kops

我们尝试在计划在4个节点和1个主节点集群上部署的现有Pod组合中添加另外2个Pod的部署。我们收到以下错误: 没有与所有谓词匹配的节点可用:cpu不足(4),内存不足(1),PodToleratesNodeTaints(2)。

查看其他线程和文档,当现有节点超过cpu容量(在4个节点上)和内存容量(在1个节点上)时就是这种情况...

为解决资源问题,我们添加了另一个节点并重新部署了这些位。但是仍然看到相同的问题,并且看到几乎未使用的节点。 (请参阅下面的节点5,但当节点2和节点4被过度分配时,在添加失败的新容器之后,节点1和3将被过度分配)

  

节点名| CPU请求(核心)| CPU限制(核心)|记忆体要求   (字节)|内存限制(字节)|年龄

     

node-5 | 0.11(5.50%)| 0(0.00%)| 50英里(1.26%)| 50英里(1.26%)| 3   小时

     

node-4 | 1.61(80.50%)| 2.8 (140.00%) | 2.674 Gi(69.24%)| 4.299吉   (111.32%) | 7天

     

node-3 | 1.47(73.50%)| 1.7 (85.00%) | 2.031 Gi(52.60%)| 2.965吉   (76.78%)| 7个月

     

node-2 | 1.33(66.50%)| 2.1 (105.00%) | 2.684 Gi(69.49%)| 3.799吉   (98.37%)| 7个月

     

node-1 | 1.48(74.00%)| 1.4 (70.00%) | 1.705 Gi(44.15%)| 2.514焦耳   (65.09%)| 7个月

     

主| 0.9(45.00%)| 0.1(5.00%)| 350英里(8.85%)| 300英里(7.59%)   | 7个月

请注意,我们已启用自动缩放(限制为8个节点)。 (客户端版本为v1.9.0,而我们的kubernetes服务器版本为v1.8.4)。我们正在使用头盔进行部署,并使用kops添加新节点。

为什么没有安排Pod,以便每个节点的容量都低于容量?为什么会看到错误和一个完全未使用的节点?

1 个答案:

答案 0 :(得分:0)

弄清楚发生了什么。这是我们认为发生了什么...

  1. 我们使用kops添加了一个新节点(第5个)。
  2. 当时我们正在运行的集群自动缩放器的节点设置为最小4和最大8。因此,很可能它发现该节点没有用,并向其添加了污点,如下所示:
  

污染:ToBeDeletedByClusterAutoscaler = 1532321512:NoSchedule

  1. 因此,即使我们尝试部署和重新部署服务,也不会因为此污点而将任何Pod调度到该节点。

然后我们使用最小= 5和最大= 8的新值重新部署自动缩放器。

然后我们移除了此污点并重新部署,第5个节点未被利用的问题就消失了。因此,现在有足够的节点资源,因此我们没有收到所得到的错误。

不确定为什么自动缩放器会用此污点标记新节点。这是另一天的问题,或者可能是k8s自动定标器中的错误。但是,该问题已通过在新节点上删除该污点而解决。