Help Center/ Ubiquitous Cloud Native Service/ FAQs/ Fleets/ Why Can't a Workload Be Distributed When the Scheduling Policy Is in Lazy Mode?
Updated on 2025-07-29 GMT+08:00

Why Can't a Workload Be Distributed When the Scheduling Policy Is in Lazy Mode?

Symptom

  1. After a workload is created using kubectl, you have created a scheduling policy (PropagationPolicy or ClusterPropagationPolicy) that will be applied later (in lazy mode), but the workload is not distributed due to the lazy mode.
  2. After the scheduling policy created in 1 is deleted and a scheduling policy (PropagationPolicy or ClusterPropagationPolicy) that will be applied immediately (not in lazy mode) is created, the workload is still not distributed as expected.

Possible Cause

After a workload is created, it enters Karmada's waiting queue. After a lazy-mode scheduling policy is created, the workload is removed from the waiting queue and bound to the scheduling policy. However, no ResourceBinding is generated. In Karmada, when a scheduling policy is deleted, the ResourceBinding is queried first, and then the workload. As a result, the workload cannot be deleted or enter the waiting queue. This means the lazy-mode scheduling policy cannot be completely deleted. When a non-lazy-mode scheduling policy is created, the workload is not in the waiting queue. In this case, the workload cannot be bound to the new scheduling policy immediately. The workload can be bound to the new scheduling policy and distributed only when it changes.

Solution

Modify the parameters in the YAML file of the workload to change the workload and trigger the scheduling. For example, you can add labels and annotations to the workload and redeploy the workload to trigger scheduling.

Operation Example

  1. Create a scheduling policy that will be applied effect later.

  2. Create a workload.

  3. Verify that the workload has been distributed.