longhorn: 1.11.1 → 1.11.2 (snapshot warning #12856 fix)

This commit is contained in:
heimdall
2026-05-07 08:10:59 +09:00
parent 0a45e0536c
commit 02a9b9dfd8
2 changed files with 118 additions and 13 deletions

View File

@@ -1,6 +1,6 @@
---
title: Longhorn 분산 블록 스토리지
updated: 2026-05-02
updated: 2026-05-07
tags: [infra, platform, longhorn, storage, k3s]
---
@@ -11,7 +11,7 @@ Longhorn은 K3s 클러스터의 **분산 블록 스토리지**. 각 노드 로
| 항목 | 값 |
|---|---|
| Helm release | `longhorn` (ns `longhorn-system`) |
| Chart / App | `longhorn-1.11.1` / `v1.11.1` |
| Chart / App | `longhorn-1.11.2` / `v1.11.2` |
| 노드 | incus-kr1, incus-kr2, incus-hp1, incus-hp2 (4) |
| Data engine | v1 (v2 미사용) |
| Default data path | `/var/lib/longhorn/` |
@@ -20,17 +20,17 @@ Longhorn은 K3s 클러스터의 **분산 블록 스토리지**. 각 노드 로
| 정적 복구 SC | `longhorn-static` (Volume CR 경유 복구 시) |
| Backup target | `s3://longhorn-backup@auto/` (Cloudflare R2) — [[../data/k3s-backup|k3s-backup]] 참조 |
## 컴포넌트 (helm rev 5 기준)
## 컴포넌트 (helm rev 6 기준)
| 컴포넌트 | 종류 | 이미지 |
|---|---|---|
| longhorn-manager | DaemonSet | `longhorn-manager:v1.11.1` + `longhorn-share-manager:v1.11.1` |
| longhorn-csi-plugin | DaemonSet | `csi-node-driver-registrar:v2.16.0`, `livenessprobe:v2.18.0`, `longhorn-manager:v1.11.1` |
| longhorn-driver-deployer | Deployment (1) | `longhorn-manager:v1.11.1` |
| longhorn-ui | Deployment (2) | `longhorn-ui:v1.11.1` |
| longhorn-manager | DaemonSet | `longhorn-manager:v1.11.2` + `longhorn-share-manager:v1.11.2` |
| longhorn-csi-plugin | DaemonSet | `csi-node-driver-registrar:v2.16.0`, `livenessprobe:v2.18.0`, `longhorn-manager:v1.11.2` |
| longhorn-driver-deployer | Deployment (1) | `longhorn-manager:v1.11.2` |
| longhorn-ui | Deployment (2) | `longhorn-ui:v1.11.2` |
| csi-attacher / provisioner / resizer / snapshotter | Deployment (3 replicas each) | `csi-attacher:v4.x`, `csi-provisioner:v5.x`, `csi-resizer:v1.x`, `csi-snapshotter:v8.x` |
| engine-image | DaemonSet (per-version) | `longhorn-engine:v1.11.1` (ei-75a03ec3) |
| instance-manager | per-node per-version | `longhorn-instance-manager:v1.11.1` |
| engine-image | DaemonSet (per-version) | `longhorn-engine:v1.11.2` (ei-c9fa6d45). 신규 EI 적용 후 모든 25 볼륨 live engine upgrade 완료, 구 EI `ei-75a03ec3` (v1.11.1) 는 refcount 0 으로 자동 정리 대기 |
| instance-manager | per-node per-version | `longhorn-instance-manager:v1.11.2` |
## Helm values (커스텀)
@@ -57,11 +57,13 @@ defaultSettings:
- 복구 시 주의: `longhorn.io/fromBackup` annotation은 Longhorn v1.8+ CSI에서 무시됨 → Volume CR 직접 생성 후 `longhorn-static` SC PV 만드는 절차. 상세 [[../data/k3s-backup|k3s-backup]]
- 주기 백업 라벨 키는 **대시 포함**: `recurring-job-group.longhorn.io/<group>=enabled` (과거 오타 이슈 [[../../history/2026-04-15-longhorn-backup-label-typo|history]])
## Stuck snapshot 임시 cron (v1.11.1 워크어라운드)
## Stuck snapshot 임시 cron (v1.11.1 워크어라운드 — 회수 대상)
v1.11.1 instance-manager 재시작 후 일부 snapshot CR 이 `status.markRemoved=true && status.readyToUse=false && status.ownerID=""` 상태로 멈춘다. ownerId 가 비어 longhorn-manager 가 reconcile 못 하고, 수동 `kubectl delete` / finalizer patch 시 admission webhook 이 finalizer 를 즉시 재추가해 정리 불가.
> **상태 (2026-05-07): v1.11.2 업그레이드로 fix 적용됨** — 업그레이드 직후 stuck CR 12개 자연 cleanup, 23:00 UTC RecurringJob 사이클부터 신규 Warning 0건. 임시 cron 은 **회수 대상**. ArgoCD `longhorn-snapshot-purge` Application 만 삭제, chart 디렉토리는 repo 보존 (재현 시 재활용 가능).
근본 fix 는 **v1.11.2 / v1.12 업그레이드**. 그때까지 임시로 snapshotPurge API 를 cron 으로 자동 호출해 engine 단의 chain cleanup 을 주기적으로 트리거.
v1.11.1 instance-manager 재시작 후 일부 snapshot CR 이 `status.markRemoved=true && status.readyToUse=false && status.ownerID=""` 상태로 멈췄다. ownerId 가 비어 longhorn-manager 가 reconcile 못 했고, 수동 `kubectl delete` / finalizer patch 시 admission webhook 이 finalizer 를 즉시 재추가해 정리 불가했다.
근본 fix 는 **v1.11.2 백포트 [#12856](https://github.com/longhorn/longhorn/issues/12856)**. 그 전까지 임시로 snapshotPurge API 를 cron 으로 자동 호출해 engine 단 chain cleanup 을 주기 트리거했다.
### 구성
@@ -100,7 +102,7 @@ kubectl -n longhorn-system logs -l job-name --tail=50 --selector='batch.kubernet
kubectl get snapshots.longhorn.io -A -o json | jq '[.items[] | select(.status.markRemoved == true and .status.readyToUse == false)] | length'
```
상세 도입 기록: [[../../history/2026-05-02-longhorn-snapshot-purge-cron|history]]
상세 도입 기록: [[../../history/2026-05-02-longhorn-snapshot-purge-cron|2026-05-02 도입]] / [[../../history/2026-05-07-longhorn-1-11-2-upgrade|2026-05-07 fix 적용]]
## 업그레이드 절차 (표준)
@@ -118,6 +120,18 @@ minor skip 금지 — 한 단계씩 순차. 각 단계 공통:
## 최근 버전 변경
### 2026-05-07: 1.11.1 → 1.11.2 (patch, snapshot warning 회귀 fix)
| 단계 | Helm rev | Chart | 결과 |
|---|---|---|---|
| 1.11.1 → 1.11.2 | 6 | longhorn-1.11.2 | 25/25 볼륨 healthy |
- 백포트 [#12856](https://github.com/longhorn/longhorn/issues/12856) 적용 — `snapshot becomes not ready to use` Warning 사이클 해소
- 업그레이드 직후 stuck CR 12개 자연 cleanup (manager ownership reset 흐름 회복)
- 35분 관측 동안 신규 Warning 0건, 23:00 UTC `critical-snapshot` RecurringJob 사이클 통과
- 신규 EI `ei-c9fa6d45` (v1.11.2), 25 볼륨 모두 live engine upgrade 완료
- 상세: [[../../history/2026-05-07-longhorn-1-11-2-upgrade|history]]
### 2026-04-23: 1.8.2 → 1.11.1 (3단계 minor 순차)
| 단계 | Helm rev | Chart | 결과 |