패스잇
인프라 & 클라우드 · 심화

Kubernetes 환경에서 대규모 데이터베이스나 고성능 컴퓨팅(HPC) 워크로드와 같이 I/O 성능이 매우 중요한 스테이트풀 애플리케이션을 운영할 때, PersistentVolume(PV) 및 PersistentVolumeClaim(PVC)을 활용한 스토리지 솔루션의 성능 병목 현상을 진단하고 최적화하기 위한 방안을 제시해 주십시오. 특히, Container Storage Interface(CSI)를 활용한 커스텀 스토리지 드라이버 개발 또는 기존 드라이버 최적화 관점에서 설명해 주십시오.

힌트 · 스토리지 클래스(StorageClass)의 프로비저닝 방식, 볼륨 모드(Block/Filesystem), CSI 드라이버의 컨트롤러 및 노드 플러그인 역할, 그리고 스토리지 백엔드의 특성을 고려한 설계 및 튜닝 방안을 설명할 수 있습니다.

IOPSLatencyCSIStorageClassQoS

모범답안

Kubernetes 환경에서 I/O 성능이 중요한 스테이트풀 애플리케이션의 스토리지 병목 현상을 진단하고 최적화하는 방법은 다음과 같습니다.

먼저, kubectl describe pv <pv_name> 명령어로 PV의 상세 정보를 확인하여 스토리지 클래스, 프로비저닝 방식, 볼륨 모드 등을 파악합니다. IOPS와 Latency를 모니터링하여 성능 저하의 원인을 분석합니다.

CSI 드라이버를 활용한다면, 드라이버의 컨트롤러 플러그인이 스토리지 프로비저닝을 어떻게 처리하는지, 노드 플러그인이 볼륨을 어떻게 마운트하는지 확인합니다. 스토리지 백엔드의 특성에 맞춰 최적화된 CSI 드라이버를 선택하거나 직접 개발하는 것을 고려할 수 있습니다. 예를 들어, NVMe SSD를 사용하는 경우 해당 성능을 최대한 활용할 수 있도록 드라이버를 튜닝합니다.

또한, StorageClass의 프로비저닝 방식을 조정하여 성능을 개선할 수 있습니다. 필요에 따라 볼륨 모드를 Block으로 변경하여 파일 시스템 오버헤드를 줄일 수도 있습니다. QoS 설정을 통해 특정 워크로드에 더 많은 I/O 자원을 할당하는 것도 방법입니다.

읽었다면, 이제 직접 답해볼 차례예요

패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.

함께 보는 Docker / Kubernetes 면접 질문

← Docker / Kubernetes 면접 질문 전체 보기