Kubernetes v1.36: 볼륨 그룹 스냅샷을 GA로 이동

발행: (2026년 5월 9일 AM 03:35 GMT+9)
8 분 소요

Source: Kubernetes Blog

볼륨 그룹 스냅샷 – Kubernetes v1.36에서 GA

볼륨 그룹 스냅샷은 Kubernetes v1.27에서 Alpha 기능으로 도입되었으며, v1.32에서 Beta로, v1.34에서 두 번째 Beta로 전환되었습니다.
Kubernetes v1.36 릴리스에서 볼륨 그룹 스냅샷 지원이 **General Availability (GA)**에 도달했음을 알려드리게 되어 기쁩니다.

작동 방식

  • 이 기능은 그룹 스냅샷용 확장 API 집합에 의존합니다.
  • 사용자는 볼륨 집합에 대해 크래시 일관성 스냅샷을 생성할 수 있습니다.
  • Kubernetes는 라벨 셀렉터를 사용하여 여러 PersistentVolumeClaim(PVC) 객체를 그룹화하고 스냅샷을 수행합니다.
  • 목표는 그 스냅샷 집합을 새로운 볼륨에 복원하고 크래시 일관성 복구 지점에서 워크로드를 복구하는 것입니다.

Note: 이 기능은 CSI 볼륨 드라이버에만 지원됩니다.

볼륨 그룹 스냅샷 개요

일부 스토리지 시스템은 동일한 시점에 다중 볼륨의 충돌 일관성 스냅샷을 생성할 수 있습니다. 그룹 스냅샷:

  • 여러 볼륨에서 동시에 만든 복사본을 나타냅니다.
  • 새 볼륨을 재수화(스냅샷 데이터로 미리 채워짐) 하거나 기존 볼륨을 이전 상태로 복원하는 데 사용할 수 있습니다.

왜 Kubernetes에 볼륨 그룹 스냅샷을 추가해야 할까요?

Kubernetes는 단일 영구 볼륨을 보호하기 위한 강력한 VolumeSnapshot API를 이미 제공하고 있습니다. 하지만 많은 애플리케이션이 여러 볼륨(예: 데이터 + 로그)을 사용합니다. 서로 다른 시점에 개별 스냅샷을 찍으면 복원 시 애플리케이션 상태가 일관되지 않을 수 있습니다.

  • 일관된 그룹 스냅샷은 그룹 내 모든 볼륨에 대해 쓰기 순서 일관성을 제공합니다.
  • 애플리케이션을 정지시키거나 순차적으로 스냅샷을 찍을 필요가 없어 시간 절약과 정지 불가능한 경우를 피할 수 있습니다.

볼륨 그룹 스냅샷을 위한 Kubernetes API

그룹 스냅샷을 관리하기 위해 세 가지 API 종류(CRD)가 사용됩니다:

API 종류목적
VolumeGroupSnapshot사용자가(또는 자동화) 여러 PVC의 스냅샷을 요청하기 위해 생성됩니다.
VolumeGroupSnapshotContent스냅샷 컨트롤러가 동적으로 생성된 VolumeGroupSnapshot을 위해 생성합니다. 프로비저닝된 그룹 스냅샷에 대한 정보를 보관하며 해당 VolumeGroupSnapshot과 일대일로 바인딩됩니다.
VolumeGroupSnapshotClass클러스터 관리자가 그룹 스냅샷 생성 방법(드라이버, 삭제 정책 등)을 정의합니다.

GA 릴리스에서는 이 API들이 groupsnapshot.storage.k8s.io/v1 로 승격되었습니다.

GA에서 새로 나온 내용은?

  • VolumeGroupSnapshot, VolumeGroupSnapshotContent, 및 VolumeGroupSnapshotClass에 대한 API 버전은 이제 groupsnapshot.storage.k8s.io/v1입니다.
  • 베타 피드백을 기반으로 안정성이 향상되고 버그가 수정되었으며, v1beta2에서의 개선을 포함해 정확한 restoreSize 보고가 가능합니다.

Kubernetes 볼륨 그룹 스냅샷 사용 방법

