안녕하세요. 이기하입니다.
평소 Kubernetes 기반의 로컬 테스트 환경을 좀 더 효율적으로 구성할 수 없을까 고민을 많이 해왔습니다.
Mac 환경에서 작업하다 보니 로컬 클러스터 테스트에는 주로 Vagrant를 활용하고 있는데요, Vagrant Cloud에서 Ubuntu Box를 받아 환경을 구성할 때마다 동일한 패키지를 반복 설치하는 비효율이 늘 아쉬웠습니다. 매번 기본 Ubuntu 이미지 위에 Kubernetes 런타임 의존성, 네트워크 도구, 시스템 튜닝 등을 처음부터 다시 세팅하는 건 시간 낭비일 뿐 아니라, 환경 간 일관성을 보장하기도 어렵습니다.
또한 널리 사용되는 bento/ubuntu-24.04 같은 Box에 의존하면서, 국내에서도 충분히 잘 만들 수 있는 영역인데 직접 기여할 수 있는 알려진 Box가 없다는 점이 늘 아쉬웠습니다. 그래서 밑바닥부터 직접 구축하자는 결심을 하게 되었습니다.
직접 만들면 가장 좋은 점은 명확합니다. 빌드 과정의 모든 레이어를 통제할 수 있고, 필요에 따라 패키지와 커널 파라미터를 자유롭게 추가·조정할 수 있다는 것입니다.
현재 파일 시스템 특성에 따라 두 가지 이미지를 지속적으로 빌드·배포하고 있습니다.
-
dasomel/ubuntu-24.04-xfs -
dasomel/ubuntu-24.04-ext4
두 이미지를 나눈 이유는 워크로드 특성에 따라 파일 시스템 선택이 달라지기 때문입니다.
| 비교 항목 | ext4 | XFS |
|---|---|---|
| 한 줄 요약 | 범용성·유연성이 핵심일 때 | 대용량·높은 동시 I/O가 핵심일 때 |
| 리사이즈 | 확장/축소 모두 지원 | 확장만 지원 (축소 유틸리티 없음) |
| 워크로드 성향 | 대부분의 워크로드에서 안정적 성능, 범용 선택지 | 고대역폭·고IOPS 환경에서 최적 성능 (200MB/s↑, 1000 IOPS↑) |
| 소규모 파일 처리 | 작은 파일 대량 생성/삭제 패턴에 유리 | 단일 스레드 메타데이터 중심 작업에서 상대적 불리 |
| 적용 예시 | 설계 변경 가능성이 있는 범용 서버/VM | 대용량 로그·미디어·백업 등 대파일 + 동시 처리량 중심 |
이 Box들은 Kubernetes 클러스터 구성에 최적화된 이미지를 목표로, 커널 파라미터 튜닝, 컨테이너 런타임 의존성, 네트워크 설정 등 필수 패키지를 사전 설치해 둔 환경입니다. 사용자는 이 위에 본인의 워크로드에 필요한 요소만 추가하면 되므로, 초기 세팅 시간을 크게 단축할 수 있습니다.
물론 처음에는 제 자신의 필요에서 시작한 프로젝트이지만, 제가 필요로 하는 것은 다른 분들도 필요로 할 것이라는 판단하에 오픈소스로 공개하고 있습니다.
GitHub: https://github.com/dasomel/kube-ready-box
위 저장소에 Packer 템플릿부터 프로비저닝 스크립트까지 전체 소스가 공개되어 있습니다. 필요하신 분들은 Fork하셔서 자신만의 이미지를 빌드하셔도 좋고, 개선 아이디어나 추가 요청이 있으시면 Issue나 PR로 의견 주시면 적극 검토·반영하여 함께 발전시켜 나가겠습니다.
감사합니다.
| This is a space where knowledge is not merely consumed, but respected, sovereign, and connected—shared together with cloud industry professionals (Bros).|
| 지식이 소비되지 않고 존중·주권보장·연결되는 공간으로 클라우드 현업 전문가(Bro)와 함께 공유하고 있습니다. |