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)
module "descheduler" {
source = "github.com/ministryofjustice/cloud-platform-terraform-descheduler?ref=0.0.2"
}
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.
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).
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
Name | Version |
---|---|
terraform | >= 1.2.5 |
helm | >=2.6.0 |
Name | Version |
---|---|
helm | >=2.6.0 |
No modules.
Name | Type |
---|---|
helm_release.descheduler | resource |
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 |
No outputs.