IT 소식/오픈소스

Uncloud: 쿠버네티스는 부담스럽고, 단일 서버는 아쉬운 개발자를 위한 경량 오케스트레이터

화니. 2025. 12. 8. 11:06

Uncloud는 여러 대의 Docker 호스트를 하나의 클러스터처럼 묶어주는 경량 컨테이너 오케스트레이션 도구입니다. 복잡한 쿠버네티스 대신, 익숙한 Docker & Docker Compose 경험을 유지하면서도 멀티 서버 운영, HTTPS, 로드밸런싱까지 한 번에 해결할 수 있도록 설계되었습니다. 

 

주요 특징은 다음과 같습니다. 

 

  • 멀티 환경 지원: 클라우드 VM, 온프레미스 서버, 집에 있는 맥미니 등 위치나 제공자에 상관없이 하나의 클러스터로 묶어서 사용 가능
  • Docker Compose 기반: 새로운 DSL을 배울 필요 없이 기존 compose.yaml로 서비스 정의
  • 무중단 배포: 롤링 업데이트로 서비스 중단 없이 새 버전 배포 (실패 시 롤백 기능도 준비 중)
  • Unregistry 연동: 외부 레지스트리 없이 직접 서버에 이미지를 빌드/푸시하고, 부족한 레이어만 전송해 빠르고 효율적인 배포
  • 서비스 디스커버리 & 로드밸런싱: 내장 DNS로 컨테이너 간 통신을 단순화하고, 트래픽을 여러 서버에 분산
  • 자동 WireGuard 메쉬 네트워크: 서버 간에 자동으로 안전한 프라이빗 네트워크를 구성해 컨테이너가 서로의 IP로 직접 통신
  • 중앙 컨트롤 플레인 없음: 완전 분산 구조로, 일부 서버가 다운되어도 클러스터 운영 지속
  • Managed DNS + 자동 HTTPS: *.cluster.uncloud.run 형태의 도메인과 Let’s Encrypt 기반 TLS 발급/갱신, Caddy 리버스 프록시가 내장

 

사용 방법도 단순합니다. 로컬에 Uncloud CLI를 설치한 뒤, SSH로 서버에 접속해 uc machine init으로 첫 머신을 초기화하고, uc run 명령어로 이미지를 배포하면 지정한 도메인으로 HTTPS 서비스가 바로 올라옵니다. DNS A 레코드만 서버 IP로 연결해주면 됩니다. 

 

내부적으로는 각 머신에 uncloudd 데몬과 CRDT 기반 분산 SQLite DB인 corrosion을 설치해, 별도의 중앙 서버 없이도 클러스터 상태를 서로 동기화합니다. WireGuard 서브넷을 자동으로 할당하고, Docker 브리지 네트워크와 연결해 컨테이너 네트워킹을 구성합니다. 새로운 머신을 추가하면 자동으로 새 서브넷과 키 교환까지 처리됩니다. 

 

정리하자면,

 

  • “쿠버네티스는 너무 무겁고 운영이 부담스럽다”
  • “그래도 여러 대 서버를 묶어서 HTTPS, 로드밸런싱, 배포 자동화는 하고 싶다”

 

이런 개발자에게 Uncloud는 딱 중간 지점에 있는 실용적인 선택지입니다. 단일 서버 PaaS의 편리함과 자가 호스팅 인프라의 자유도를 함께 가져가고 싶은 분들이 한 번 살펴볼 만한 오픈소스 프로젝트입니다.

https://github.com/psviderski/uncloud

 

GitHub - psviderski/uncloud: A lightweight tool for deploying and managing containerised applications across a network of Docker

A lightweight tool for deploying and managing containerised applications across a network of Docker hosts. Bridging the gap between Docker and Kubernetes ✨ - psviderski/uncloud

github.com

 

반응형