当我尝试使用十个副本部署一个部署时,出现此错误。
0/2节点可用:1内存不足,1个节点有豆荚不能忍受的污点。
我不明白为什么要两个节点。是同一节点又是同一问题。
我有很多可用的RAM(1GB)。
我如何解决此错误而无需添加另一个节点。
我在部署yaml文件中有以下资源:
限制:cpu:1000m内存:1000Mi请求:cpu:100m内存:200Mi
服务器:
主:
CPU: 2
RAM: 2 - 1 Free
Run Code Online (Sandbox Code Playgroud)奴隶:
CPU: 2
RAM: 2 - 1 Free
Run Code Online (Sandbox Code Playgroud)我认为您在这里有多个问题。
首先了解错误消息的格式
0/2节点可用:1内存不足,1个节点有豆荚不能忍受的污点。
第一件事很清楚,您总共有2个节点,无法对其中任何一个进行调度。然后是阻止在该节点上进行调度的条件列表。一个节点可能会受到多个问题的影响。例如,内存不足和CPU不足。因此,这些数字的总和可能超过您在总节点数上得到的总和。
第二个问题是,您写入YAML文件的请求适用于每个副本。如果使用100M内存实例化同一容器5次,则它们总共需要500M。您要运行10个Pod,每个Pod需要200Mi的内存。因此,您需要2000Mi的可用内存。
您的错误消息已经暗示一个节点上没有足够的内存。我建议您通过检查两个节点,kubectl describe node <node-name>
以找出Kubernetes可以“看到”多少空闲内存。Kubernetes总是阻塞Pod请求的全部内存,无论Pod使用了多少内存。
错误消息中的污点表明另一个节点(可能是主节点)具有污点,而该污点是部署所不能容忍的。有关污点和公差的更多信息,请参见文档。简而言之,找出节点上的哪个污点会阻止调度,并通过删除该污点kubectl taint nodes <node-name> <taint-name>-
。
归档时间: |
|
查看次数: |
3316 次 |
最近记录: |