Hasty Briefsbeta

双语

Runc breaks pods when CPU requests aren't multiples of 10

4 months ago
  • #containerd
  • #cgroup
  • #kubernetes
  • Pod创建因containerd对4096m CPU限制的非确定性计算(409600或410000微秒)而间歇性失败。
  • runc始终计算为410000微秒,当containerd选择409600时导致不匹配,引发内核拒绝。
  • 问题表现为节点特异性:当containerd选择409600的节点会卡死,后续所有Pod创建均失败。
  • 调查显示containerd将毫核转换为微秒时存在非确定性行为,与runc的固定舍入方式不同。
  • 关键影响:非确定性Pod调度、需人工干预的节点瘫痪、Amazon EKS集群生产事故。
  • 根本原因:containerd与runc的CPU配额计算缺乏一致性,需确保确定性行为。