1. 새 그룹 스냅샷 생성

  1. 그룹화하려는 PVC에 라벨 지정

    kubectl label pvc pvc-0 group=myGroup
    # persistentvolumeclaim/pvc-0 labeled
    
    kubectl label pvc pvc-1 group=myGroup
    # persistentvolumeclaim/pvc-1 labeled
  2. VolumeGroupSnapshot 정의 (동적 프로비저닝을 위해서는 셀렉터가 필요합니다):

    apiVersion: groupsnapshot.storage.k8s.io/v1
    kind: VolumeGroupSnapshot
    metadata:
      name: snapshot-daily-20260422
      namespace: demo-namespace
    spec:
      volumeGroupSnapshotClassName: csi-groupSnapclass
      source:
        selector:
          matchLabels:
            group: myGroup
  3. VolumeGroupSnapshotClass 생성 (동적 프로비저닝에 필요):

    apiVersion: groupsnapshot.storage.k8s.io/v1
    kind: VolumeGroupSnapshotClass
    metadata:
      name: csi-groupSnapclass
    driver: example.csi.k8s.io
    deletionPolicy: Delete

2. 그룹 스냅샷에서 복원

그룹에 있는 각 볼륨에 대해 VolumeGroupSnapshot에서 가져온 VolumeSnapshot을 사용하도록 새로운 PVC를 요청합니다:

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: examplepvc-restored-2026-04-22
  namespace: demo-namespace
spec:
  storageClassName: example-sc
  dataSource:
    name: snapshot-0962a745b2bf930bb385b7b50c9b08af471f1a16780726de19429dd9c94eaca0
    kind: VolumeSnapshot
    apiGroup: snapshot.storage.k8s.io
  accessModes:
    - ReadWriteOncePod
  resources:
    requests:
      storage: 100Mi

복원해야 하는 각 볼륨에 대해 PVC 정의를 반복합니다.

그룹 스냅샷 지원을 스토리지 벤더로 추가

볼륨 그룹 스냅샷 기능을 구현하려면 CSI 드라이버가 다음을 수행해야 합니다:

  1. 새 그룹 컨트롤러 서비스를 구현합니다.
  2. 다음 RPC를 지원합니다:
    • CreateVolumeGroupSnapshot
    • DeleteVolumeGroupSnapshot
    • GetVolumeGroupSnapshot
  3. 능력 CREATE_DELETE_GET_VOLUME_GROUP_SNAPSHOT 을 광고합니다.

CSI 사양Kubernetes‑CSI 드라이버 개발자 가이드를 참조하여 자세한 구현 단계를 확인하십시오.

자세히 알아보기

  • Design spec 볼륨 그룹 스냅샷 기능에 대한 설계 사양.
  • Code repository 볼륨 그룹 스냅샷 API 및 컨트롤러용 코드 저장소.
  • CSI documentation 그룹 스냅샷 지원에 대한 CSI 문서.

그룹 스냅샷 기능

어떻게 참여할 수 있나요?

이 프로젝트는 모든 Kubernetes 프로젝트와 마찬가지로 다양한 배경을 가진 많은 기여자들의 협업과 노력의 결과물입니다. SIG Storage를 대표하여, 프로젝트가 GA에 도달하도록 수년간 힘을 보태준 모든 기여자들에게 진심으로 감사드립니다:

  • Ben Swartzlander (bswartz)
  • Cici Huang (cici37)
  • Darshan Murthy (darshansreenivas)
  • Hemant Kumar (gnufied)
  • James Defelice (jdef)
  • Jan Šafránek (jsafrane)
  • Madhu Rajanna (Madhu-1)
  • Manish M Yathnalli (manishym)
  • Michelle Au (msau42)
  • Niels de Vos (nixpanic)
  • Leonardo Cecchi (leonardoce)
  • Rakshith R (Rakshith‑R)
  • Raunak Shah (RaunakShah)
  • Saad Ali (saad-ali)
  • Wei Duan (duanwei33)
  • Xing Yang (xing‑yang)
  • Yati Padia (yati1998)

시작하기

  • Kubernetes Storage Special Interest Group (SIG)에 참여하기 – CSI 설계 및 개발이나 Kubernetes 스토리지 시스템의 어느 부분에든 관심 있는 새로운 기여자를 언제나 환영합니다.
  • Data Protection Working Group 회의에 참석하기 – 새로운 참석자도 우리의 논의에 자유롭게 참여할 수 있습니다.

질문이 있거나 참여하고 싶다면 SIG 메일링 리스트나 Slack 채널로 언제든지 연락 주세요!

0 조회
Back to Blog

관련 글

더 보기 »