diff --git a/docs/advanced/addons.md b/docs/advanced/addons.md index b3d4ad6e02..a124b66bc6 100644 --- a/docs/advanced/addons.md +++ b/docs/advanced/addons.md @@ -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. @@ -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. -::: \ No newline at end of file +::: diff --git a/docs/advanced/addons/descheduler.md b/docs/advanced/addons/descheduler.md new file mode 100644 index 0000000000..4d6fca31d4 --- /dev/null +++ b/docs/advanced/addons/descheduler.md @@ -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**. diff --git a/static/img/v1.7/descheduler/descheduler-edit-yaml.png b/static/img/v1.7/descheduler/descheduler-edit-yaml.png new file mode 100644 index 0000000000..d8465b65e5 Binary files /dev/null and b/static/img/v1.7/descheduler/descheduler-edit-yaml.png differ diff --git a/static/img/v1.7/descheduler/descheduler-enable.png b/static/img/v1.7/descheduler/descheduler-enable.png new file mode 100644 index 0000000000..333b00ac0c Binary files /dev/null and b/static/img/v1.7/descheduler/descheduler-enable.png differ diff --git a/static/img/v1.7/descheduler/descheduler-policy.png b/static/img/v1.7/descheduler/descheduler-policy.png new file mode 100644 index 0000000000..3c6d8ab8af Binary files /dev/null and b/static/img/v1.7/descheduler/descheduler-policy.png differ