Workload-aware scheduling

워크로드 인식 스케줄링

Schedule related pods as a group when they need to start together.

···
html
<div class="stage" data-phase="0"><div class="title">GROUP SCHEDULING · NEED 2 SLOTS</div><div class="row workers"><div class="panel worker">worker A</div><div class="panel worker">worker B</div></div><div class="row nodes"><div class="panel node">node 1<br><span>free</span></div><div class="panel node">node 2<br><span>busy</span></div></div><div class="sub">wait for the whole group</div></div>
css
.stage{width:min(94vw,760px);height:min(88vh,330px);padding:clamp(9px,2.6vmin,20px);border:1px solid var(--line);border-radius:14px;background:var(--surface);font:600 clamp(12px,2.5vmin,16px)/1.3 "Pretendard Variable",Pretendard,-apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo",sans-serif;display:flex;flex-direction:column;gap:clamp(6px,1.7vmin,12px);overflow:hidden;position:relative}.stage *{min-width:0}.stage .title{color:var(--accent);font-weight:800}.stage .sub{color:var(--muted)}.stage .row{display:flex;align-items:center;gap:clamp(5px,1.6vmin,12px)}.stage .panel{border:1px solid var(--line);border-radius:8px;background:var(--bg);padding:clamp(6px,1.6vmin,12px)}.stage .mono{font-family:ui-monospace,SFMono-Regular,monospace;font-size:clamp(12px,2.5vmin,15px)}.stage .grow{flex:1}.stage .on{color:var(--accent)}.workers{justify-content:center}.workers .panel{width:35%;text-align:center;border-color:var(--accent-3)}.nodes{flex:1;justify-content:center}.nodes .panel{width:35%;text-align:center}.nodes span{color:var(--muted)}.stage[data-phase="1"] .nodes .node:last-child{border-color:var(--accent)}.stage[data-phase="1"] .nodes .node:last-child span{font-size:0}.stage[data-phase="1"] .nodes .node:last-child span:after{content:'free';font-size:clamp(12px,2.5vmin,16px);color:var(--accent)}.stage[data-phase="2"] .workers .panel{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 18%,var(--surface));transform:translateY(7px)}.stage[data-phase="2"] .nodes .panel{border-color:var(--accent)}
js
const stage=document.querySelector('.stage');let phase=0;function advance(){phase=(phase+1)%3;stage.dataset.phase=String(phase)}const timer=setInterval(advance,1200);stage.addEventListener('pointerdown',()=>{clearInterval(timer);advance()})

Distributed jobs may waste resources if only some workers start while the rest wait. Kubernetes 1.36 Workload and PodGroup APIs express group runtime state and placement rules.

The demo holds two workers until both slots are available, then places them together. The APIs are alpha in 1.36, so plan for change before production adoption.

When to use

Use it when planning batch or training jobs whose workers must start together.

Open as page ↗