kubernetes - 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 项目的更多预览版本和它生成的大量目录,这可能变得更加明显。我也不确定詹金斯是否会自行清理。
重新启动节点会有所帮助,但不会持续很长时间。
解决方案
让我们从 Kubernetes 方面来解决这个问题。你可以做一些事情来解决这个问题:
- 正如@Vasily 所提到的,检查是什么导致了节点上的磁盘压力。您可能还需要检查以下日志:
kubeclt logs: kube-scheduler events logs
journalctl -u kubelet: kubelet logs
/var/log/kube-scheduler.log
更多关于为什么下面这些日志。
检查您的驱逐阈值。如果需要,调整 Kubelet 和 Kube-Scheduler 配置。看看他们两个发生了什么(前面提到的日志现在可能有用)。更多信息可以在这里找到
检查你是否有一个正确运行的 Horizontal Pod Autoscaler:
kubectl get hpa
你可以使用标准的 kubectl 命令来设置和管理你的 HPA。最后,您收到的卷相关错误表明我们可能存在 PVC 和/或 PV 问题。确保您的卷与节点位于同一区域。如果要将卷挂载到特定容器,请确保它不是专门附加到另一个容器。更多信息可以在这里和这里找到
我自己没有测试它,因为需要更多信息才能重现整个场景,但我希望上述建议会有用。
请让我知道这是否有帮助。
推荐阅读
- python - 没有for循环的numpy数组
- squish - 什么 Squish 模块包含“nativeType”低级函数?
- ios - 使用 Swift 包管理器添加依赖项
- sharepoint-online - 如何通过代码在线开发sharepoint中的列表
- angular - Angular Material:错误“没有 MatChip 的提供者”
- python - 如何在 Python Tkinter 中为相同的选定文本加粗、斜体和下划线?
- origen-sdk - 有没有办法提取使用 test_ids gem 分配的所有 bin?
- html - 如何定位对所有浏览器做出适当响应的页脚?
- c# - 如何在 WPF 中的 RichTextbox 或 WebBrowser 控件中同时显示 HTML 和纯文本?
- c - 使用 OpenMP 进行合并排序