Skip to content

Commit 9fbefe3

Browse files
Merge branch 'main' into 7042-doc
2 parents 17224dd + b57d96f commit 9fbefe3

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

65 files changed

+824
-506
lines changed

docs/advanced/addons.md

Lines changed: 20 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,53 +1,38 @@
11
---
22
sidebar_position: 5
3-
sidebar_label: Addons
4-
title: "Addons"
3+
sidebar_label: Add-ons
4+
title: "Add-ons"
55
---
66

77
<head>
88
<link rel="canonical" href="https://docs.harvesterhci.io/v1.6/advanced/addons"/>
99
</head>
1010

11-
Harvester makes optional functionality available as Addons.
11+
Harvester provides optional features as add-ons to maintain a minimal installation footprint. This design allows you to easily enable or disable functionality based strictly on your use case and requirements. You can customize the settings of each add-on, though the level of customization depends on the underlying software.
1212

13-
One of the key reasons for the same is to ensure that Harvester installation footprint can be kept low while allowing users to enable/disable functionality based on their use case or requirements.
13+
The following add-ons are available in this version:
1414

15-
Some level of customization is allowed for each addon, which depends on the underlying addon.
16-
17-
_Available as of v1.1.0_
18-
19-
Harvester v1.3.0 ships with six Addons:
15+
* [harvester-csi-driver-lvm](./addons/lvm-local-storage.md) (Experimental)
16+
* [harvester-seeder](./addons/seeder.md) (Experimental)
17+
* [harvester-vm-dhcp-controller](./addons/managed-dhcp.md) (Experimental)
18+
* [kubeovn-operator](./addons/kubeovn-operator.md)
19+
* [nvidia-driver-toolkit](./addons/nvidiadrivertoolkit)
2020
* [pcidevices-controller](./addons/pcidevices.md)
21-
* [vm-import-controller](./addons/vmimport.md)
22-
* [rancher-monitoring](../monitoring/harvester-monitoring.md)
2321
* [rancher-logging](../logging/harvester-logging.md)
24-
* [harvester-seeder](./addons/seeder.md)
25-
* [nvidia-driver-toolkit](./addons/nvidiadrivertoolkit)
26-
27-
![](/img/v1.2/addons/AddonsV120.png)
28-
29-
:::note
30-
31-
**harvester-seeder** is released as an experimental feature in Harvester v1.2.0 and has an **Experimental** label added to the **Name**.
32-
33-
:::
34-
35-
You can enable a **Disabled** by choosing an addon and selecting **** > **Enable** from the **Basic** tab.
36-
37-
![](/img/v1.2/addons/enable-rancher-logging-addon.png)
38-
39-
When the addon is enabled successfully, the **State** will be **DeploySuccessful**.
40-
41-
![](/img/v1.2/addons/deploy-successful-addon.png)
42-
43-
You can disable an **Enabled** by choosing an addon and selecting **** > **Disable** or from the **Basic** tab.
22+
* [rancher-monitoring](../monitoring/harvester-monitoring.md)
23+
* [rancher-vcluster](./addons/rancher-vcluster.md) (Experimental)
24+
* [vm-import-controller](./addons/vmimport.md)
25+
* [descheduler](./addons/descheduler.md) (Experimental)
4426

45-
![](/img/v1.2/addons/disable-rancher-monitoring-addon.png)
27+
You can enable and disable add-ons on the **Add-ons** screen of the Harvester UI.
4628

47-
When the addon is disabled successfully, the **State** will be **Disabled**.
29+
| Operation | Action | New State |
30+
| --- | --- | --- |
31+
| Enabling an add-on | Select the add-on, and then select **** > **Enable**. | **DeploySuccessful** |
32+
| Disabling an add-on | Select the add-on, and then select **** > **Disable**. | **Disabled** |
4833

4934
:::note
5035

51-
When an addon is disabled, the configuration data is stored to reuse when the addon is enabled again.
36+
Harvester stores the configuration data of disabled add-ons, allowing for immediate reuse upon re-enabling.
5237

53-
:::
38+
:::
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
---
2+
sidebar_position: 10
3+
sidebar_label: Descheduler
4+
title: "Descheduler (Experimental)"
5+
---
6+
7+
_Available as of v1.7.0_
8+
9+
The [Kubernetes Descheduler](https://github.com/kubernetes-sigs/descheduler) optimizes workload scheduling by evicting pods that are not optimally placed according to administrator-defined policies. This crucial function enhances resource utilization, balances workloads across nodes, and improves overall cluster performance.
10+
11+
## Enabling the Add-on
12+
13+
When enabled, the add-on deploys the Descheduler in the `kube-system` namespace and a related configuration in the `kube-system/descheduler` ConfigMap. You can enable the add-on only when the cluster has more than one node.
14+
15+
1. On the Harvester UI, go to **Advanced** > **Add-ons**.
16+
17+
1. Select **descheduler (Experimental)**, and then select **** > **Enable**.
18+
19+
![](/img/v1.7/descheduler/descheduler-enable.png)
20+
21+
## Customizing Descheduler Policies
22+
23+
Select **** > **Edit YAML** to customize the Descheduler policies according to your requirements. The configuration is defined in YAML format.
24+
25+
![](/img/v1.7/descheduler/descheduler-edit-yaml.png)
26+
27+
![](/img/v1.7/descheduler/descheduler-policy.png)
28+
29+
- `deschedulingInterval`: How often the Descheduler runs. The default value is `5m` (5 minutes).
30+
- `maxNoOfPodsToEvictPerNode`: Maximum number of pods that can be evicted during a single descheduling cycle. The default is value is `5`.
31+
- `evictableNamespaces.exclude`: Namespaces to be excluded from eviction. By default, the system namespaces are excluded to protect critical system components.
32+
- `targetThresholds`: Upper utilization limit for monitored resources. Nodes whose usage exceeds this threshold are marked as overutilized, triggering pod eviction to reduce their load. Default values are automatically applied for CPU (`50`) and memory (`50`), but you can define values for other monitored resources.
33+
- `thresholds`: Lower utilization limit for monitored resources. Pods evicted from overutilized nodes are rescheduled only to nodes whose usage is currently below this threshold. Default values are automatically applied for CPU (`30`) and memory (`30`), but you can define values for other monitored resources.
34+
35+
## Disabling the Add-on
36+
37+
1. On the Harvester UI, go to **Advanced** > **Add-ons**.
38+
39+
1. Select **descheduler (Experimental)**, and then select **** > **Disable**.

docs/advanced/addons/kubeovn-operator.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
sidebar_position: 9
33
sidebar_label: Kube-OVN Operator
4-
title: "Kubeovn Operator"
4+
title: "Kube-OVN Operator"
55
---
66

77
<head>

docs/advanced/addons/lvm-local-storage.md

Lines changed: 46 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,38 @@
11
---
22
sidebar_position: 8
33
sidebar_label: Local Storage Support
4-
title: "Local Storage Support"
4+
title: "Local Storage Support (Experimental)"
55
---
66

77
<head>
88
<link rel="canonical" href="https://docs.harvesterhci.io/v1.6/advanced/addons/lvm-local-storage"/>
99
</head>
1010

11-
_Available as of v1.4.0_
11+
:::note
12+
13+
**harvester-csi-driver-lvm** is an *experimental* add-on. It is not included in the Harvester ISO, but you can download it from the [experimental-addons repository](https://github.com/harvester/experimental-addons). For more information about experimental features, see [Feature Labels](../../getting-started/document-conventions.md#feature-labels).
14+
15+
:::
1216

1317
Harvester allows you to use local storage on the host to create persistent volumes for your workloads with better performance and latency. This functionality is made possible by LVM, which provides logical volume management facilities on Linux.
1418

15-
## Installing and Enabling harvester-csi-driver-lvm
19+
The **harvester-csi-driver-lvm** add-on is a CSI driver that supports local path provisioning through LVM.
1620

17-
The `harvester-csi-driver-lvm` add-on is a CSI driver that supports local path provisioning through LVM. It is not packaged into the Harvester ISO, but is available in the [experimental-addons](https://github.com/harvester/experimental-addons) repository.
21+
## Installing and Enabling the Add-on
1822

19-
If you are using the Harvester kubeconfig file, you can perform the following steps:
23+
If you are using the Harvester kubeconfig file, you can install the add-on by performing the following steps:
2024

2125
1. Install the add-on by running the following command:
2226

23-
```
24-
# kubectl apply -f https://raw.githubusercontent.com/harvester/experimental-addons/main/harvester-csi-driver-lvm/harvester-csi-driver-lvm.yaml
25-
```
27+
```
28+
# kubectl apply -f https://raw.githubusercontent.com/harvester/experimental-addons/main/harvester-csi-driver-lvm/harvester-csi-driver-lvm.yaml
29+
```
2630
2731
1. On the Harvester UI, go to **Advanced** > **Add-ons**.
2832
2933
1. Select **harvester-csi-driver-lvm (Experimental)**, and then select **⋮** > **Enable**.
3034
31-
![](/img/v1.4/csi-driver-lvm/enable-lvm-addon.png)
35+
![](/img/v1.4/csi-driver-lvm/enable-lvm-addon.png)
3236
3337
## Creating a Volume Group for LVM
3438
@@ -40,33 +44,33 @@ Harvester currently does not allow you to modify the volume group composition (a
4044
4145
:::
4246
43-
1. Verify that the `harvester-csi-driver-lvm` add-on is installed.
47+
1. Verify that the **harvester-csi-driver-lvm** add-on is installed.
4448
4549
1. On the Harvester UI, go to the **Hosts** screen.
4650
4751
1. Select the target host, and then select **⋮** > **Edit Config**.
4852
4953
1. On the Storage tab, add disks for the volume group.
5054
51-
![](/img/v1.4/csi-driver-lvm/add-disk-to-vg-01.png)
55+
![](/img/v1.4/csi-driver-lvm/add-disk-to-vg-01.png)
5256
53-
Configure the following settings for each selected disk:
57+
Configure the following settings for each selected disk:
5458
55-
- **Provisioner**: Select **LVM**.
59+
- **Provisioner**: Select **LVM**.
5660
57-
![](/img/v1.4/csi-driver-lvm/add-disk-to-vg-02.png)
61+
![](/img/v1.4/csi-driver-lvm/add-disk-to-vg-02.png)
5862
59-
- **Volume Group**: Select an existing volume group or specify a name for a new volume group.
63+
- **Volume Group**: Select an existing volume group or specify a name for a new volume group.
6064
61-
![](/img/v1.4/csi-driver-lvm/add-disk-to-vg-03.png)
65+
![](/img/v1.4/csi-driver-lvm/add-disk-to-vg-03.png)
6266
63-
For more information about adding disks, see [Multi-Disk Management](../../host/#multi-disk-management).
67+
For more information about adding disks, see [Multi-Disk Management](../../host/#multi-disk-management).
6468
6569
1. Click **Save**.
6670
6771
1. On the host details screen, verify that the disks were added and the correct provisioner was set.
6872
69-
![](/img/v1.4/csi-driver-lvm/add-disk-to-vg-04.png)
73+
![](/img/v1.4/csi-driver-lvm/add-disk-to-vg-04.png)
7074
7175
## Creating a StorageClass for LVM
7276
@@ -80,27 +84,27 @@ You can only use one type of local volume in each volume group. If necessary, cr
8084
8185
1. Create a new StorageClass and select **LVM** in the **Provisioner** list.
8286
83-
![](/img/v1.4/csi-driver-lvm/create-lvm-sc-01.png)
87+
![](/img/v1.4/csi-driver-lvm/create-lvm-sc-01.png)
8488
8589
1. On the **Parameters** tab, configure the following settings:
8690
87-
- **Node**: Select the target node for the intended workloads.
91+
- **Node**: Select the target node for the intended workloads.
8892
89-
![](/img/v1.4/csi-driver-lvm/create-lvm-sc-02.png)
93+
![](/img/v1.4/csi-driver-lvm/create-lvm-sc-02.png)
9094
91-
- **Volume Group Name**: Select the volume group that you created.
95+
- **Volume Group Name**: Select the volume group that you created.
9296
93-
![](/img/v1.4/csi-driver-lvm/create-lvm-sc-03.png)
97+
![](/img/v1.4/csi-driver-lvm/create-lvm-sc-03.png)
9498
95-
- **Volume Group Type**: Select the type of local volume that matches your requirements. Harvester currently supports **striped** and **dm-thin**.
99+
- **Volume Group Type**: Select the type of local volume that matches your requirements. Harvester currently supports **striped** and **dm-thin**.
96100
97-
![](/img/v1.4/csi-driver-lvm/create-lvm-sc-04.png)
101+
![](/img/v1.4/csi-driver-lvm/create-lvm-sc-04.png)
98102
99103
1. Click **Save**.
100104
101105
1. On the **Storage** screen, verify that the StorageClass was created and the correct provisioner was set.
102106
103-
![](/img/v1.4/csi-driver-lvm/create-lvm-sc-05.png)
107+
![](/img/v1.4/csi-driver-lvm/create-lvm-sc-05.png)
104108
105109
For more information, see [StorageClass](../storageclass.md).
106110
@@ -110,29 +114,29 @@ For more information, see [StorageClass](../storageclass.md).
110114
111115
1. Create a new volume using the LVM StorageClass that you created.
112116
113-
![](/img/v1.4/csi-driver-lvm/create-lvm-volume-01.png)
117+
![](/img/v1.4/csi-driver-lvm/create-lvm-volume-01.png)
114118
115-
:::note
119+
:::note
116120
117-
The status **Not Ready** is normal because Harvester creates the LVM volume only when the first workload is created.
121+
The status **Not Ready** is normal because Harvester creates the LVM volume only when the first workload is created.
118122
119-
:::
123+
:::
120124
121125
1. On the **Virtual Machines** screen, select the target virtual machine, and then select **⋮** > **Add Volume**.
122126
123-
:::note
127+
:::note
124128
125-
Because the LVM volume is a local volume, you must ensure that the target node of the LVM StorageClass is the node on which the virtual machine is scheduled.
129+
Because the LVM volume is a local volume, you must ensure that the target node of the LVM StorageClass is the node on which the virtual machine is scheduled.
126130
127-
:::
131+
:::
128132
129133
1. Specify the volume that you want to attach.
130134
131-
![](/img/v1.4/csi-driver-lvm/attach-lvm-volume-01.png)
135+
![](/img/v1.4/csi-driver-lvm/attach-lvm-volume-01.png)
132136
133137
1. On the **Volumes** screen, verify that the state is **In-use**.
134138
135-
![](/img/v1.4/csi-driver-lvm/attach-lvm-volume-02.png)
139+
![](/img/v1.4/csi-driver-lvm/attach-lvm-volume-02.png)
136140
137141
You can also create a new virtual machine with the volume of the LVM StorageClass that you created. This virtual machine will be scheduled on the target node with local storage for the volume.
138142
@@ -146,24 +150,24 @@ You can also create a new virtual machine with the volume of the LVM StorageClas
146150
147151
1. In the **csi-driver-config** section, select **⋮** > **Edit Setting**.
148152
149-
![](/img/v1.4/csi-driver-lvm/update-csi-driver-config-01.png)
153+
![](/img/v1.4/csi-driver-lvm/update-csi-driver-config-01.png)
150154
151155
1. Add an entry with the following settings:
152156
153-
- **Provisioner**: Select **lvm.driver.harvesterhci.io**.
154-
- **Volume Snapshot Class Name**: Select **lvm-snapshot**.
157+
- **Provisioner**: Select **lvm.driver.harvesterhci.io**.
158+
- **Volume Snapshot Class Name**: Select **lvm-snapshot**.
155159
156-
![](/img/v1.2/advanced/csi-driver-config-external.png)
160+
![](/img/v1.2/advanced/csi-driver-config-external.png)
157161
158162
1. On the **Virtual Machines** screen, select the target virtual machine, and then select **⋮** > **Take Virtual Machine Snapshot**.
159163
160-
Example:
164+
Example:
161165
162-
![](/img/v1.4/csi-driver-lvm/vm-take-snapshot-with-lvm-01.png)
166+
![](/img/v1.4/csi-driver-lvm/vm-take-snapshot-with-lvm-01.png)
163167
164168
1. On the **Virtual Machine Snapshots** screen, verify that snapshot is ready to use.
165169
166-
![](/img/v1.4/csi-driver-lvm/vm-take-snapshot-with-lvm-02.png)
170+
![](/img/v1.4/csi-driver-lvm/vm-take-snapshot-with-lvm-02.png)
167171
168172
## Supported LVM Volume Features
169173

0 commit comments

Comments
 (0)