Связать PV C со статусом Выпущено - PullRequest
0 голосов
/ 11 февраля 2020

позвольте мне поместить вас в контекст. Я получил модуль с конфигурацией, которая выглядит примерно так:

spec:
  nodeSets:
  - name: default
    count: 3
    volumeClaimTemplates:
    - metadata:
        name: elasticsearch-data
      spec:
        accessModes:
        - ReadWriteOnce
        resources:
          requests:
            storage: 5Gi
        storageClassName: repd-ssd-xfs

У меня также есть StorageClass

apiVersion: ...
kind: StorageClass
metadata:
  name: repd-ssd-xfs
parameters:
  type: pd-ssd
  fsType: xfs
  replication-type: regional-pd
  zones: us-central1-a, us-central1-b, us-central1-f
reclaimPolicy: Retain
volumeBindingMode: Immediate

Я удаляю пространство имен модуля и затем снова применяю его, и я обратите внимание, что pv c, который использовался моим модулем, изменил и привязал к новому pv c, последний pv c, использованный модулем, находится в состоянии освобождения. Мой вопрос заключается в том, есть ли способ указать модулю использовать мой старый pv c? Политика StorageClass - Retain, но это значит, что я все еще могу использовать pv c с освобожденным статусом?

Ответы [ 2 ]

1 голос
/ 11 февраля 2020

В дополнение к ответу, предоставленному @ shashank tyagi .

Посмотрите документацию Постоянные тома и в разделе Сохраните вы можете найти:

Когда PersistentVolumeClaim удаляется, PersistentVolume все еще существует, а том считается «освобожденным» Но он еще не доступен для другой заявки, поскольку данные предыдущего заявителя остаются на томе. Администратор может вручную восстановить том, выполнив следующие действия:

  • Удалите PersistentVolume. Связанный ресурс хранения во внешней инфраструктуре (такой как AWS EBS, GCE PD, Azure Том или диск Cinder) все еще существует после удаления PV.
  • Вручную очистите данные на связанном Соответственно, актив хранилища.
  • Удалите связанный актив хранилища вручную или, если вы хотите повторно использовать тот же актив хранилища, создайте новый PersistentVolume с определением
    хранилища.

Может быть полезно проверить документацию Постоянные тома с постоянными дисками и этот пример Как установить ReclaimPolicy для PersistentVolumeClaim .

UPDATE Взгляните на статью Постоянное требование объема для StatefulSet .

1 голос
/ 11 февраля 2020

Вы можете явно указать имя заявки на постоянный том в модуле c, если это развертывание или автономный модуль, как показано ниже:

 volumes:
  - name: task-pv-storage
     persistentVolumeClaim:
       claimName: task-pv-claim

Однако, если это StatefulSet, он будет автоматически присоединяется к тому же PV C каждый раз, когда модуль перезапускается. Надеюсь, это поможет.

...