kubernetesk8s.io/kubernetes/pkg/controller/podautoscaler Index | Files | Directories

package podautoscaler

import "k8s.io/kubernetes/pkg/controller/podautoscaler"

Package podautoscaler contains logic for autoscaling number of pods based on metrics observed.

Index

Functions

func UnsafeConvertToVersionVia

func UnsafeConvertToVersionVia(obj runtime.Object, externalVersion schema.GroupVersion) (runtime.Object, error)

ConvertToVersionVia is like api.Scheme.ConvertToVersion, but it does so via an internal version first. We use it since working with v2alpha1 is convinient here, but we want to use the v1 client (and can't just use the internal version). Note that it does *not* guarantee a copy is made -- this should be done separately if we need to mutate the object.

Types

type HorizontalController

type HorizontalController struct {
	// contains filtered or unexported fields
}

func NewHorizontalController

func NewHorizontalController(
	evtNamespacer v1core.EventsGetter,
	scaleNamespacer extensionsclient.ScalesGetter,
	hpaNamespacer autoscalingclient.HorizontalPodAutoscalersGetter,
	replicaCalc *ReplicaCalculator,
	hpaInformer autoscalinginformers.HorizontalPodAutoscalerInformer,
	resyncPeriod time.Duration,
) *HorizontalController

func (*HorizontalController) Run

func (a *HorizontalController) Run(stopCh <-chan struct{})

type ReplicaCalculator

type ReplicaCalculator struct {
	// contains filtered or unexported fields
}

func NewReplicaCalculator

func NewReplicaCalculator(metricsClient metricsclient.MetricsClient, podsGetter v1coreclient.PodsGetter) *ReplicaCalculator

func (*ReplicaCalculator) GetMetricReplicas

func (c *ReplicaCalculator) GetMetricReplicas(currentReplicas int32, targetUtilization int64, metricName string, namespace string, selector labels.Selector) (replicaCount int32, utilization int64, timestamp time.Time, err error)

GetMetricReplicas calculates the desired replica count based on a target metric utilization (as a milli-value) for pods matching the given selector in the given namespace, and the current replica count

func (*ReplicaCalculator) GetObjectMetricReplicas

func (c *ReplicaCalculator) GetObjectMetricReplicas(currentReplicas int32, targetUtilization int64, metricName string, namespace string, objectRef *autoscaling.CrossVersionObjectReference) (replicaCount int32, utilization int64, timestamp time.Time, err error)

GetObjectMetricReplicas calculates the desired replica count based on a target metric utilization (as a milli-value) for the given object in the given namespace, and the current replica count.

func (*ReplicaCalculator) GetRawResourceReplicas

func (c *ReplicaCalculator) GetRawResourceReplicas(currentReplicas int32, targetUtilization int64, resource v1.ResourceName, namespace string, selector labels.Selector) (replicaCount int32, utilization int64, timestamp time.Time, err error)

GetRawResourceReplicas calculates the desired replica count based on a target resource utilization (as a raw milli-value) for pods matching the given selector in the given namespace, and the current replica count

func (*ReplicaCalculator) GetResourceReplicas

func (c *ReplicaCalculator) GetResourceReplicas(currentReplicas int32, targetUtilization int32, resource v1.ResourceName, namespace string, selector labels.Selector) (replicaCount int32, utilization int32, rawUtilization int64, timestamp time.Time, err error)

GetResourceReplicas calculates the desired replica count based on a target resource utilization percentage of the given resource for pods matching the given selector in the given namespace, and the current replica count

Source Files

doc.go horizontal.go replica_calculator.go

Directories

PathSynopsis
pkg/controller/podautoscaler/metrics
Version
v1.6.0-beta.0
Published
Feb 22, 2017
Platform
js/wasm
Imports
26 packages
Last checked
34 seconds ago

Tools for package owners.