-
Notifications
You must be signed in to change notification settings - Fork 60
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
3 changed files
with
53 additions
and
4 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,47 @@ | ||
# Advanced Configuration | ||
|
||
## Threshold Configuration | ||
|
||
Scaling thresholds are configured using the following main nodegroup configuration options: | ||
|
||
```yaml | ||
taint_upper_capacity_threshhold_percent: 40 | ||
taint_lower_capacity_threshhold_percent: 10 | ||
scale_up_threshhold_percent: 70 | ||
``` | ||
Full configuration options can be found in [Node Group Configuration](./nodegroup.md). | ||
Through the configuration of these three options we can tell Escalator when we would like it to scale up or down the | ||
cluster or when we want it to do nothing. | ||
- `scale_up_threshhold_percent` defines the threshold for scaling up. | ||
- `taint_upper_capacity_threshhold_percent` and `taint_lower_capacity_threshhold_percent` defines the thresholds for | ||
tainting which will lead to scaling down. | ||
- If the cluster utilisation falls between `taint_upper_capacity_threshhold_percent` and `scale_up_threshhold_percent`, | ||
Escalator will do nothing. | ||
|
||
Given the above threshold values, Escalator will do the following: | ||
|
||
- Utilisation: 110% = **scale up** (exceeded `scale_up_threshhold_percent`) | ||
- Utilisation: 75% = **scale up** (exceeded `scale_up_threshhold_percent`) | ||
- Utilisation: 70% = **scale up** (exceeded `scale_up_threshhold_percent`) | ||
- Utilisation: 50% = **do nothing** | ||
- Utilisation: 40% = **do nothing** (utilisation has to be lower than the threshold for it to trigger) | ||
- Utilisation: 38% = **scale down slowly** (below `taint_upper_capacity_threshhold_percent` | ||
but above `taint_lower_capacity_threshhold_percent` so only scale down slowly) | ||
- Utilisation: 10% = **scale down slowly** (below `taint_upper_capacity_threshhold_percent` | ||
but above `taint_lower_capacity_threshhold_percent` so only scale down slowly) | ||
- Utilisation: 9% = **scale down quickly** (below `taint_lower_capacity_threshhold_percent`) | ||
- Utilisation: 0% = **scale down quickly** (below `taint_lower_capacity_threshhold_percent`) | ||
|
||
## Slack Capacity Configuration | ||
|
||
Slack capacity is configured through the `scale_up_threshhold_percent` option. If this option is set to **70** for | ||
example, whenever the node group utilisation reaches or exceeds **70%**, a scale up will occur. Escalator will try and | ||
keep the node group utilisation below **70%** and thus there will be a "slack capacity" of **30%**. | ||
|
||
To completely eliminate slack capacity, `scale_up_threshhold_percent` can be set to **100**, which will mean that | ||
Escalator will only scale up the node group when the utilisation reaches or exceeds **100%**. | ||
|
||
It is recommended to have some slack capacity in the event that there is a sudden spike of new pods to allow for | ||
Escalator time to increase the node group size before pods cannot be scheduled. |