Trident: deletePolicy Retain์œผ๋กœ ์‚ญ์ œ๋˜์ง€ ์•Š์€ Trident ์Šค๋ƒ…์ƒท ๊ฐœ์ฒด

์— ๋งŒ๋“  2020๋…„ 10์›” 09์ผ  ยท  4์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: NetApp/trident

์‹คํŒจ ์‹œ๋‚˜๋ฆฌ์˜ค

  1. ์†Œ์Šค PVC๋Š” reclaimPolicy: Retain ์œผ๋กœ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.
  2. PVC snapshot.storage.k8s.io/v1beta1 ๊ฐ์ฒด๊ฐ€ ์‚ญ์ œ ์ •์ฑ…: ์œ ์ง€ ๋กœ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.
  3. reclaimPolicy: Retain ๋ฐ ์†์„ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ ์Šค๋ƒ…์ƒท pvc๊ฐ€ ์„ฑ๊ณต์ ์œผ๋กœ ์ƒ์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
dataSource:
    name: volumesnapshot-test-pvc-nfs-retain
    kind: VolumeSnapshot
    apiGroup: snapshot.storage.k8s.io
  1. ์Šค๋ƒ…์ƒท PVC ์‚ญ์ œ, ๊ด€๋ จ k8s PV ๋ฐ Trident ๋ณผ๋ฅจ ์‚ญ์ œ
  2. k8s ์Šค๋ƒ…์ƒท ๊ฐ์ฒด ๋ฐ k8s volumeSnapshotContent ์‚ญ์ œ
  3. Trident Snapshot ๊ฐœ์ฒด๋Š” ์‚ญ์ œํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
    ใ…. Tridentctl get snapshot list๋Š” ๋ชฉ๋ก์˜ ์Šค๋ƒ…์ƒท์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.
    ๋น„. Tridentctl ์Šค๋ƒ…์ƒท ๊ฐ€์ ธ์˜ค๊ธฐ์˜ค๋ฅ˜ ๋ฐœ์ƒ:
    tctl ์Šค๋ƒ…์ƒท ๊ฐ€์ ธ์˜ค๊ธฐ ์Šค๋ƒ…์ƒท-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. ํŠธ๋ผ์ด๋˜ํŠธ PV ์‚ญ์ œ, ์‚ญ์ œ ๋ช…๋ น์ด ์„ฑ๊ณต์ ์œผ๋กœ ์‹คํ–‰๋˜์ง€๋งŒ PV๊ฐ€ "์‚ญ์ œ ์ค‘" ์ƒํƒœ๋กœ ํŠธ๋ผ์ด๋˜ํŠธ์—์„œ ์—ฌ์ „ํžˆ ๋ณด๋ฅ˜ ์ค‘์ž…๋‹ˆ๋‹ค.

์ด๊ฒƒ์ด ๋ฒ„๊ทธ๋ผ๋ฉด ์‚ดํŽด๋ณด์‹ญ์‹œ์˜ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์‚ผ์ง€์ฐฝ์— ๋งŽ์€ ์Šค๋ƒ…์ƒท ๊ฐœ์ฒด๊ฐ€ ๋‚จ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. deletePolicy is Retain?์„ ์‚ฌ์šฉํ•˜์—ฌ trident ์Šค๋ƒ…์ƒท ๊ฐœ์ฒด๋ฅผ ์ œ๊ฑฐํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ง€์นจ/์ง€์นจ์„ ์ง€๊ธˆ ์ œ๊ณตํ•˜์‹ญ์‹œ์˜ค.

์„ฑ๊ณต ์‹œ๋‚˜๋ฆฌ์˜ค

  1. ์†Œ์Šค PVC๋Š” reclaimPolicy: ์‚ญ์ œ ๋กœ ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค.
  2. PVC snapshot.storage.k8s.io/v1beta1 ๊ฐ์ฒด๊ฐ€ ์‚ญ์ œ ์ •์ฑ…: ์‚ญ์ œ ๋กœ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.
  3. reclaimPolicy: Delete ๋ฐ ์†์„ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ ์Šค๋ƒ…์ƒท pvc๊ฐ€ ์„ฑ๊ณต์ ์œผ๋กœ ์ƒ์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
dataSource:
    name: volumesnapshot-test-pvc-nfs-delete
    kind: VolumeSnapshot
    apiGroup: snapshot.storage.k8s.io
  1. ์Šค๋ƒ…์ƒท PVC ์‚ญ์ œ, ๊ด€๋ จ PV ์‚ญ์ œ
  2. k8s ์†Œ์Šค PVC ์‚ญ์ œ, PV๋Š” "์‚ญ์ œ ์ค‘" ์ƒํƒœ๋กœ Trident์—์„œ ๋ณด๋ฅ˜ ์ค‘์ž…๋‹ˆ๋‹ค.
  3. k8s ์Šค๋ƒ…์ƒท ๊ฐœ์ฒด ์‚ญ์ œ, k8s volumeSnapshotContent, Trident PV ๋ฐ Trident Snapshot ๊ฐœ์ฒด๊ฐ€ ์ž๋™ ์ œ๊ฑฐ๋ฉ๋‹ˆ๋‹ค.

