mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-29 06:27:05 +00:00
Merge pull request #110695 from lokichoggio/hpa
code optimization: deal with error first to prevent unnecessary computing
This commit is contained in:
commit
5ade6c833f
@ -71,24 +71,22 @@ func (c *ReplicaCalculator) GetResourceReplicas(ctx context.Context, currentRepl
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return 0, 0, 0, time.Time{}, fmt.Errorf("unable to get pods while calculating replica count: %v", err)
|
return 0, 0, 0, time.Time{}, fmt.Errorf("unable to get pods while calculating replica count: %v", err)
|
||||||
}
|
}
|
||||||
|
if len(podList) == 0 {
|
||||||
itemsLen := len(podList)
|
|
||||||
if itemsLen == 0 {
|
|
||||||
return 0, 0, 0, time.Time{}, fmt.Errorf("no pods returned by selector while calculating replica count")
|
return 0, 0, 0, time.Time{}, fmt.Errorf("no pods returned by selector while calculating replica count")
|
||||||
}
|
}
|
||||||
|
|
||||||
readyPodCount, unreadyPods, missingPods, ignoredPods := groupPods(podList, metrics, resource, c.cpuInitializationPeriod, c.delayOfInitialReadinessStatus)
|
readyPodCount, unreadyPods, missingPods, ignoredPods := groupPods(podList, metrics, resource, c.cpuInitializationPeriod, c.delayOfInitialReadinessStatus)
|
||||||
removeMetricsForPods(metrics, ignoredPods)
|
removeMetricsForPods(metrics, ignoredPods)
|
||||||
removeMetricsForPods(metrics, unreadyPods)
|
removeMetricsForPods(metrics, unreadyPods)
|
||||||
|
if len(metrics) == 0 {
|
||||||
|
return 0, 0, 0, time.Time{}, fmt.Errorf("did not receive metrics for any ready pods")
|
||||||
|
}
|
||||||
|
|
||||||
requests, err := calculatePodRequests(podList, container, resource)
|
requests, err := calculatePodRequests(podList, container, resource)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return 0, 0, 0, time.Time{}, err
|
return 0, 0, 0, time.Time{}, err
|
||||||
}
|
}
|
||||||
|
|
||||||
if len(metrics) == 0 {
|
|
||||||
return 0, 0, 0, time.Time{}, fmt.Errorf("did not receive metrics for any ready pods")
|
|
||||||
}
|
|
||||||
|
|
||||||
usageRatio, utilization, rawUtilization, err := metricsclient.GetResourceUtilizationRatio(metrics, requests, targetUtilization)
|
usageRatio, utilization, rawUtilization, err := metricsclient.GetResourceUtilizationRatio(metrics, requests, targetUtilization)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return 0, 0, 0, time.Time{}, err
|
return 0, 0, 0, time.Time{}, err
|
||||||
|
Loading…
Reference in New Issue
Block a user