kubestr
개요
쿠버네티스 환경에서 스토리지 기능의 성능과 리스트를 탐색, 평가하는 툴이다.
크게는 세가지 작업을 할 수 있다.[1]
- 현재 클러스터에 존재하는 스토리지 클래스, csi 드라이버를 찾아준다.
- 해당 스토리지가 제대로 설정됐고 동작하는지 체크한다.
- 해당 스토리지를 벤치마킹하여 지표를 알려준다.
설치
wget https://github.com/kastenhq/kubestr/releases/download/v0.4.48/kubestr_0.4.48_Linux_amd64.tar.gz
tar xvfz kubestr_0.4.48_Linux_amd64.tar.gz && mv kubestr /usr/local/bin/ && chmod +x /usr/local/bin/kubestr
툴 자체는 단순해서, 기능은 조작법에서 풀겠다.
단순하게 테스트용 도구이기 때문에 깊게 세팅 방법을 알 필요는 없다.
조작법
기본 설치를 하고 그냥 해당 명령어를 사용하면 현재 존재하는 스토리지 프로비저너를 확인할 수 있다.
세팅한 EKS에는 아무런 세팅 없이도 과거의 잔재인 인트리 ebs 프로비저너가 세팅은 돼있다.
kubestr blockmount -s <storage class>
해당 스토리지 클래스가 블록 마운팅을 지원하는지 테스트한다.
kubestr csicheck
볼륨 스냅샷, 복원 기능을 테스트하는 명령어이다(근데 왜 이름이 이따구야).
그래서 테스트하고자 하는 스토리지 클래스와 , 볼륨 스냅샷 클래스를 함께 명시해줘야 한다.
fio 작성법
kubestr fio -s <storage class>
kubestr fio -s <storage class> -v <volume snapshot class>
이건 총체적인 입출력(Flexible I/O) 성능을 측정한다.
이것은 fio라고 하는, 스토리지 테스터의 양식을 기반으로 하고 있다.[2]
-f
옵션을 통해 미리 정의된 테스트 설정 파일을 넘기는 게 가능하다.
대체로 이 기능을 가장 많이 활용하게 될 것이다.
내부적으로는 이렇게 fio 패키지를 가져와서 세팅을 하는 것이 보인다.[3]
[global]
randrepeat=0
verify=0
ioengine=libaio
direct=1
gtod_reduce=1
[job1]
name=read_iops
bs=4K
iodepth=64
size=2G
readwrite=randread
time_based
ramp_time=2s
runtime=15s
[job2]
name=write_iops
bs=4K
iodepth=64
size=2G
readwrite=randwrite
time_based
ramp_time=2s
runtime=15s
[job3]
name=read_bw
bs=128K
iodepth=64
size=2G
readwrite=randread
time_based
ramp_time=2s
runtime=15s
[job4]
name=write_bw
bs=128k
iodepth=64
size=2G
readwrite=randwrite
time_based
ramp_time=2s
runtime=15s
이게 기본으로 활용되는 fio 테스트 양식이다.[4]
관련 문서
이름 | noteType | created |
---|---|---|
3주차 - 스토리지 | project | 2025-02-16 |
3W - kubestr과 EBS CSI 드라이버 | published | 2025-02-21 |
3W - EFS 드라이버, 인스턴스 스토어 활용 | published | 2025-02-22 |