Trident: Объекты моментальных снимков Trident, не удаленные с помощью deletionPolicy Retain

Созданный на 9 окт. 2020  ·  4Комментарии  ·  Источник: NetApp/trident

СЦЕНАРИЙ НЕУДАЧИ

  1. Исходный PVC создается с помощью reclaimPolicy: Retain
  2. Объект PVC snapshot.storage.k8s.io/v1beta1 создается с помощью deletionPolicy: Retain
  3. Снапшот pvc успешно создан с reclaimPolicy: Retain и атрибутами:
dataSource:
    name: volumesnapshot-test-pvc-nfs-retain
    kind: VolumeSnapshot
    apiGroup: snapshot.storage.k8s.io
  1. Удалить снэпшот PVC, удалить связанный k8s PV и том Trident
  2. Удалить объект моментального снимка k8s и тома k8sSnapshotContent
  3. Объект Trident Snapshot не может быть удален:
    а. Tridentctl получить список моментальных снимков показывает моментальный снимок в списке
    б. Tridentctl получить снимоквыдает ошибку:
    tctl получить моментальный снимок snapshot-abb03b32-432c-4c63-b550-a571050b787e
Error: could not get snapshot snapshot-abb03b32-432c-4c63-b550-a571050b787e: 404 Not Found
command terminated with exit code 1

в. Tridentctl удалить снимоквыдает ошибку:

Error: could not delete snapshot snapshot-abb03b32-432c-4c63-b550-a571050b787e: 404 Not Found
command terminated with exit code 1

  1. Удалить Trident PV, команда удаления выполняется успешно, но PV все еще находится в ожидании в Trident с состоянием «удаление»

Если это ошибка, пожалуйста, изучите ее, в противном случае это приводит к тому, что в трезубце остается много объектов снимка. Пожалуйста, предоставьте инструкции/рекомендации о том, как удалить объекты моментального снимка трезубца с помощью параметра deletePolicy is Retain?

СЦЕНАРИЙ УСПЕХА

  1. Исходный PVC создается с помощью reclaimPolicy: Удалить
  2. Объект PVC snapshot.storage.k8s.io/v1beta1 создается с помощью deletionPolicy: Удалить
  3. Снапшот pvc успешно создан с reclaimPolicy: Delete и атрибутами:
dataSource:
    name: volumesnapshot-test-pvc-nfs-delete
    kind: VolumeSnapshot
    apiGroup: snapshot.storage.k8s.io
  1. Удалить снэпшот PVC, соответствующий PV будет удален
  2. Удалить PVC источника k8s, PV находится на рассмотрении в Trident с состоянием «удаление»
  3. Удалить объект моментального снимка k8s, объекты k8s volumeSnapshotContent, Trident PV и Trident Snapshot автоматически удаляются

Объекты Trident Snapshot успешно удалены с помощью deletionRetain: Удалить
В этом случае они автоматически удаляются после удаления volumesnapshots.snapshot.storage.k8s.io.

Окружающая обстановка
Предоставьте точную информацию об окружающей среде, чтобы помочь нам воспроизвести проблему.

  • Версия трезубца: [20.07.01]
  • Используемые флаги установки Trident: [tctl install --k8s-timeout 30m --csi --use-custom-yaml --silence-autosupport]
  • Среда выполнения контейнера: [ Docker 19.03.13-CE]
  • Версия Kubernetes: [1.19.2]
  • Оркестратор Kubernetes: [k8s kubeadm]
  • ОС: [RHEL 7.8]
  • Типы бэкенда NetApp: [ontap-san, ontap-nas]
bug tracked

Все 4 Комментарий

Привет @gnarl , есть новости по этому поводу?

Эта проблема имеет более выраженное влияние на Element OS (вероятно, и на E-Series), потому что максимальное количество снимков на этих платформах ниже, чем у ONTAP: в то время как в ONTAP «единственная» проблема — это оставшиеся снимки, в Element OS защита моментальных снимков перестает работать. потому что без автоматического истечения срока действия максимальное количество моментальных снимков достигается в течение нескольких дней.

@ханкт ,

Я думаю, что проблема здесь заключается в том, что VolumeSnapshotContent имеет политику удаления «Сохранить», и ее следует обновить до «Удалить» перед удалением VolumeSnapshot и VolumeSnapshotConent, если цель состоит в том, чтобы фактически удалить снимок. Это отличается от того, как работает удаление PV с параметром reclaimPolicy, установленным на «Сохранить». В этом случае K8S заставляет вас установить редактирование PV и изменить reclaimPolicy на «Удалить», прежде чем вы сможете успешно удалить PV.

Я поговорю с командой о том, как справиться с этим вариантом использования.

@khankth при удалении снимка с помощью tridentctl вам нужно будет использовать его следующим образом:

 tridentctl delete snapshot -h
Delete one or more volume snapshots from Trident

Usage:
  tridentctl delete snapshot <volume/snapshot> [<volume/snapshot>...] [flags]

Aliases:
  snapshot, s, snap, snapshots

Flags:
      --all             Delete all snapshots
  -h, --help            help for snapshot
      --volume string   Delete all snapshots in volume

Global Flags:
  -d, --debug              Debug output
  -n, --namespace string   Namespace of Trident deployment
  -o, --output string      Output format. One of json|yaml|name|wide|ps (default)
  -s, --server string      Address/port of Trident REST interface


# tridentctl delete snapshot snapshot-9c214e0f-547d-41b5-923d-a075bcc97d8a pvc-fb6eabff-93b4-4df5-b5ab-943bcda44ad8 -n trident
Error: could not delete snapshot snapshot-9c214e0f-547d-41b5-923d-a075bcc97d8a: 404 Not Found
command terminated with exit code 1


# tridentctl delete snapshot pvc-fb6eabff-93b4-4df5-b5ab-943bcda44ad8/snapshot-9c214e0f-547d-41b5-923d-a075bcc97d8a -n trident


# tridentctl get snapshot -n trident
+------+--------+
| NAME | VOLUME |
+------+--------+
+------+--------+

Кроме того, другая указанная вами ошибка [ tridentctl get snapshot не возвращает детали моментального снимка] была исправлена ​​в версии 21.04 в этом коммите .

Была ли эта страница полезной?
0 / 5 - 0 рейтинги

Смежные вопросы

acsulli picture acsulli  ·  4Комментарии

fmj3fmj3 picture fmj3fmj3  ·  3Комментарии

Numblesix picture Numblesix  ·  5Комментарии

uberspot picture uberspot  ·  3Комментарии

stobias123 picture stobias123  ·  4Комментарии