首页 > 解决方案 > Jenkins X 构建失败并显示“节点资源不足:[DiskPressure]。”

问题描述

我的 Jenkins X 安装在项目中期,现在变得非常不稳定。(主要是)Jenkins pod 由于磁盘压力而无法启动。

通常,许多 pod 都失败了

节点资源不足:[DiskPressure]。

或者

0/4 个节点可用:1 个 cpu 不足,1 个节点有磁盘压力,2 个节点没有可用的卷区域。无法为 pod“jenkins-x-chartmuseum-blah”挂载卷:等待卷附加或挂载 pod“jx”/“jenkins-x-chartmuseum-blah”的超时已过期。卸载卷列表=[存储卷]。未附加卷列表=[storage-volume default-token-blah] 卷“pvc-blah”的多附加错误卷已独占附加到一个节点,无法附加到另一个节点

node-modules随着 npm 项目的更多预览版本和它生成的大量目录,这可能变得更加明显。我也不确定詹金斯是否会自行清理。

重新启动节点会有所帮助,但不会持续很长时间。

标签: kubernetesjenkins-x

解决方案


让我们从 Kubernetes 方面来解决这个问题。你可以做一些事情来解决这个问题:

  1. 正如@Vasily 所提到的,检查是什么导致了节点上的磁盘压力。您可能还需要检查以下日志:
    • kubeclt logs: kube-scheduler events logs
    • journalctl -u kubelet: kubelet logs
    • /var/log/kube-scheduler.log

更多关于为什么下面这些日志。

  1. 检查您的驱逐阈值。如果需要,调整 Kubelet 和 Kube-Scheduler 配置。看看他们两个发生了什么(前面提到的日志现在可能有用)。更多信息可以在这里找到

  2. 检查你是否有一个正确运行的 Horizo​​ntal Pod Autoscaler:kubectl get hpa 你可以使用标准的 kubectl 命令来设置和管理你的 HPA。

  3. 最后,您收到的卷相关错误表明我们可能存在 PVC 和/或 PV 问题。确保您的卷与节点位于同一区域。如果要将卷挂载到特定容器,请确保它不是专门附加到另一个容器。更多信息可以在这里这里找到

我自己没有测试它,因为需要更多信息才能重现整个场景,但我希望上述建议会有用。

请让我知道这是否有帮助。


推荐阅读