피드로 돌아가기
Kubernetes BlogInfrastructure
원문 읽기
Kubernetes가 Volume Group Snapshots API를 v1beta1에서 v1beta2로 전환하면서 CSI 드라이버의 ListSnapshots 미구현 환경에서도 restoreSize 필드 설정 가능
Kubernetes v1.34: Moving Volume Group Snapshots to v1beta2
AI 요약
Context
Volume group snapshots는 Kubernetes 1.27에서 Alpha로 도입되어 1.32에서 Beta(v1beta1)로 승격되었으나, 실제 테스트 과정에서 CSI 드라이버가 ListSnapshots RPC 호출을 구현하지 않을 경우 VolumeSnapshotContents와 VolumeSnapshots의 restoreSize 필드가 설정되지 않는 문제가 발견되었다.
Technical Solution
- VolumeSnapshotInfo 구조체 신규 추가: 볼륨 그룹 스냅샷에 속한 개별 볼륨 스냅샷의 정보를 담아 CSI 드라이버로부터 반환되는 메타데이터 표현
- VolumeSnapshotInfoList로 API 변경: VolumeSnapshotHandlePairList를 VolumeSnapshotInfoList로 교체하여 VolumeGroupSnapshotContentStatus에 통합
- VolumeSnapshotInfoList 자동 생성: csi-snapshotter sidecar가 CSI CreateVolumeGroupSnapshotResponse를 기반으로 VolumeSnapshotInfoList 자동 생성
- 기존 버전 호환성 보장: v1beta1 API 객체를 conversion webhook을 통해 v1beta2로 자동 변환하여 마이그레이션 지원
Key Takeaway
CSI 드라이버의 선택적 기능 구현으로 인한 API 제약을 해결할 때는 드라이버의 응답 데이터 구조 자체를 재설계하여 부분 구현 환경에서도 필수 정보를 안정적으로 수집할 수 있도록 설계하는 것이 베타 단계에서 GA 전환을 가능하게 한다.
실천 포인트
쿠버네티스 스토리지 솔루션을 구축하는 엔지니어가 여러 CSI 드라이버와 호환성을 유지해야 할 때, API 구조의 불완전성을 미리 감지하고 데이터 수집 경로를 단계적으로 재구성하는 방식으로 대처하면 모든 드라이버 조합에서 일관된 동작을 보장할 수 있다.