Стадия жизненного цикла модуля: Preview
У модуля есть требования для установки
Как создать новый PVC?
- Эта процедура описывает создание нового PVC (PersistentVolumeClaim), что может быть необходимо для смены неизменяемых параметров, таких как
storageClassиaccessModes. - Во время процедуры будет выполнено создание нового PVC без переноса данных из старого.
Изменение таких параметров, как size, можно выполнить без этой процедуры, если это поддерживается провайдером storageClass. Для увеличения size достаточно указать новое значение.
Чтобы создать новый PVC, выполните следующие действия:
-
Отключите сборщик мусора (GC). Для этого в ModuleConfig измените значение параметра
settings.gc.enabledнаfalse:apiVersion: deckhouse.io/v1alpha1 kind: ModuleConfig metadata: name: payload-registry spec: version: 1 enabled: true settings: gc: enabled: false ... -
Дождитесь отключения GC. Убедитесь, что все завершенные задания удалены:
Проверка очереди задач до отключения:
d8 k -n d8-payload-registry get jobsПример вывода:
NAME STATUS COMPLETIONS DURATION AGE registry-gc-20251008-111705 Complete 1/1 12s 2m48s registry-gc-20251008-111805 Complete 1/1 3s 107s registry-gc-20251008-111905 Complete 1/1 3s 47sПроверка подов GS-задач до отключения:
d8 k -n d8-payload-registry get pods -l "component=gc"Пример вывода:
NAME READY STATUS RESTARTS AGE registry-gc-20251008-111905-zv7hh 0/1 Completed 0 2m2s registry-gc-20251008-112006-zs69r 0/1 Completed 0 62s registry-gc-20251008-112105-bblpx 0/1 ContainerCreating 0 3sПроверка очереди задач после отключения:
d8 k -n d8-payload-registry get jobsПример вывода:
No resources found in d8-payload-registry namespace.Проверка подов GS-задач после отключения:
d8 k -n d8-payload-registry get pods -l "component=gc"Пример вывода:
No resources found in d8-payload-registry namespace. -
Укажите новые параметры PVC в разделе
settings.persistence. Для создания нового PVC укажите новое имя в полеname:apiVersion: deckhouse.io/v1alpha1 kind: ModuleConfig metadata: name: payload-registry spec: enabled: true settings: gc: enabled: false ... # Старые параметры PVC. # Поле name по умолчанию имеет значение `registry`. # persistence: # size: 10Gi # Новые параметры PVC с именем `registry-2`. # Новый PVC инициализируется с новым storageClass. persistence: name: registry-2 storageClass: network-ssd size: 10Gi ... -
Примените изменения. Дождитесь создания нового PVC и его подключения к хранилищу образов.
Проверка создания PVC:
d8 k -n d8-payload-registry get pvcПример вывода:
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS VOLUMEATTRIBUTESCLASS AGE registry Bound pvc-09cb5d2e-6529-4759-adca-56aa20aead80 10Gi RWO network-hdd <unset> 92m registry-2 Bound pvc-b3f037d2-d3fa-4b2c-8ae1-e9af75ff14d5 10Gi RWO network-ssd <unset> 60sПроверка подключения PVC к хранилищу образов:
d8 k -n d8-payload-registry get deployment/registry -o yaml | grep 'registry-2'Пример вывода:
claimName: registry-2 -
Включите сборщик мусора (GC). Для этого в его манифесте, в поле
settings.gc.enabled, укажите значениеtrue:apiVersion: deckhouse.io/v1alpha1 kind: ModuleConfig metadata: name: payload-registry spec: version: 1 enabled: true settings: gc: enabled: true ... persistence: name: registry-2 storageClass: network-ssd size: 10Gi -
При необходимости удалите старый PVC. Старый PVC можно подключить обратно, выполнив аналогичную процедуру подключения.
Удаление PVC:
Этот шаг приведет к потере данных, хранящихся в старом PVC.
d8 k -n d8-payload-registry delete pvc/registryПример вывода:
persistentvolumeclaim "registry" deleted