Стадия жизненного цикла модуля: Preview
У модуля есть требования для установки

Как создать новый PVC?

  • Эта процедура описывает создание нового PVC (PersistentVolumeClaim), что может быть необходимо для смены неизменяемых параметров, таких как storageClass и accessModes.
  • Во время процедуры будет выполнено создание нового PVC без переноса данных из старого.

Изменение таких параметров, как size, можно выполнить без этой процедуры, если это поддерживается провайдером storageClass. Для увеличения size достаточно указать новое значение.

Чтобы создать новый PVC, выполните следующие действия:

  1. Отключите сборщик мусора (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
        ...
  2. Дождитесь отключения 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.
    
  3. Укажите новые параметры 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
      ...
  4. Примените изменения. Дождитесь создания нового 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
    
  5. Включите сборщик мусора (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
  6. При необходимости удалите старый PVC. Старый PVC можно подключить обратно, выполнив аналогичную процедуру подключения.

    Удаление PVC:

    Этот шаг приведет к потере данных, хранящихся в старом PVC.

    d8 k -n d8-payload-registry delete pvc/registry

    Пример вывода:

    persistentvolumeclaim "registry" deleted