`Pod didn't trigger scale-up` should specify needs
Author: jsorefCreated Sep 17, 2026Updated Sep 17, 2026
Labelskind/bugneeds-signeeds-triage
What happened?
Pod didn't trigger scale-up: 9 node(s) didn't match Pod's node affinity/selector, 3 Insufficient cpu, 3 node(s) had untolerated taint(s), 3 in backoff after failed scale-up
What did you expect to happen?
- When
cpuis insufficient, the event should include the required cpu (note that this is often the sum of a number of containers, and thus something that kubernetes calculated but not something easily seen when looking at a pod) - When
memoryis insufficient, the event should include the required memory (note that this is often the sum of a number of containers, and thus something that kubernetes calculated but not something easily seen when looking at a pod) - When
taintis untolerated, if there is only one (or maybe two), list it - When
node affinity/node selectorisn't matched and there is only one (or maybe two), list it
How can we reproduce it (as minimally and precisely as possible)?
define a pod
apiVersion: v1
kind: Pod
metadata:
name: unhappy
spec:
affinity:
podAntiAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
- podAffinityTerm:
labelSelector:
matchLabels:
app.kubernetes.io/name: something
topologyKey: kubernetes.io/hostname
weight: 100
containers:
- image: bash
name: main
resources:
limits:
cpu: "5"
memory: 5Gi
requests:
cpu: "2"
memory: 5Gi
- image: bash
name: sidecar-a
resources:
limits:
cpu: 700m
memory: 1500Mi
requests:
cpu: 300m
memory: 1500Mi
- image: bash
name: sidecar-b
resources:
limits:
cpu: 630m
memory: 1800Mi
requests:
cpu: 350m
memory: 1450Mi
initContainers:
- args:
- sleep 3
command:
- sh
- -c
image: bash
name: init-1
resources:
limits:
cpu: "5"
memory: 5Gi
requests:
cpu: "2"
memory: 5Gi
- args:
- sleep 3
command:
- sh
- -c
image: bash
name: init-2
resources:
limits:
cpu: "4"
memory: 6Gi
requests:
cpu: "1"
memory: 3Gi
nodeSelector:
jam: "1"
tolerations:
- effect: NoSchedule
key: milk
operator: Exists
- effect: NoExecute
key: node.kubernetes.io/not-ready
operator: Exists
tolerationSeconds: 300
- effect: NoExecute
key: node.kubernetes.io/unreachable
operator: Exists
tolerationSeconds: 300
create some nodes that don't perfectly match the requirements.
run:
kubectl events unhappy
trying to figure out why the pod won't work.
- Knowing which selectors/affinities were relevant would help with deciding which node(pool)s to fix
- Knowing the exact required memory/cpu would help with fixing a node(pool) to satisfy the requirements
Anything else we need to know?
No response
Kubernetes version
Client Version: v1.36.2
Kustomize Version: v5.8.1
Server Version: v1.35.7-gke.1222000
Cloud provider
GoogleOS version
No response
Install tools
No response
Container runtime (CRI) and version (if applicable)
No response
Related plugins (CNI, CSI, ...) and versions (if applicable)
No response
Source: kubernetes/kubernetes