plugin

package
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 27, 2023 License: Apache-2.0 Imports: 21 Imported by: 2

Documentation

Overview

Package plugin is the package that defines the eviction strategy, and those strategies must implement EvictPlugin interface, supporting both embedded plugin and external registered plugin.

Index

Constants

View Source
const (
	MetricsNamePodCount         = "pod_count"
	MetricsNamePodResource      = "pod_resource"
	MetricsNameGetResourceEmpty = "get_resource_empty"
)
View Source
const (
	EvictionPluginNameMemoryPressure = "memory-pressure-eviction-plugin"
)
View Source
const ReclaimedResourcesEvictionPluginName = "reclaimed-resource-pressure-eviction-plugin"

Variables

This section is empty.

Functions

This section is empty.

Types

type DummyEvictionPlugin

type DummyEvictionPlugin struct {
	*util.StopControl
}

func (DummyEvictionPlugin) Name

func (_ DummyEvictionPlugin) Name() string

func (DummyEvictionPlugin) ThresholdMet

type EvictionPlugin

type EvictionPlugin interface {
	Name() string
	endpointpkg.Endpoint
}

EvictionPlugin performs eviction actions based on agent resources.

func NewMemoryPressureEvictionPlugin

func NewMemoryPressureEvictionPlugin(_ *client.GenericClientSet, _ events.EventRecorder,
	metaServer *metaserver.MetaServer, emitter metrics.MetricEmitter, conf *config.Configuration) EvictionPlugin

NewMemoryPressureEvictionPlugin returns a new MemoryPressureEvictionPlugin

func NewReclaimedResourcesEvictionPlugin

func NewReclaimedResourcesEvictionPlugin(genericClient *client.GenericClientSet, recorder events.EventRecorder,
	metaServer *metaserver.MetaServer, emitter metrics.MetricEmitter, conf *config.Configuration) EvictionPlugin

type InitFunc

type InitFunc func(genericClient *client.GenericClientSet, recorder events.EventRecorder, metaServer *metaserver.MetaServer,
	emitter metrics.MetricEmitter, conf *config.Configuration) EvictionPlugin

InitFunc is used to initialize a particular innter eviction plugin.

type MemoryPressureEvictionPlugin

type MemoryPressureEvictionPlugin struct {
	*process.StopControl
	// contains filtered or unexported fields
}

MemoryPressureEvictionPlugin implements the EvictPlugin interface. It triggers pod eviction based on the pressure of memory.

func (*MemoryPressureEvictionPlugin) ApplyConfig

ApplyConfig applies config to MemoryPressureEvictionPlugin

func (*MemoryPressureEvictionPlugin) GetEvictPods

func (*MemoryPressureEvictionPlugin) GetTopEvictionPods

GetTopEvictionPods gets topN pods to evict

func (*MemoryPressureEvictionPlugin) Name

Name returns the name of MemoryPressureEvictionPlugin

func (*MemoryPressureEvictionPlugin) ThresholdMet

ThresholdMet determines whether to evict pods based on memory pressure

type ResourcesEvictionPlugin

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

ResourcesEvictionPlugin implements EvictPlugin interface it trigger pod eviction logic based on the tolerance of resources.

func NewResourcesEvictionPlugin

func NewResourcesEvictionPlugin(pluginName string, metaServer *metaserver.MetaServer,
	emitter metrics.MetricEmitter, resourcesGetter ResourcesGetter,
	skipZeroQuantityResourceNames sets.String, podFilter func(pod *v1.Pod) (bool, error),
	threshold map[v1.ResourceName]float64, evictionPodGracefulPeriod int64) *ResourcesEvictionPlugin

func (*ResourcesEvictionPlugin) GetEvictPods

func (*ResourcesEvictionPlugin) GetTopEvictionPods

func (*ResourcesEvictionPlugin) Name

func (b *ResourcesEvictionPlugin) Name() string

func (*ResourcesEvictionPlugin) ThresholdMet

ThresholdMet evict pods when the beset effort resources usage is greater than the supply (after considering toleration).

func (*ResourcesEvictionPlugin) UpdateEvictionThreshold

func (b *ResourcesEvictionPlugin) UpdateEvictionThreshold(threshold map[v1.ResourceName]float64)

type ResourcesGetter

type ResourcesGetter func(ctx context.Context) (v1.ResourceList, error)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL