Documentation ¶
Index ¶
- Constants
- Variables
- func Kind(kind string) schema.GroupKind
- func Resource(resource string) schema.GroupResource
- type DefaultEvictorArgs
- type DeschedulerConfiguration
- type DeschedulerProfile
- type LowNodeLoadArgs
- type LowNodeLoadPodSelector
- type MigrationControllerArgs
- type Namespaces
- type Percentage
- type Plugin
- type PluginConfig
- type PluginSet
- type Plugins
- type PriorityThreshold
- type RemovePodsViolatingNodeAffinityArgs
- type ResourceThresholds
Constants ¶
const ( DefaultDeschedulerPort = 10258 DefaultInsecureDeschedulerPort = 10251 )
const GroupName = "descheduler"
GroupName is the group name use in this package
Variables ¶
var ( SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes) AddToScheme = SchemeBuilder.AddToScheme Scheme = runtime.NewScheme() )
var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: runtime.APIVersionInternal}
SchemeGroupVersion is group version used to register these objects
Functions ¶
func Resource ¶
func Resource(resource string) schema.GroupResource
Resource takes an unqualified resource and returns a Group qualified GroupResource
Types ¶
type DefaultEvictorArgs ¶
type DefaultEvictorArgs struct { metav1.TypeMeta DryRun bool // MaxNoOfPodsToEvictPerNode restricts maximum of pods to be evicted per node. MaxNoOfPodsToEvictPerNode *int // MaxNoOfPodsToEvictPerNamespace restricts maximum of pods to be evicted per namespace. MaxNoOfPodsToEvictPerNamespace *int // EvictFailedBarePods allows pods without ownerReferences and in failed phase to be evicted. EvictFailedBarePods bool // EvictLocalStoragePods allows pods using local storage to be evicted. EvictLocalStoragePods bool // EvictSystemCriticalPods allows eviction of pods of any priority (including Kubernetes system pods) EvictSystemCriticalPods bool // IgnorePVCPods prevents pods with PVCs from being evicted. IgnorePvcPods bool // NodeFit sets whether to consider taints, node selectors, // and pod affinity when evicting. A pod whose tolerations, node selectors, // and affinity match a node other than the one it is currently running on // is evictable. NodeFit bool // PriorityThreshold represents a threshold for pod's priority class. // Any pod whose priority class is lower is evictable. PriorityThreshold *PriorityThreshold // LabelSelector sets whether to apply label filtering when evicting. // Any pod matching the label selector is considered evictable. LabelSelector *metav1.LabelSelector }
DefaultEvictorArgs holds arguments used to configure the DefaultEvictor plugin.
func (*DefaultEvictorArgs) DeepCopy ¶
func (in *DefaultEvictorArgs) DeepCopy() *DefaultEvictorArgs
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DefaultEvictorArgs.
func (*DefaultEvictorArgs) DeepCopyInto ¶
func (in *DefaultEvictorArgs) DeepCopyInto(out *DefaultEvictorArgs)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*DefaultEvictorArgs) DeepCopyObject ¶
func (in *DefaultEvictorArgs) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type DeschedulerConfiguration ¶
type DeschedulerConfiguration struct { metav1.TypeMeta // LeaderElection defines the configuration of leader election client. LeaderElection config.LeaderElectionConfiguration // ClientConnection specifies the kubeconfig file and client connection // settings for the proxy server to use when communicating with the apiserver. ClientConnection config.ClientConnectionConfiguration // DebuggingConfiguration holds configuration for Debugging related features // TODO: We might wanna make this a substruct like Debugging componentbaseconfig.DebuggingConfiguration config.DebuggingConfiguration // HealthzBindAddress is the IP address and port for the health check server to serve on. HealthzBindAddress string // MetricsBindAddress is the IP address and port for the metrics server to serve on. MetricsBindAddress string // Time interval for descheduler to run DeschedulingInterval metav1.Duration // Dry run DryRun bool // Profiles are descheduling profiles that koord-descheduler supports. Profiles []DeschedulerProfile // NodeSelector for a set of nodes to operate over NodeSelector *metav1.LabelSelector }
DeschedulerConfiguration configures a descheduler
func (*DeschedulerConfiguration) DeepCopy ¶
func (in *DeschedulerConfiguration) DeepCopy() *DeschedulerConfiguration
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeschedulerConfiguration.
func (*DeschedulerConfiguration) DeepCopyInto ¶
func (in *DeschedulerConfiguration) DeepCopyInto(out *DeschedulerConfiguration)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*DeschedulerConfiguration) DeepCopyObject ¶
func (in *DeschedulerConfiguration) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type DeschedulerProfile ¶
type DeschedulerProfile struct { Name string PluginConfig []PluginConfig Plugins *Plugins }
DeschedulerProfile is a descheduling profile.
func (*DeschedulerProfile) DeepCopy ¶
func (in *DeschedulerProfile) DeepCopy() *DeschedulerProfile
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeschedulerProfile.
func (*DeschedulerProfile) DeepCopyInto ¶
func (in *DeschedulerProfile) DeepCopyInto(out *DeschedulerProfile)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type LowNodeLoadArgs ¶ added in v1.1.0
type LowNodeLoadArgs struct { metav1.TypeMeta // Paused indicates whether the LoadHotspot should to work or not. // Default is false Paused bool // DryRun means only execute the entire deschedule logic but don't migrate Pod // Default is false DryRun bool // NumberOfNodes can be configured to activate the strategy only when the number of under utilized nodes are above the configured value. // This could be helpful in large clusters where a few nodes could go under utilized frequently or for a short period of time. // By default, NumberOfNodes is set to zero. NumberOfNodes int32 // Naming this one differently since namespaces are still // considered while considering resoures used by pods // but then filtered out before eviction EvictableNamespaces *Namespaces // NodeSelector selects the nodes that matched labelSelector NodeSelector *metav1.LabelSelector // PodSelectors selects the pods that matched labelSelector PodSelectors []LowNodeLoadPodSelector // NodeFit if enabled, it will check whether the candidate Pods have suitable nodes, including NodeAffinity, TaintTolerance, and whether resources are sufficient. // by default, NodeFit is set to true. NodeFit bool // If UseDeviationThresholds is set to `true`, the thresholds are considered as percentage deviations from mean resource usage. // `LowThresholds` will be deducted from the mean among all nodes and `HighThresholds` will be added to the mean. // A resource consumption above (resp. below) this window is considered as overutilization (resp. underutilization). UseDeviationThresholds bool // HighThresholds defines the target usage threshold of resources HighThresholds ResourceThresholds // LowThresholds defines the low usage threshold of resources LowThresholds ResourceThresholds }
func (*LowNodeLoadArgs) DeepCopy ¶ added in v1.1.0
func (in *LowNodeLoadArgs) DeepCopy() *LowNodeLoadArgs
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LowNodeLoadArgs.
func (*LowNodeLoadArgs) DeepCopyInto ¶ added in v1.1.0
func (in *LowNodeLoadArgs) DeepCopyInto(out *LowNodeLoadArgs)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*LowNodeLoadArgs) DeepCopyObject ¶ added in v1.1.0
func (in *LowNodeLoadArgs) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type LowNodeLoadPodSelector ¶ added in v1.1.0
type LowNodeLoadPodSelector struct { Name string // Selector label query over pods for migrated Selector *metav1.LabelSelector }
func (*LowNodeLoadPodSelector) DeepCopy ¶ added in v1.1.0
func (in *LowNodeLoadPodSelector) DeepCopy() *LowNodeLoadPodSelector
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LowNodeLoadPodSelector.
func (*LowNodeLoadPodSelector) DeepCopyInto ¶ added in v1.1.0
func (in *LowNodeLoadPodSelector) DeepCopyInto(out *LowNodeLoadPodSelector)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type MigrationControllerArgs ¶
type MigrationControllerArgs struct { metav1.TypeMeta // DryRun means only execute the entire migration logic except create Reservation or Delete Pod // Default is false DryRun bool // EvictFailedBarePods allows pods without ownerReferences and in failed phase to be evicted. EvictFailedBarePods bool // EvictLocalStoragePods allows pods using local storage to be evicted. EvictLocalStoragePods bool // EvictSystemCriticalPods allows eviction of pods of any priority (including Kubernetes system pods) EvictSystemCriticalPods bool // IgnorePVCPods prevents pods with PVCs from being evicted. IgnorePvcPods bool // LabelSelector sets whether to apply label filtering when evicting. // Any pod matching the label selector is considered evictable. LabelSelector *metav1.LabelSelector // Namespaces carries a list of included/excluded namespaces Namespaces *Namespaces // MaxMigratingPerNode represents he maximum number of pods that can be migrating during migrate per node. MaxMigratingPerNode *int32 // MaxMigratingPerNamespace represents he maximum number of pods that can be migrating during migrate per namespace. MaxMigratingPerNamespace *int32 // MaxMigratingPerWorkload represents he maximum number of pods that can be migrating during migrate per workload. // Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). MaxMigratingPerWorkload *intstr.IntOrString // The unavailable state includes NotRunning/NotReady/Migrating/Evicting // Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). MaxUnavailablePerWorkload *intstr.IntOrString // MaxConcurrentReconciles is the maximum number of concurrent Reconciles which can be run. Defaults to 1. MaxConcurrentReconciles int32 // DefaultJobMode represents the default operating mode of the PodMigrationJob // Default is PodMigrationJobModeReservationFirst DefaultJobMode string // DefaultJobTTL represents the default TTL of the PodMigrationJob // Default is 5 minute DefaultJobTTL metav1.Duration // EvictQPS controls the number of evict per second EvictQPS string // EvictBurst is the maximum number of tokens EvictBurst int32 // EvictionPolicy represents how to delete Pod, support "Delete" and "Eviction", default value is "Eviction" EvictionPolicy string // DefaultDeleteOptions defines options when deleting migrated pods and preempted pods through the method specified by EvictionPolicy DefaultDeleteOptions *metav1.DeleteOptions }
MigrationControllerArgs holds arguments used to configure the MigrationController
func (*MigrationControllerArgs) DeepCopy ¶
func (in *MigrationControllerArgs) DeepCopy() *MigrationControllerArgs
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MigrationControllerArgs.
func (*MigrationControllerArgs) DeepCopyInto ¶
func (in *MigrationControllerArgs) DeepCopyInto(out *MigrationControllerArgs)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*MigrationControllerArgs) DeepCopyObject ¶
func (in *MigrationControllerArgs) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type Namespaces ¶
Namespaces carries a list of included/excluded namespaces for which a given strategy is applicable
func (*Namespaces) DeepCopy ¶
func (in *Namespaces) DeepCopy() *Namespaces
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Namespaces.
func (*Namespaces) DeepCopyInto ¶
func (in *Namespaces) DeepCopyInto(out *Namespaces)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Percentage ¶ added in v1.1.0
type Percentage float64
type Plugin ¶
type Plugin struct { // Name defines the name of plugin Name string `json:"name"` }
func (*Plugin) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Plugin.
func (*Plugin) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PluginConfig ¶
func (*PluginConfig) DeepCopy ¶
func (in *PluginConfig) DeepCopy() *PluginConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PluginConfig.
func (*PluginConfig) DeepCopyInto ¶
func (in *PluginConfig) DeepCopyInto(out *PluginConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PluginSet ¶
func (*PluginSet) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PluginSet.
func (*PluginSet) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Plugins ¶
func (*Plugins) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Plugins.
func (*Plugins) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PriorityThreshold ¶
func (*PriorityThreshold) DeepCopy ¶
func (in *PriorityThreshold) DeepCopy() *PriorityThreshold
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PriorityThreshold.
func (*PriorityThreshold) DeepCopyInto ¶
func (in *PriorityThreshold) DeepCopyInto(out *PriorityThreshold)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RemovePodsViolatingNodeAffinityArgs ¶
type RemovePodsViolatingNodeAffinityArgs struct { metav1.TypeMeta Namespaces *Namespaces LabelSelector *metav1.LabelSelector NodeAffinityType []string }
RemovePodsViolatingNodeAffinityArgs holds arguments used to configure the RemovePodsViolatingNodeAffinity plugin.
func (*RemovePodsViolatingNodeAffinityArgs) DeepCopy ¶
func (in *RemovePodsViolatingNodeAffinityArgs) DeepCopy() *RemovePodsViolatingNodeAffinityArgs
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RemovePodsViolatingNodeAffinityArgs.
func (*RemovePodsViolatingNodeAffinityArgs) DeepCopyInto ¶
func (in *RemovePodsViolatingNodeAffinityArgs) DeepCopyInto(out *RemovePodsViolatingNodeAffinityArgs)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*RemovePodsViolatingNodeAffinityArgs) DeepCopyObject ¶
func (in *RemovePodsViolatingNodeAffinityArgs) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ResourceThresholds ¶ added in v1.1.0
type ResourceThresholds map[corev1.ResourceName]Percentage
func (ResourceThresholds) DeepCopy ¶ added in v1.1.0
func (in ResourceThresholds) DeepCopy() ResourceThresholds
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceThresholds.
func (ResourceThresholds) DeepCopyInto ¶ added in v1.1.0
func (in ResourceThresholds) DeepCopyInto(out *ResourceThresholds)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
Package v1alpha2 is the v1alpha2 version of the descheduler API
|
Package v1alpha2 is the v1alpha2 version of the descheduler API |