Merge pull request #777 from Garrybest/pr_pod_estimator

add pod constraint in general estimator
This commit is contained in:
karmada-bot 2021-10-02 18:01:42 +08:00 committed by GitHub
commit b961a7e976
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 8 additions and 4 deletions

View File

@ -1,8 +1,6 @@
package client
import (
"math"
corev1 "k8s.io/api/core/v1"
clusterv1alpha1 "github.com/karmada-io/karmada/pkg/apis/cluster/v1alpha1"
@ -33,13 +31,19 @@ func (ge *GeneralEstimator) MaxAvailableReplicas(clusters []*clusterv1alpha1.Clu
}
func (ge *GeneralEstimator) maxAvailableReplicas(cluster *clusterv1alpha1.Cluster, replicaRequirements *workv1alpha2.ReplicaRequirements) int32 {
var maximumReplicas int64 = math.MaxInt32
resourceSummary := cluster.Status.ResourceSummary
if resourceSummary == nil {
return 0
}
allowedPodNumber := resourceSummary.Allocatable.Pods().Value() - resourceSummary.Allocated.Pods().Value() - resourceSummary.Allocating.Pods().Value()
// When too many pods have been created, scheduling will fail so that the allocating pods number may be huge.
// If allowedPodNumber is less than 0, we don't allow more pods to be created.
if allowedPodNumber <= 0 {
return 0
}
maximumReplicas := allowedPodNumber
for key, value := range replicaRequirements.ResourceRequest {
requestedQuantity := value.Value()
if requestedQuantity <= 0 {