Documentation ¶
Index ¶
- Variables
- func ClearQOSGreyCtrlPlugin()
- func InjectQOSGreyCtrlPlugins(pod *corev1.Pod, policyType QOSPolicyType, policy *interface{}) bool
- func RegisterQOSExtPlugin(feature featuregate.Feature, featureSpec featuregate.FeatureSpec, ...) error
- func RegisterQOSGreyCtrlPlugin(name string, plugin QOSGreyControlPlugin) error
- func RunQOSGreyCtrlPlugins(client clientset.Interface, stopCh <-chan struct{})
- func SetupPlugins(client clientset.Interface, metricCache metriccache.MetricCache, ...)
- func StartPlugins(cfg *QOSExtensionConfig, stopCh <-chan struct{}) error
- func UnregisterQOSGreyCtrlPlugin(name string)
- type Config
- type Context
- type Evictor
- func (r *Evictor) EvictPodIfNotEvicted(evictPod *corev1.Pod, node *corev1.Node, reason string, message string) bool
- func (r *Evictor) EvictPodsIfNotEvicted(evictPods []*corev1.Pod, node *corev1.Node, reason string, message string)
- func (r *Evictor) IsPodEvicted(pod *corev1.Pod) bool
- func (r *Evictor) Start(stopCh <-chan struct{}) error
- type ExtensionPlugin
- type Options
- type QOSExtensionConfig
- type QOSGreyControlPlugin
- type QOSPolicyType
- type QOSStrategy
- type QOSStrategyFactory
Constants ¶
This section is empty.
Variables ¶
View Source
var ( DefaultMutableQOSExtPluginFG featuregate.MutableFeatureGate = featuregate.NewFeatureGate() DefaultQOSExtPluginsFG featuregate.FeatureGate = DefaultMutableQOSExtPluginFG )
Functions ¶
func ClearQOSGreyCtrlPlugin ¶
func ClearQOSGreyCtrlPlugin()
func InjectQOSGreyCtrlPlugins ¶
func InjectQOSGreyCtrlPlugins(pod *corev1.Pod, policyType QOSPolicyType, policy *interface{}) bool
func RegisterQOSExtPlugin ¶
func RegisterQOSExtPlugin(feature featuregate.Feature, featureSpec featuregate.FeatureSpec, plugin ExtensionPlugin) error
func RegisterQOSGreyCtrlPlugin ¶
func RegisterQOSGreyCtrlPlugin(name string, plugin QOSGreyControlPlugin) error
func RunQOSGreyCtrlPlugins ¶
func SetupPlugins ¶
func SetupPlugins(client clientset.Interface, metricCache metriccache.MetricCache, statesInformer statesinformer.StatesInformer)
func StartPlugins ¶
func StartPlugins(cfg *QOSExtensionConfig, stopCh <-chan struct{}) error
func UnregisterQOSGreyCtrlPlugin ¶
func UnregisterQOSGreyCtrlPlugin(name string)
Types ¶
type Config ¶
type Config struct { ReconcileIntervalSeconds int CPUSuppressIntervalSeconds int CPUEvictIntervalSeconds int MemoryEvictIntervalSeconds int MemoryEvictCoolTimeSeconds int CPUEvictCoolTimeSeconds int OnlyEvictByAPI bool QOSExtensionCfg *QOSExtensionConfig }
func NewDefaultConfig ¶
func NewDefaultConfig() *Config
type Context ¶
type Context struct { Evictor *Evictor Strategies map[string]QOSStrategy }
type Evictor ¶
type Evictor struct {
// contains filtered or unexported fields
}
func NewEvictor ¶
func (*Evictor) EvictPodIfNotEvicted ¶ added in v1.5.0
func (*Evictor) EvictPodsIfNotEvicted ¶
type ExtensionPlugin ¶
type ExtensionPlugin interface { InitFlags(fs *flag.FlagSet) Setup(client clientset.Interface, metricCache metriccache.MetricCache, statesInformer statesinformer.StatesInformer) Run(stopCh <-chan struct{}) }
type Options ¶
type Options struct { CgroupReader resourceexecutor.CgroupReader StatesInformer statesinformer.StatesInformer MetricCache metriccache.MetricCache EventRecorder record.EventRecorder KubeClient clientset.Interface EvictVersion string Config *Config MetricAdvisorConfig *ma.Config }
type QOSExtensionConfig ¶
func (*QOSExtensionConfig) InitFlags ¶
func (c *QOSExtensionConfig) InitFlags(fs *flag.FlagSet)
type QOSGreyControlPlugin ¶
type QOSPolicyType ¶
type QOSPolicyType string
const ( QOSPolicyCPUBurst QOSPolicyType = "CPUBurst" QOSPolicyMemoryQOS QOSPolicyType = "MemoryQOS" )
type QOSStrategy ¶
type QOSStrategyFactory ¶
type QOSStrategyFactory = func(opt *Options) QOSStrategy
Click to show internal directories.
Click to hide internal directories.