프로젝트 소개

Uncloud는 클라우드 VM과 베어메탈을 포함한 Docker 호스트 네트워크 전반에 컨테이너화된 애플리케이션을 배포하고 관리하도록 설계된 경량 클러스터링 및 컨테이너 오케스트레이션 도구입니다. 머신 간에 보안 WireGuard 메시 네트워크를 생성하여 자동 서비스 검색, 로드 밸런싱, HTTPS 인그레스, 간단한 CLI 관리 기능을 제공합니다. Kubernetes와 같은 전통적인 오케스트레이터와 달리 Uncloud에는 유지해야 할 중앙 제어 플레인이나 쿼럼이 없습니다. 각 머신은 피어 투 피어 통신을 통해 클러스터 상태의 동기화된 복사본을 유지하므로 일부 머신이 오프라인이 되어도 작업이 계속됩니다. 이 분산 설계는 운영 오버헤드를 줄이고 단일 장애 지점을 제거합니다. 주요 기능은 다음과 같습니다: - **어디든 배포**: 클라우드 VM, 전용 서버, 베어메탈을 하나의 통합 환경으로 결합합니다. - **Docker Compose 지원**: 서비스와 볼륨을 정의할 때 익숙한 Compose 형식을 사용합니다. - **무중단 배포**: 서비스 중단 없이 롤링 업데이트를 수행합니다. - **Unregistry 통합**: 외부 레지스트리 없이 Docker 이미지를 머신에 직접 빌드하고 푸시합니다. - **서비스 검색**: 내장 DNS가 서비스 이름을 컨테이너 IP로 해석합니다. - **영구 스토리지**: 머신 전반에서 Docker 볼륨을 관리합니다. - **제로 구성 프라이빗 네트워크**: 피어 검색과 NAT 통과를 갖춘 자동 WireGuard 메시. - **관리형 DNS**: Uncloud DNS를 통해 공용 서비스에 대한 자동 DNS 레코드를 제공합니다. - **자동 HTTPS**: 내장 Caddy 리버스 프록시가 TLS 인증서를 처리합니다. - **Docker 유사 CLI**: 인프라와 앱 관리를 위한 익숙한 명령어를 제공합니다. - **원격 관리**: 어떤 단일 머신에든 SSH로 접속하여 전체 클러스터를 제어합니다. Uncloud는 Docker와 Kubernetes 사이의 간극을 메우는 것을 목표로 하며, Kubernetes의 복잡성 없이 자체 호스팅 인프라를 원하는 개발자에게 실용적인 솔루션을 제공합니다. 현재 활발히 개발 중(pre-1.0)이며 Docker, Caddy, WireGuard, Corrosion(CRDT 기반 분산 SQLite 데이터베이스)과 같이 검증된 프로젝트에 의존합니다. iximiuz Labs에서 대화형 튜토리얼과 플레이그라운드를 이용할 수 있으며, 커뮤니티 레시피는 uncloud-recipes 저장소에 있습니다. 이 프로젝트는 Kamal, Fly.io, Tailscale, Talos Linux, Docker Swarm Classic에서 영감을 받았습니다.