Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
58 commits
Select commit Hold shift + click to select a range
d7653d6
docs: fix live migration
fl64 Oct 13, 2025
22ac25a
docs: fix rebalancing
fl64 Oct 13, 2025
5c6e1b6
docs: fix guest agent
fl64 Oct 13, 2025
9cac789
Add info about ability to use tolerations
Oct 22, 2025
6564f01
update
fl64 Oct 22, 2025
6b1ebfb
update toleration example
fl64 Oct 22, 2025
904025a
update generic vmclass info
fl64 Oct 22, 2025
3b81014
simplify install doc
fl64 Oct 23, 2025
672974a
add dvcr sc change info
fl64 Oct 28, 2025
788754d
fix typo
fl64 Oct 28, 2025
7ae14b2
Added a warning about the independence of network policies and additi…
Oct 29, 2025
cf9c198
upd
fl64 Oct 30, 2025
4f19279
upd
fl64 Oct 30, 2025
9184af6
Added a warning about the independence of network policies and additi…
Oct 30, 2025
a7530b6
Revert "Added a warning about the independence of network policies an…
Oct 30, 2025
28640b5
Update info about download data due to actual d8 version
Oct 30, 2025
18affa7
Update info about download data due to actual d8 version
Oct 30, 2025
bff0f6b
Update info about download data due to actual d8 version
Oct 30, 2025
de5928f
Update disk phases
Nov 7, 2025
42a6044
add link to images
fl64 Nov 19, 2025
1e3b9a3
refactor cloud init section
fl64 Nov 19, 2025
b043aa1
refactor cloud init EN section
fl64 Nov 19, 2025
93a7d64
prepare VM for cloning
fl64 Nov 19, 2025
504e489
clonned/restored disk datasource
fl64 Nov 19, 2025
17dd244
how to upload disk
fl64 Nov 19, 2025
3f7e765
fix typo
fl64 Nov 19, 2025
4ec3b6b
refactor vd migration
fl64 Nov 19, 2025
9454b08
fix
fl64 Nov 19, 2025
7956550
Fix cloud-init
fl64 Nov 19, 2025
640342d
fix typo
fl64 Nov 19, 2025
d35e739
fix
fl64 Nov 19, 2025
0a62d88
add edit
fl64 Nov 19, 2025
16e3fd8
Apply suggestions from code review
fl64 Nov 20, 2025
52eae2d
fix data export
fl64 Nov 20, 2025
c2d9e94
get rid of dvp
fl64 Nov 20, 2025
84d7e69
refactor
fl64 Nov 24, 2025
0145eb9
refactor
fl64 Nov 24, 2025
33b6ff2
add qemu ga hooks info
fl64 Nov 24, 2025
e780644
add live migration force info
fl64 Nov 24, 2025
1b14ff9
refactor qemu ga
fl64 Nov 24, 2025
da1fe38
add livemigration grafana pics
fl64 Nov 24, 2025
5992dcb
add livemigration timeout formula
fl64 Nov 24, 2025
87c7f06
add livemigration timeout formula
fl64 Nov 24, 2025
399fc05
fix
fl64 Nov 24, 2025
360655a
refactor live migration part
fl64 Nov 25, 2025
866ee70
fix
fl64 Nov 25, 2025
e0e96df
fix
fl64 Nov 25, 2025
5229e63
fix
fl64 Nov 25, 2025
2a4d092
fix
fl64 Nov 25, 2025
af11995
fix
fl64 Nov 25, 2025
d405e8e
add vmsop
fl64 Nov 25, 2025
a34287a
fix
fl64 Nov 25, 2025
835fe5c
Review
prismagod Nov 25, 2025
8cb7490
Merge remote-tracking branch 'origin/docs/module/update-due-v1.2.0' i…
prismagod Nov 25, 2025
a6be0ec
Additional fixes
prismagod Nov 25, 2025
045ff13
docs(dvcr): add section about dvcr garbage collection (#1743)
diafour Nov 25, 2025
421262d
fix
fl64 Nov 25, 2025
4856fcd
Post-review fixes
prismagod Nov 26, 2025
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
94 changes: 82 additions & 12 deletions docs/ADMIN_GUIDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,29 @@ The `.spec.settings.dvcr.storage` block configures a persistent volume for stori
- `.spec.settings.dvcr.storage.persistentVolumeClaim.storageClassName`: StorageClass name (for example, `sds-replicated-thin-r1`).

{{< alert level="warning" >}}
The storage serving this storage class (`.spec.settings.dvcr.storage.persistentVolumeClaim.storageClassName`) must be accessible on the nodes where DVCR is running (system nodes, or worker nodes if there are no system nodes).
Migrating images when changing the `.spec.settings.dvcr.storage.persistentVolumeClaim.storageClassName` parameter value is not supported.

When you change the DVCR StorageClass, all images stored in DVCR will be lost.
{{< /alert >}}

To change the DVCR StorageClass, perform the following steps:

1. Change the value of the [`.spec.settings.dvcr.storage.persistentVolumeClaim.storageClassName`](/modules/virtualization/configuration.html#parameters-dvcr-storage-persistentvolumeclaim-storageclassname) parameter.

1. Delete the old PVC for DVCR using the following command:

```shell
d8 k -n d8-virtualization delete pvc -l app=dvcr
```

1. Restart DVCR by running the following command:

```shell
d8 k -n d8-virtualization rollout restart deployment dvcr
```

{{< alert level="warning" >}}
The storage that serves the `.spec.settings.dvcr.storage.persistentVolumeClaim.storageClassName` StorageClass must be accessible from the nodes where DVCR runs (system nodes, or worker nodes if there are no system nodes).
{{< /alert >}}

**Network settings**
Expand All @@ -82,7 +104,7 @@ spec:

The first and the last subnet address are reserved and not available for use.

{{< alert level="warning">}}
{{< alert level="warning" >}}
The subnets in the `.spec.settings.virtualMachineCIDRs` block must not overlap with cluster node subnets, services subnet, or pods subnet (`podCIDR`).

It is forbidden to delete subnets if addresses from them have already been issued to virtual machines.
Expand Down Expand Up @@ -134,18 +156,18 @@ Where:

**Security Event Audit**

{{< alert level="warning">}}
{{< alert level="warning" >}}
Not available in CE edition.
{{{< /alert >}}
{{< /alert >}}

{{{< alert level="warning">}}
{{< alert level="warning" >}}
To set up auditing, the following modules must be enabled:

- `log-shipper`,
- `runtime-audit-engine`.
{{{< /alert >}}
{{< /alert >}}

To enable security event auditing, set the module’s `.spec.settings.audit.enabled` parameter to` true`:
To enable security event auditing, set the module’s `.spec.settings.audit.enabled` parameter to `true`:

```yaml
spec:
Expand Down Expand Up @@ -417,15 +439,63 @@ How to perform the operation in the web interface:
- Click the "Create" button.
- Wait until the image changes to `Ready` status.

### Cleaning up image storage

Over time, the creation and deletion of ClusterVirtualImage, VirtualImage, and VirtualDisk resources leads to the accumulation
of outdated images in the intra-cluster storage. Scheduled garbage collection is implemented to keep the storage up to
date, but this feature is disabled by default.

```yaml
apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
name: virtualization
spec:
# ...
settings:
dvcr:
gc:
schedule: "0 20 * * *"
# ...
```

While garbage collection is running, the storage is switched to read-only mode, and all resources created during this time will wait for the cleanup to finish.

To check for outdated images in the storage, you can run the following command:

```bash
d8 k -n d8-virtualization exec deploy/dvcr -- dvcr-cleaner gc check
```

It prints information about the storage status and a list of outdated images that can be deleted.

```console
Found 2 cvi, 5 vi, 1 vd manifests in registry
Found 1 cvi, 5 vi, 11 vd resources in cluster
Total Used Avail Use%
36.3GiB 13.1GiB 22.4GiB 39%
Images eligible for cleanup:
KIND NAMESPACE NAME
ClusterVirtualImage debian-12
VirtualDisk default debian-10-root
VirtualImage default ubuntu-2204
```

## Virtual machine classes

The VirtualMachineClass resource is designed for centralized configuration of preferred virtual machine settings. It allows you to define CPU instructions, configuration policies for CPU and memory resources for virtual machines, as well as define ratios of these resources. In addition, VirtualMachineClass provides management of virtual machine placement across platform nodes. This allows administrators to effectively manage virtualization platform resources and optimally place virtual machines on platform nodes.

During installation, a single VirtualMachineClass `generic` resource is automatically created. It represents a universal CPU type based on the older, but widely supported, Nehalem architecture. This enables running VMs on any nodes in the cluster and allows live migration.

The administrator can modify the parameters of the `generic` VirtualMachineClass resource (except for the `.spec.cpu` section) or delete this resource.

{{< alert level="info" >}}
It is recommended that you create at least one VirtualMachineClass resource in the cluster with the `Discovery` type immediately after all nodes are configured and added to the cluster. This allows virtual machines to utilize a generic CPU with the highest possible CPU performance considering the CPUs on the cluster nodes. This allows the virtual machines to utilize the maximum CPU capabilities and migrate seamlessly between cluster nodes if necessary.

For a configuration example, see [vCPU Discovery configuration example](#vcpu-discovery-configuration-example)
It is not recommended to use the `generic` VirtualMachineClass for running workloads in production environments, since this class corresponds to a CPU with the smallest feature set.

After all nodes are configured and added to the cluster, it is recommended to create at least one VirtualMachineClass resource of the `Discovery` type. This ensures that the best available CPU configuration compatible with all CPUs in your cluster is selected, allows virtual machines to make full use of CPU capabilities, and enables seamless migration between nodes.

For a configuration example, see [vCPU Discovery configuration example](#vcpu-discovery-configuration-example).
{{< /alert >}}

To list all VirtualMachineClass resources, run the following command:
Expand Down Expand Up @@ -529,7 +599,7 @@ Next, let's take a closer look at the setting blocks.

The `.spec.cpu` block allows you to specify or configure the vCPU for the VM.

{{< alert level="warning">}}
{{< alert level="warning" >}}
Settings in the `.spec.cpu` block cannot be changed after the VirtualMachineClass resource is created.
{{< /alert >}}

Expand Down Expand Up @@ -704,7 +774,7 @@ Invalid option (overlapping values):
max: 8
```

{{< alert level = "warning" >}}
{{< alert level="warning" >}}
Rule: Each new range must start with a value that immediately follows the max of the previous range.
{{< /alert >}}

Expand All @@ -717,7 +787,7 @@ Additional requirements can be specified for each range of cores:

2. Allowed fractions of cores (`coreFractions`) — a list of allowed values (for example, [25, 50, 100] for 25%, 50%, or 100% core usage).

{{< alert level = "warning" >}}
{{< alert level="warning" >}}
Important: For each range of cores, be sure to specify:

- Either memory (or `memoryPerCore`),
Expand Down
76 changes: 72 additions & 4 deletions docs/ADMIN_GUIDE.ru.md
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,29 @@ spec:
- `.spec.settings.dvcr.storage.persistentVolumeClaim.storageClassName` — класс хранения (например, `sds-replicated-thin-r1`).

{{< alert level="warning" >}}
Хранилище, обслуживающее данный класс хранения (`.spec.settings.dvcr.storage.persistentVolumeClaim.storageClassName`), должно быть доступно на узлах, где запускается DVCR (system-узлы, либо worker-узлы, при отсутствии system-узлов).
Перенос образов при изменении значения параметра `.spec.settings.dvcr.storage.persistentVolumeClaim.storageClassName` не поддерживается.

При смене StorageClass DVCR все образы, хранящиеся в DVCR, будут утеряны.
{{< /alert >}}

Для изменения StorageClass DVCR выполните следующие действия:

1. Измените значение [параметра `.spec.settings.dvcr.storage.persistentVolumeClaim.storageClassName`](/modules/virtualization/configuration.html#parameters-dvcr-storage-persistentvolumeclaim-storageclassname).

1. Удалите старый PVC для DVCR с помощью следующей команды:

```shell
d8 k -n d8-virtualization delete pvc -l app=dvcr
```

1. Перезапустите DVCR, выполнив следующую команду:

```shell
d8 k -n d8-virtualization rollout restart deployment dvcr
```

{{< alert level="warning" >}}
Хранилище, обслуживающее данный класс хранения `.spec.settings.dvcr.storage.persistentVolumeClaim.storageClassName`, должно быть доступно на узлах, где запускается DVCR (system-узлы, либо worker-узлы, при отсутствии system-узлов).
{{< /alert >}}

**Сетевые настройки**
Expand Down Expand Up @@ -420,6 +442,48 @@ d8 k describe cvi ubuntu-22-04
- Нажмите кнопку «Создать».
- Дождитесь пока образ перейдет в состояние `Готов`.

### Очистка хранилища образов

Со временем создание и удаление ресурсов ClusterVirtualImage, VirtualImage, VirtualDisk приводит к накоплению
неактуальных образов во внутрикластерном хранилище. Для поддержания хранилища в актуальном состоянии предусмотрена сборка мусора по расписанию.
По умолчанию эта функция отключена. Для включения очистки нужно задать расписание в настройках модуля в ресурсе ModuleConfig/virtualization:

```yaml
apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
name: virtualization
spec:
# ...
settings:
dvcr:
gc:
schedule: "0 20 * * *"
# ...
```

На время работы сборки мусора хранилище переводится в режим «только чтение». Все создаваемые в это время ресурсы будут ожидать окончания очистки.

Для проверки наличия неактуальных образов в хранилище можно выполнить такую команду:

```bash
d8 k -n d8-virtualization exec deploy/dvcr -- dvcr-cleaner gc check
```

На экран будут выведены сведения о состоянии хранилища и список неактуальных образов, которые могут быть удалены.

```console
Found 2 cvi, 5 vi, 1 vd manifests in registry
Found 1 cvi, 5 vi, 11 vd resources in cluster
Total Used Avail Use%
36.3GiB 13.1GiB 22.4GiB 39%
Images eligible for cleanup:
KIND NAMESPACE NAME
ClusterVirtualImage debian-12
VirtualDisk default debian-10-root
VirtualImage default ubuntu-2204
```

## Классы виртуальных машин

Ресурс VirtualMachineClass предназначен для централизованной конфигурации предпочтительных параметров виртуальных машин.
Expand All @@ -429,11 +493,15 @@ d8 k describe cvi ubuntu-22-04

Во время установки автоматически создаётся ресурс VirtualMachineClass с именем `generic`. Он представляет собой универсальный тип процессора на основе более старой, но широко поддерживаемой архитектуры Nehalem. Это позволяет запускать виртуальные машины на любых узлах кластера и поддерживает их живую миграцию.

Администратор может изменять параметры ресурса VirtualMachineClass `generic` (за исключением секции `.spec.cpu`), либо удалить данный ресурс.

{{< alert level="info" >}}
Рекомендуется создать как минимум один ресурс VirtualMachineClass в кластере с типом `Discovery` сразу после того, как все узлы будут настроены и добавлены в кластер.
Это позволит использовать в виртуальных машинах универсальный процессор с максимально возможными характеристиками с учетом CPU на узлах кластера, что позволит виртуальным машинам использовать максимум возможностей CPU и при необходимости беспрепятственно осуществлять миграцию между узлами кластера.

Пример настройки смотрите в разделе [Пример конфигурации vCPU Discovery](#пример-конфигурации-vcpu-discovery)
Не рекомендуется использовать VirtualMachineClass `generic` для запуска рабочих нагрузок в production-средах, поскольку данный класс соответствует процессору с наименьшей функциональностью.

Рекомендуется после добавления и настройки всех узлов в кластере создать хотя бы один ресурс VirtualMachineClass с типом `Discovery`. Это обеспечит выбор наилучшей доступной конфигурации процессора с учётом всех CPU в вашем кластере, позволит виртуальным машинам максимально эффективно использовать возможности процессоров и обеспечит беспрепятственную миграцию между узлами.

Пример настройки смотрите в разделе [Пример конфигурации vCPU Discovery](#пример-конфигурации-vcpu-discovery).
{{< /alert >}}

Чтобы вывести список ресурсов VirtualMachineClass, выполните следующую команду:
Expand Down
Loading
Loading