Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Expanded pods can still be scheduled to notready clusters #5783

Open
CharlesQQ opened this issue Nov 4, 2024 · 2 comments
Open

Expanded pods can still be scheduled to notready clusters #5783

CharlesQQ opened this issue Nov 4, 2024 · 2 comments
Labels
kind/feature Categorizes issue or PR as related to a new feature.

Comments

@CharlesQQ
Copy link
Member

What would you like to be added:

if bindingSpec.TargetContains(cluster.Name) {
return framework.NewResult(framework.Success)

For clusters where pods already exist, cluster taint constraints will be ignored.

Why is this needed:
Expanded pods should not be scheduled to notready clusters

@CharlesQQ CharlesQQ added the kind/feature Categorizes issue or PR as related to a new feature. label Nov 4, 2024
@RainbowMango
Copy link
Member

I can't get details info about why it is needed, just sharing my understanding of NoSchedule taints.

Echo the definition of Taint Effect No Schedule here:

// Do not allow new pods to schedule onto the node unless they tolerate the taint,
// but allow all pods submitted to Kubelet without going through the scheduler
// to start, and allow all already-running pods to continue running.
// Enforced by the scheduler.
TaintEffectNoSchedule TaintEffect = "NoSchedule"

For Kubernetes, new pods won't be scheduled onto nodes if they cannot tolerate a taint on those nodes.
For Kubernetes, new applications won't be scheduled onto clusters if they cannot tolerate a taint on those clusters.

In Karmada, a cluster will be marked with NoSchedule taints if it becomes unreachable, it doesn't make sense for the scheduler to make the decision that propagate applications or pods to that cluster.

@CharlesQQ
Copy link
Member Author

By default,for a new RB object, taint_toleration plugin will,new applications won't be scheduled onto clusters if they cannot tolerate a taint on those clusters; However, If the application is already running on a tainted cluster, If the application is already running on a tainted cluster and pod expansion occurs, the tainted cluster will not be filtered; as a result, the pod may be expanded on this cluster.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/feature Categorizes issue or PR as related to a new feature.
Projects
Status: No status
Development

No branches or pull requests

2 participants