Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions docs/advanced/addons.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,12 @@ The following add-ons are available in this version:
* [harvester-vm-dhcp-controller](./addons/managed-dhcp.md) (Experimental)
* [kubeovn-operator](./addons/kubeovn-operator.md)
* [nvidia-driver-toolkit](./addons/nvidiadrivertoolkit)
* [pcidevices-controller](./addons/pcidevices.md)
* [pcidevices-controller](./addons/pcidevices.md)
* [rancher-logging](../logging/harvester-logging.md)
* [rancher-monitoring](../monitoring/harvester-monitoring.md)
* [rancher-vcluster](./addons/rancher-vcluster.md) (Experimental)
* [vm-import-controller](./addons/vmimport.md)
* [descheduler](./addons/descheduler.md) (Experimental)

You can enable and disable add-ons on the **Add-ons** screen of the Harvester UI.

Expand All @@ -34,4 +35,4 @@ You can enable and disable add-ons on the **Add-ons** screen of the Harvester UI

Harvester stores the configuration data of disabled add-ons, allowing for immediate reuse upon re-enabling.

:::
:::
40 changes: 40 additions & 0 deletions docs/advanced/addons/descheduler.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
---
sidebar_position: 10
sidebar_label: Descheduler
title: "Descheduler"
---

_Available as of v1.7.0_

[`descheduler`](https://github.com/kubernetes-sigs/descheduler) is used to improve the scheduling of workloads by evicting pods that are not optimally placed according to defined policies. This helps to enhance resource utilization, balance workloads across nodes, and improve overall cluster performance.

## Enabling `descheduler` Add-on

Enable `descheduler` add-on to deploy the Descheduler to a Harvester cluster for improved workload scheduling and resource utilization.

1. On the Harvester UI, go to **Advanced** > **Add-ons**.

1. Select **descheduler (Experimental)**, and then select **⋮** > **Enable**.

![](/img/v1.7/descheduler/descheduler-enable.png)

The add-on can only be enabled when there are more than one node in the cluster. It will deploy a `kube-system/descheduler` deployment and a related configuration in `kube-system/descheduler` ConfigMap.

## Customizing Descheduler Policies

Click the **Edit YAML** button to customize the descheduler policies according to your requirements. The configuration is defined in a YAML format.

![](/img/v1.7/descheduler/descheduler-edit-yaml.png)

![](/img/v1.7/descheduler/descheduler-policy.png)

* `deschedulingInterval`: Specifies how often the descheduler runs. The default is set to 5 minutes.
* `maxNoOfPodsToEvictPerNode`: Limits the number of pods that can be evicted during a single descheduling cycle. The default is set to 5.
* `evictableNamespaces.exclude`: Namespaces that should be excluded from eviction. By default, the system namespaces are excluded to protect critical system components.
* `thresholds` and `targetThresholds`: Define resource usage thresholds to determine when pods should be evicted to balance resource utilization across nodes. The default values only contain CPU and memory. You can add additional resources as needed. It evicts pods from overutilized nodes (those with usage above `targetThresholds`) to underutilized nodes (those with usage below `thresholds`).

## Disabling `descheduler` Add-on

1. On the Harvester UI, go to **Advanced** > **Add-ons**.

1. Select **descheduler (Experimental)**, and then select **⋮** > **Disable**.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.