eviction

package
v0.0.0-...-6410feb Latest Latest
Warning

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

Go to latest
Published: Oct 25, 2024 License: Apache-2.0 Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

OpForSignal maps Signals to ThresholdOperators. Today, the only supported operator is "LessThan".

Functions

This section is empty.

Types

type Config

type Config interface {
	GetHard() ThresholdMap
	String() string
}

Config holds information about how eviction is configured.

func NewConfig

func NewConfig(yamlContent []byte) (Config, error)

type Signal

type Signal string

Signal defines a signal that can trigger eviction of pods on a node.

const (
	// SignalMemoryAvailable is memory available (i.e. capacity - workingSet), in bytes.
	SignalMemoryAvailable Signal = "memory.available"
	// SignalNodeFsAvailable is amount of storage available on filesystem that kubelet uses for volumes, daemon logs, etc.
	SignalNodeFsAvailable Signal = "nodefs.available"
	// SignalNodeFsInodesFree is amount of storage available on filesystem that container runtime uses for storing images and container writable layers.
	SignalNodeFsInodesFree Signal = "nodefs.inodesFree"
	// SignalImageFsAvailable is amount of storage available on filesystem that container runtime uses for storing images and container writable layers.
	SignalImageFsAvailable Signal = "imagefs.available"
	// SignalImageFsInodesFree is amount of inodes available on filesystem that container runtime uses for storing images and container writable layers.
	SignalImageFsInodesFree Signal = "imagefs.inodesFree"
	// SignalAllocatableMemoryAvailable is amount of memory available for pod allocation (i.e. allocatable - workingSet (of pods), in bytes)
	// SignalAllocatableMemoryAvailable Signal = "allocatableMemory.available"
	// SignalPIDAvailable is amount of PID available for pod allocation
	SignalPIDAvailable Signal = "pid.available"
)

type Threshold

type Threshold struct {
	// Signal defines the entity that was measured.
	Signal Signal
	// Operator represents a relationship of a signal to a value.
	Operator ThresholdOperator
	// Value is the threshold the resource is evaluated against.
	Value ThresholdValue
}

Threshold defines a metric for when eviction should occur.

type ThresholdMap

type ThresholdMap map[Signal]*Threshold

func (ThresholdMap) GetImageFsAvailable

func (m ThresholdMap) GetImageFsAvailable() *Threshold

func (ThresholdMap) GetMemoryAvailable

func (m ThresholdMap) GetMemoryAvailable() *Threshold

func (ThresholdMap) GetNodeFsAvailable

func (m ThresholdMap) GetNodeFsAvailable() *Threshold

func (ThresholdMap) GetNodeFsInodesFree

func (m ThresholdMap) GetNodeFsInodesFree() *Threshold

type ThresholdOperator

type ThresholdOperator string

ThresholdOperator is the operator used to express a Threshold.

const (
	// OpLessThan is the operator that expresses a less than operator.
	OpLessThan ThresholdOperator = "LessThan"
)

type ThresholdValue

type ThresholdValue struct {
	// Quantity is a quantity associated with the signal
	Quantity *resource.Quantity
	// Percentage represents the usage percentage over the total resource
	Percentage float32
}

ThresholdValue is a value holder that abstracts literal versus percentage based quantity

Jump to

Keyboard shortcuts

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