Skip to content

ministryofjustice/cloud-platform-terraform-descheduler

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

57 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

cloud-platform-terraform-descheduler

Releases

This terraform module installs the Descheduler for Kubernetes.

Descheduler, based on its policies, finds pods that can be moved and evicts them. These evicted pods are scheduled on nodes are that more suited (based on the policies used to evict them)

Usage

module "descheduler" {
  source = "github.com/ministryofjustice/cloud-platform-terraform-descheduler?ref=0.0.2"
}

Enabled Policies

RemoveDuplicates

This strategy makes sure that there is only one pod associated with a ReplicaSet (RS), ReplicationController (RC), StatefulSet, or Job running on the same node.

LowNodeUtilization

This strategy finds nodes that are underutilised and evicts pods from overutilised nodes in the hope that recreation of evicted pods will be scheduled on these underutilised nodes.

The underutilisation of nodes is determined by a configurable threshold thresholds. The threshold thresholds can be configured for cpu, memory, number of pods, and extended resources in terms of percentage (the percentage is calculated as the current resources requested on the node vs total allocatable. For pods, this means the number of pods on the node as a fraction of the pod capacity set for that node).

HighNodeUtilization

This strategy finds nodes that are underutilised and evicts pods from the nodes in the hope that these pods will be scheduled compactly into fewer nodes.

Used in conjunction with node auto-scaling, this strategy is intended to help trigger down scaling of under utilized nodes

Requirements

Name Version
terraform >= 1.2.5
helm >=2.6.0

Providers

Name Version
helm >=2.6.0

Modules

No modules.

Resources

Name Type
helm_release.descheduler resource

Inputs

Name Description Type Default Required
enable_removeduplicates Enable RemoveDuplicates which spreads pods across cluster, for cluster wtih number of nodes < number of pods, set it to false bool true no

Outputs

No outputs.

Tags

Reading Material

https://github.com/kubernetes-sigs/descheduler

About

This terraform module installs the Descheduler on the MoJ Cloud Platform

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Packages

No packages published