{
  "id": "kubernetes/pod-evicted-due-to-disk-pressure",
  "signature": "Pod status: Evicted — The node was low on resource: disk-pressure",
  "signature_zh": "Pod 状态：已驱逐 — 节点资源不足：磁盘压力",
  "regex": "Pod status: Evicted — The node was low on resource: disk-pressure",
  "domain": "kubernetes",
  "category": "resource_error",
  "subcategory": null,
  "root_cause": "The node's disk usage exceeded a threshold (e.g., 85% or 90%), triggering the kubelet to evict pods to free space.",
  "root_cause_type": "generic",
  "root_cause_zh": "节点的磁盘使用率超过阈值（例如 85% 或 90%），触发 kubelet 驱逐 Pod 以释放空间。",
  "versions": [
    {
      "version": "kubernetes 1.26",
      "introduced": null,
      "deprecated": null,
      "removed": null,
      "behavior_change": null,
      "status": "active"
    },
    {
      "version": "kubernetes 1.27",
      "introduced": null,
      "deprecated": null,
      "removed": null,
      "behavior_change": null,
      "status": "active"
    },
    {
      "version": "kubernetes 1.28",
      "introduced": null,
      "deprecated": null,
      "removed": null,
      "behavior_change": null,
      "status": "active"
    }
  ],
  "os_specific": {},
  "dead_ends": [
    {
      "action": "",
      "why_fails": "The pod will be evicted again immediately if the node's disk pressure persists.",
      "fail_rate": 0.95,
      "condition": "",
      "sources": []
    },
    {
      "action": "",
      "why_fails": "Raising thresholds can lead to node instability and data loss; it only delays the problem.",
      "fail_rate": 0.6,
      "condition": "",
      "sources": []
    },
    {
      "action": "",
      "why_fails": "Restarting kubelet doesn't free disk space; the underlying disk usage issue remains.",
      "fail_rate": 0.9,
      "condition": "",
      "sources": []
    }
  ],
  "workarounds": [
    {
      "action": "SSH into the node and run `df -h` to identify full partitions. Clean up by removing unused container images: `docker system prune -a` or `crictl rmi --prune`. Also check and remove old logs: `journalctl --vacuum-size=500M`.",
      "success_rate": 0.9,
      "how": "SSH into the node and run `df -h` to identify full partitions. Clean up by removing unused container images: `docker system prune -a` or `crictl rmi --prune`. Also check and remove old logs: `journalctl --vacuum-size=500M`.",
      "condition": "",
      "sources": []
    },
    {
      "action": "Use node affinity or taints to move the workload to a node with sufficient disk: `kubectl taint nodes node1 disk-pressure=true:NoSchedule` then reschedule the pod on another node.",
      "success_rate": 0.85,
      "how": "Use node affinity or taints to move the workload to a node with sufficient disk: `kubectl taint nodes node1 disk-pressure=true:NoSchedule` then reschedule the pod on another node.",
      "condition": "",
      "sources": []
    }
  ],
  "workarounds_zh": [
    "SSH 到节点并运行 `df -h` 识别满的分区。通过删除未使用的容器镜像清理：`docker system prune -a` 或 `crictl rmi --prune`。同时检查并删除旧日志：`journalctl --vacuum-size=500M`。",
    "使用节点亲和性或污点将工作负载移动到具有足够磁盘的节点：`kubectl taint nodes node1 disk-pressure=true:NoSchedule` 然后将 Pod 重新调度到另一个节点。"
  ],
  "transition_graph": {
    "leads_to": [],
    "preceded_by": [],
    "frequently_confused_with": []
  },
  "official_doc_url": "https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/",
  "official_doc_section": null,
  "error_code": null,
  "verification_tier": "ai_generated",
  "confidence": 0.9,
  "fix_success_rate": 0.88,
  "resolvable": "true",
  "first_seen": "2023-09-05",
  "last_confirmed": "2024-06-01",
  "last_updated": "2024-06-01",
  "evidence_count": 1,
  "tags": [],
  "locale": "en",
  "aliases": []
}