Kubenets——0/3 nodes are available: 1 Insufficient cpu, 2 node(s) didn‘t match Pod‘s node affinity...

在Kubernetes环境中,由于njoffice04节点CPU资源紧张,导致指定部署的Pod无法正常启动。文章提到的解决方案包括清理已有对象以释放资源,扩容集群,或调整Deployment的资源请求。通过修改Pod的资源请求值,可以避免‘Insufficientcpu’和‘nodeaffinity/selector’匹配错误,从而成功部署Pod。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题0/3 nodes are available: 1 Insufficient cpu, 2 node(s) didn’t match Pod’s node affinity/selector.
就是 cpu 不足导致的问题。
用的是 kubesphere 可视化界面,我需要部署的 pod 只需要 4 cpu,看下图剩余的 cpu 明显够,但一部署就报错。
在这里插入图片描述
在 Linux 中查看实际剩余的 cpu

kubectl describe node |grep -E '((Name|Roles):\s{6,})|(\s+(memory|cpu)\s+[0-9]+\w{0,2}.+%\))'

在这里插入图片描述
我要部署的 pod 指定部署到 njoffice04 这个点,看到已用了44987m (94%),机器是 48 核的,也就是 48000m。那现在就只剩下 3013m,小于我现在要部署的 pod 需要的 4000m,所以会报错。
另外补充一下:虽然另外两个节点剩余的 cpu 充足,但因为我指定部署到 njoffice04,所以报错信息里有下面内容

2 node(s) didn't match Pod's node affinity/selector.

解决故障

找到了报错原因,那解决这个故障也就很容易了。以下三个方法都可以消除报错,并实现 deployment 的安装:

  1. 清理已安装的 k8s 对象,既可以删除一部分,也可以将某些对象的 requests 的值换成一个更小的数。
  2. 扩容 k8s 集群。
  3. 修改待安装的 deployment 的 requests 的值,减少申明的所需内存。

参考:https://blog.youkuaiyun.com/monarch91/article/details/124952023

当遇到 "0/1 nodes are available: 1 Insufficient nvidia.com/gpu. preemption: 0/1 nodes are available: 1 No preemption victims found for incoming pod." 这样的错误时,说明有一个节点上GPU资源不足以满足即将调度的Pod的需求。这是因为该节点没有足够的nvidia GPU资源来运行具有特定需求的容器。 解决这个问题的步骤通常包括: 1. **确认Pod的GPU请求**[^2]:查看受影响的Pod配置,确认它是否指定了对GPU(如NVIDIA Tesla)的数量或类型有特定的资源请求。 ```yaml apiVersion: v1 kind: Pod metadata: name: my-gpu-pod spec: containers: - name: my-container image: my-image resources: requests: nvidia.com/gpus: 1 ``` 2. **检查集群资源分配**:确保有足够的GPU资源供应给节点。这可以通过`kubectl get nodes -o wide`命令查看每个节点的资源配置,特别是GPU。 3. **更新或调整Node的标签或Taints**:如果发现某个节点上的GPU资源已满,可以考虑更新其标签或添加Taint以阻止其他对GPU敏感的Pod在其上运行,直到有足够的资源释放出来。 ```shell kubectl taint nodes <node-name> nvidia.com/gpu=true:NoSchedule ``` 4. **调整Pod的优先级或反亲和性**:如果GPU资源不是必需的,可以降低Pod的优先级,使其更容易被预调度到其他节点。或者,如果你设置了Pod的反亲和性规则,确保这些规则允许Pod在非首选的节点上运行。 5. **如有必要,扩容GPU资源**:如果长期缺乏GPU资源,可能需要扩大集群规模或增加硬件设备。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值