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
- type DummyEvictionPlugin
- func (_ DummyEvictionPlugin) GetEvictPods(_ context.Context, _ *pluginapi.GetEvictPodsRequest) (*pluginapi.GetEvictPodsResponse, error)
- func (_ DummyEvictionPlugin) GetTopEvictionPods(_ context.Context, _ *pluginapi.GetTopEvictionPodsRequest) (*pluginapi.GetTopEvictionPodsResponse, error)
- func (_ DummyEvictionPlugin) Name() string
- func (_ DummyEvictionPlugin) Start()
- func (_ DummyEvictionPlugin) ThresholdMet(_ context.Context) (*pluginapi.ThresholdMetResponse, error)
- type EvictionPlugin
- type GracePeriodGetter
- type InitFunc
- type ResourcesEvictionPlugin
- func (b *ResourcesEvictionPlugin) GetEvictPods(_ context.Context, request *pluginapi.GetEvictPodsRequest) (*pluginapi.GetEvictPodsResponse, error)
- func (b *ResourcesEvictionPlugin) GetTopEvictionPods(_ context.Context, request *pluginapi.GetTopEvictionPodsRequest) (*pluginapi.GetTopEvictionPodsResponse, error)
- func (b *ResourcesEvictionPlugin) Name() string
- func (b *ResourcesEvictionPlugin) Start()
- func (b *ResourcesEvictionPlugin) ThresholdMet(ctx context.Context) (*pluginapi.ThresholdMetResponse, error)
- type ResourcesGetter
- type ThresholdGetter
Constants ¶
View Source
const ( MetricsNamePodCount = "pod_count" MetricsNamePodResource = "pod_resource" MetricsNameGetResourceEmpty = "get_resource_empty" )
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) GetEvictPods ¶
func (_ DummyEvictionPlugin) GetEvictPods(_ context.Context, _ *pluginapi.GetEvictPodsRequest) (*pluginapi.GetEvictPodsResponse, error)
func (DummyEvictionPlugin) GetTopEvictionPods ¶
func (_ DummyEvictionPlugin) GetTopEvictionPods(_ context.Context, _ *pluginapi.GetTopEvictionPodsRequest) (*pluginapi.GetTopEvictionPodsResponse, error)
func (DummyEvictionPlugin) Name ¶
func (_ DummyEvictionPlugin) Name() string
func (DummyEvictionPlugin) Start ¶ added in v0.3.0
func (_ DummyEvictionPlugin) Start()
func (DummyEvictionPlugin) ThresholdMet ¶
func (_ DummyEvictionPlugin) ThresholdMet(_ context.Context) (*pluginapi.ThresholdMetResponse, error)
type EvictionPlugin ¶
type EvictionPlugin interface { Name() string endpointpkg.Endpoint }
EvictionPlugin performs eviction actions based on agent resources.
func NewReclaimedResourcesEvictionPlugin ¶
func NewReclaimedResourcesEvictionPlugin(_ *client.GenericClientSet, _ events.EventRecorder, metaServer *metaserver.MetaServer, emitter metrics.MetricEmitter, conf *config.Configuration) EvictionPlugin
type GracePeriodGetter ¶ added in v0.3.0
type GracePeriodGetter func() int64
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 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, thresholdGetter ThresholdGetter, gracePeriodGetter GracePeriodGetter, skipZeroQuantityResourceNames sets.String, podFilter func(pod *v1.Pod) (bool, error)) *ResourcesEvictionPlugin
func (*ResourcesEvictionPlugin) GetEvictPods ¶
func (b *ResourcesEvictionPlugin) GetEvictPods(_ context.Context, request *pluginapi.GetEvictPodsRequest) (*pluginapi.GetEvictPodsResponse, error)
func (*ResourcesEvictionPlugin) GetTopEvictionPods ¶
func (b *ResourcesEvictionPlugin) GetTopEvictionPods(_ context.Context, request *pluginapi.GetTopEvictionPodsRequest) (*pluginapi.GetTopEvictionPodsResponse, error)
func (*ResourcesEvictionPlugin) Name ¶
func (b *ResourcesEvictionPlugin) Name() string
func (*ResourcesEvictionPlugin) Start ¶ added in v0.3.0
func (b *ResourcesEvictionPlugin) Start()
func (*ResourcesEvictionPlugin) ThresholdMet ¶
func (b *ResourcesEvictionPlugin) ThresholdMet(ctx context.Context) (*pluginapi.ThresholdMetResponse, error)
ThresholdMet evict pods when the beset effort resources usage is greater than the supply (after considering toleration).
type ResourcesGetter ¶
type ResourcesGetter func(ctx context.Context) (v1.ResourceList, error)
type ThresholdGetter ¶ added in v0.2.0
type ThresholdGetter func(resourceName v1.ResourceName) float64
Click to show internal directories.
Click to hide internal directories.