Kishan Ghetia created YUNIKORN-3448:
---------------------------------------

             Summary: Revert autoscaling state when a scale-up-triggered ask 
loses queue headroom
                 Key: YUNIKORN-3448
                 URL: https://issues.apache.org/jira/browse/YUNIKORN-3448
             Project: Apache YuniKorn
          Issue Type: Improvement
          Components: core - scheduler, shim - kubernetes
            Reporter: Kishan Ghetia


 A pod can become ineligible for scheduling after it has already triggered 
cluster autoscaling.

Timeline:

1. A pod fits its queue and user headroom, but no existing node can accommodate 
it.
2. YuniKorn sends FAILED, the shim marks the pod Unschedulable, and Karpenter 
begins provisioning capacity.
3. YuniKorn sets scaleUpTriggered=true.
4. Before the new node becomes Ready, another allocation consumes the remaining 
queue, parent-queue, or user headroom.
5. The original pod no longer fits headroom, but YuniKorn does not reset 
scaleUpTriggered or change the pod’s Unschedulable status.
6. Karpenter can consequently provision a node that cannot be used by the 
triggering pod. The unused node may later be consolidated.

The expected over-provisioning is likely small, but this can create unnecessary 
capacity and node churn.

 

Proposed behavior:

When a scale-up-triggered ask no longer fits queue or user headroom:

- Reset its scaleUpTriggered state.
- Send an appropriate update to the shim so the pod is no longer presented to 
the autoscaler as Unschedulable.
- Allow the pod to trigger autoscaling again if headroom later becomes 
available and no suitable node exists.

 

Acceptance criteria:

- Cover the transition from autoscaling-eligible to headroom-ineligible.
- Update both the core ask state and Kubernetes pod status.
- Verify that the pod can trigger autoscaling again after regaining headroom.
- Add a test where competing allocations consume headroom while capacity is 
being provisioned.
- Preserve existing outstanding-request headroom accounting.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to