<svg xmlns="http://www.w3.org/2000/svg" width="1200" height="675" viewBox="0 0 1200 675" preserveAspectRatio="xMidYMid meet" role="img" aria-labelledby="title desc" data-image-type="scheduler-stage-flow">
  <title id="title">kube-scheduler调度与绑定阶段清单</title>
  <desc id="desc">image_type=阶段清单图/调度框架总览图；target_section=调度框架把一次调度拆成多个扩展点；用途=用纯文本清单说明QueueSort、PreFilter、Filter、Score、Reserve、Permit、PreBind、Bind、PostBind的阶段关系；关键术语=QueueSort、PreFilter、Filter、Score、Reserve、Permit、PreBind、Bind、PostBind；reader_task=理解Pod调度由调度周期与绑定周期串联完成。visual_precheck=text_checklist,no_cards,no_arrows,no_transform_layout,text_inside_safe_area,thumbnail_safe_area.</desc>
  <defs>
    <style><![CDATA[
      text{font-family:system-ui,Arial,Helvetica,"Microsoft YaHei","PingFang SC",sans-serif;fill:#111827}.title{font-size:30px;font-weight:700}.sub{font-size:18px;fill:#475569}.section{font-size:24px;font-weight:700;fill:#3730a3}.item{font-size:19px;fill:#1f2937}.hint{font-size:17px;fill:#334155}.dot{fill:#6366f1}.dot2{fill:#16a34a}.line{stroke:#c7d2fe;stroke-width:2}.line2{stroke:#bbf7d0;stroke-width:2}
    ]]></style>
  </defs>
  <rect width="1200" height="675" fill="#f8fafc"/>
  <text x="600" y="76" text-anchor="middle" class="title">kube-scheduler把一次Pod调度拆成两段</text>
  <text x="600" y="112" text-anchor="middle" class="sub">先决定目标节点，再处理预留、等待、绑定和后置清理</text>
  <text x="170" y="178" class="section">调度周期：决定目标节点</text>
  <line x1="170" y1="202" x2="1030" y2="202" class="line"/>
  <circle cx="190" cy="250" r="10" class="dot"/><text x="225" y="257" class="item">1. QueueSort：决定Pod从队列中被取出的顺序。</text>
  <circle cx="190" cy="315" r="10" class="dot"/><text x="225" y="322" class="item">2. PreFilter：提前准备资源、亲和性和拓扑上下文。</text>
  <circle cx="190" cy="380" r="10" class="dot"/><text x="225" y="387" class="item">3. Filter：排除不满足硬约束的节点。</text>
  <circle cx="190" cy="445" r="10" class="dot"/><text x="225" y="452" class="item">4. Score：在可用节点中按偏好和权重排序。</text>
  <text x="650" y="178" class="section">绑定周期：保证状态可控</text>
  <line x1="650" y1="202" x2="1030" y2="202" class="line2"/>
  <circle cx="670" cy="250" r="10" class="dot2"/><text x="705" y="257" class="item">5. Reserve / Permit：预留、允许或等待。</text>
  <circle cx="670" cy="315" r="10" class="dot2"/><text x="705" y="322" class="item">6. PreBind / Bind：完成绑定前准备并写入结果。</text>
  <circle cx="670" cy="380" r="10" class="dot2"/><text x="705" y="387" class="item">7. PostBind / Unreserve：处理后置动作或撤销预留。</text>
  <text x="600" y="580" text-anchor="middle" class="hint">Filter判断能不能运行，Score判断在哪个可用节点更合适。</text>
  <text x="600" y="616" text-anchor="middle" class="hint">排查Pod Pending时，先判断失败发生在调度周期还是绑定周期。</text>
</svg>
