[Verse 1]
When a pod needs a home in the cluster tonight
The scheduler steps up to make everything right
It scans every node for resources free
CPU and memory, what do we need
Filters out the bad, scores what remains
Picks the highest number, that's where pod stays
[Chorus]
Schedule, filter, score and bind
That's how Kubernetes makes up its mind
Node selector says where you can go
Affinity pulls you close you know
Taints push away, tolerations let you stay
Resource limits guide the scheduling way
[Verse 2]
Node selector is simple, just key-value pairs
Match the label exactly, scheduler declares
But affinity gives you so much more control
Required or preferred, soft goals or hard goals
Pod affinity groups your workloads tight
Anti-affinity spreads them left and right
[Chorus]
Schedule, filter, score and bind
That's how Kubernetes makes up its mind
Node selector says where you can go
Affinity pulls you close you know
Taints push away, tolerations let you stay
Resource limits guide the scheduling way
[Bridge]
Taints are like warnings on nodes that say
"Don't place your pods here unless they're okay"
But tolerations are keys that unlock the door
Let pods run on tainted nodes and so much more
No schedule, prefer no schedule, no execute too
Different effects for what you want to do
[Verse 3]
Resource requests tell the scheduler true
How much CPU and memory you'll use
Quality of service classes three
Guaranteed, burstable, best effort you see
Priority classes can jump the line
Higher numbers scheduled first every time
[Chorus]
Schedule, filter, score and bind
That's how Kubernetes makes up its mind
Node selector says where you can go
Affinity pulls you close you know
Taints push away, tolerations let you stay
Resource limits guide the scheduling way
[Outro]
From pending to running, the journey complete
The scheduler's magic makes everything neat
Your pods find their home in the cluster so wide
Thanks to the rules and the scheduling guide