Trident Snapshot ๊ฐœ์ฒด๋Š” deleteRetain: Delete ๋กœ ์„ฑ๊ณต์ ์œผ๋กœ ์‚ญ์ œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
์ด ๊ฒฝ์šฐ volumenapshots.snapshot.storage.k8s.io ์‚ญ์ œ ํ›„ ์ž๋™ ์ œ๊ฑฐ๋ฉ๋‹ˆ๋‹ค.

ํ™˜๊ฒฝ
๋ฌธ์ œ๋ฅผ ์žฌํ˜„ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๋„๋ก ํ™˜๊ฒฝ์— ๋Œ€ํ•œ ์ •ํ™•ํ•œ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜์„ธ์š”.

  • ํŠธ๋ผ์ด๋˜ํŠธ ๋ฒ„์ „: [20.07.01]
  • ์‚ฌ์šฉ๋œ ์‚ผ์ง€์ฐฝ ์„ค์น˜ ํ”Œ๋ž˜๊ทธ: [tctl install --k8s-timeout 30m --csi --use-custom-yaml --silence-autosupport]
  • ์ปจํ…Œ์ด๋„ˆ ๋Ÿฐํƒ€์ž„: [ Docker 19.03.13-CE]
  • ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ๋ฒ„์ „: [1.19.2]
  • Kubernetes ์กฐ์ •์ž: [k8s kubeadm]
  • OS: [ RHEL 7.8]
  • NetApp ๋ฐฑ์—”๋“œ ์œ ํ˜•: [ontap-san, ontap-nas]
bug tracked

๋ชจ๋“  4 ๋Œ“๊ธ€

์•ˆ๋…•ํ•˜์„ธ์š” @gnarl , ์ด๊ฒƒ์— ๋Œ€ํ•œ ์—…๋ฐ์ดํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

์ด ๋ฌธ์ œ๋Š” ์ด๋Ÿฌํ•œ ํ”Œ๋žซํผ์˜ ์ตœ๋Œ€ ์Šค๋ƒ…์ƒท ์ˆ˜๊ฐ€ ONTAP๋ณด๋‹ค ์ ๊ธฐ ๋•Œ๋ฌธ์— Element OS(์•„๋งˆ๋„ E-Series๋„ ๋งˆ์ฐฌ๊ฐ€์ง€)์— ๋” ํฐ ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค. ONTAP์—์„œ๋Š” "์œ ์ผํ•œ" ๋ฌธ์ œ๊ฐ€ ๋‚จ์€ ์Šค๋ƒ…์ƒท์ด๊ณ  Element OS์—์„œ๋Š” ์Šค๋ƒ…์ƒท ๋ณดํ˜ธ๊ฐ€ ์ž‘๋™์„ ๋ฉˆ์ถฅ๋‹ˆ๋‹ค. ์ž๋™ ๋งŒ๋ฃŒ๊ฐ€ ์—†์œผ๋ฉด ์ผ ์ด๋‚ด์— ์ตœ๋Œ€ ์Šค๋ƒ…์ƒท ์ˆ˜์— ๋„๋‹ฌํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

@khankth ,

์—ฌ๊ธฐ์„œ ๋ฌธ์ œ๋Š” volumeSnapshotContent์— "Retain"์˜ ์‚ญ์ œ ์ •์ฑ…์ด ์žˆ๊ณ  ๋ชฉํ‘œ๊ฐ€ ์‹ค์ œ๋กœ ์Šค๋ƒ…์ƒท์„ ์‚ญ์ œํ•˜๋Š” ๊ฒƒ์ด๋ผ๋ฉด volumeSnapshot ๋ฐ volumeSnapshotConent๋ฅผ ์‚ญ์ œํ•˜๊ธฐ ์ „์— "Delete"๋กœ ์—…๋ฐ์ดํŠธํ•ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋Š” reclaimPolicy๊ฐ€ "์œ ์ง€"๋กœ ์„ค์ •๋œ PV ์‚ญ์ œ๊ฐ€ ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹๊ณผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ K8S๋Š” PV๋ฅผ ์„ฑ๊ณต์ ์œผ๋กœ ์‚ญ์ œํ•˜๊ธฐ ์ „์— PV ํŽธ์ง‘์„ ์„ค์ •ํ•˜๊ณ  reclaimPolicy๋ฅผ "Delete"๋กœ ๋ณ€๊ฒฝํ•˜๋„๋ก ๊ฐ•์ œํ•ฉ๋‹ˆ๋‹ค.

์ด ์‚ฌ์šฉ ์‚ฌ๋ก€๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ํŒ€๊ณผ ์ด์•ผ๊ธฐํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

@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 ๋Š” ์Šค๋ƒ…์ƒท์˜ ์„ธ๋ถ€ ์ •๋ณด๋ฅผ ๋ฐ˜ํ™˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค]๋Š” ์ด ์ปค๋ฐ‹ ์—์„œ v21.04๋กœ ์ˆ˜์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