SUMMARY
여러 물리 서버에 제각각 흩어져 있던 개발 환경은 리소스 관리도, 책임 소재도 뒤죽박죽이었다. 이걸 쿠버네티스로 묶어 리소스 통합 관리와 환경 격리, 배포 자동화를 한꺼번에 잡기로 했다.
사내 개발 환경을 쿠버네티스(Kubernetes)로 전환해야 한다고 판단한 근거를 정리하면 이렇다.
1. 기존 개발 환경의 한계
사내 개발 환경은 대부분 도커(Docker) 기반으로 돌아가고 있었다. 문제는 여러 물리 서버가 공통된 관리 주체 없이 제각각 쓰이고 있었다는 점이다. 개발자들이 필요한 리소스를 각자 서버에 할당해 쓰는 식이었는데, 이 방식은 시간이 지나면서 하나둘 문제를 드러냈다.
2. 주요 문제점
2-1. 비효율적인 리소스 관리
어떤 서버에서 무슨 애플리케이션이 도는지 한눈에 파악하기 어려웠고, 자원이 제대로 쓰이지 않고 낭비되는 경우가 잦았다. 한쪽 서버에 부하가 몰리는 동안 다른 서버는 놀고 있는, 그런 상황이었다.
서버를 통합 관리하는 도구가 없다 보니 개별적으로 SSH로 접근해 쓰는 게 전부였고, 유휴 자원이 있어도 눈에 들어오지 않았다. 신규 프로젝트나 테스트 서버가 필요할 때마다 “지금 어디에 여유가 있더라”를 파악하는 데만 한참이 걸렸다. 여러 서버를 묶어 쓸 때는 노드마다 일일이 배포해야 하는 번거로움도 있었고, 모니터링이 통합돼 있지 않아 로그나 시스템 정보를 사람이 손으로 취합해야 했다. 자연히 업무는 느려지고 지연도 잦았다.
2-2. 관리의 어려움과 책임 불명확
여러 개발자가 공용 계정으로 서버에 접근하는 경우가 많았다. 그러다 보니 누가 프로세스를 내렸는지, 누가 파일을 바꿨는지 추적하기 어려웠다. 문제가 터져도 원인을 찾는 데 오랜 시간이 걸렸고, 안정적인 개발 환경과는 거리가 멀었다.
원칙대로라면 개인이나 프로젝트 단위로 리눅스(Linux) 계정을 나누거나 서버를 분리하고, 그걸 관리할 프로세스와 규정, 담당자를 두는 게 맞다. 하지만 기존 시스템 안에서 그런 체계를 갖추려면 비용이 만만치 않았고, 현실적으로 실행하기 어려웠다. 결국 공용 계정 탓에 책임 소재는 계속 흐려졌고, 명확한 규정도 없어 문제가 생길 때마다 협업도 해결도 매끄럽지 못했다.
3. 새로운 시스템의 필요성
정리하면, 리소스를 효율적으로 관리하면서 쓰는 사람도 관리하는 사람도 편한 솔루션이 필요했다. 물리 서버를 전부 클러스터로 묶어 통합 관리하고, 사용자는 서버에 직접 붙지 않고도 필요할 때 가용 자원 안에서 리소스를 할당받으며, 자원과 애플리케이션 상태를 실시간으로 볼 수 있어야 했다.
이런 문제들을 풀려면 새 시스템이 필요하다고 느꼈다. 시스템이 갖춰야 할 핵심 기능은 이렇게 정의했다.
3-1. 시스템 요구사항 정의
- 리소스 통합 관리: 여러 서버의 리소스를 중앙에서 묶어 관리하고 낭비를 최소화한다.
- 프로젝트별 환경 격리: 부서·프로젝트 단위로 사용량을 제한하고, 서로 영향을 주지 않는 격리된 테스트 환경을 쉽게 만들 수 있어야 한다.
- 자동화된 배포: 애플리케이션의 빌드, 테스트, 배포를 자동화해 생산성을 높인다.
- 모니터링: 로그와 리소스 사용량을 체계적으로 모니터링해 문제에 빠르게 대응한다.
- 온프레미스(On-premise) 지원: 사내 환경은 대부분 클라우드가 아니라 온프레미스라, 새 솔루션도 이를 무리 없이 지원해야 한다.
4. 결론
이 요구사항들을 여러 각도에서 따져본 결과, 쿠버네티스(Kubernetes)가 가장 잘 들어맞았다.
쿠버네티스는 컨테이너화된 워크로드를 자동화하고 관리하는 오픈소스 플랫폼으로, 리소스 통합 관리, 선언적(declarative) 서비스 관리, 자동화된 롤아웃·롤백까지 필요한 기능 대부분을 이미 갖추고 있었다. 흩어져 있던 개발 환경을 여기로 통합하기로 했다.
INFO
특히 다양한 프로젝트의 개발·테스트 환경을 온디맨드(On-demand)로 제공하고, 개별 개발자가 독립적인 테스트 공간을 가질 수 있게 한다는 점에서 쿠버네티스의 유연성이 매력적으로 다가왔다. 네임스페이스(Namespace) 기반 격리와 RBAC(Role-Based Access Control)를 통해 기존 환경에서 해결하기 어려웠던 권한 관리 문제도 체계적으로 해결할 수 있을 것으로 기대됐다.