피드로 돌아가기
EP2: Mapping the Labyrinth: How Coolify Deploys Your Apps (and Why K8s Fits)
Dev.toDev.to
DevOps

SSH 기반 CLI 파이프라인 분석을 통한 Coolify의 Kubernetes 확장 가능성 검증

EP2: Mapping the Labyrinth: How Coolify Deploys Your Apps (and Why K8s Fits)

drtobbyas2026년 4월 22일3intermediate

Context

Coolify의 기존 배포 엔진은 Docker Compose 중심의 절차적 로직으로 설계되어 Kubernetes 지원이 불가능하다는 인식이 지배적이었음. 단일 파일에 집중된 4,000라인 규모의 절차적 배포 Job이 엔진의 핵심 제어 흐름을 담당하는 구조임.

Technical Solution

  • ApplicationDeploymentJob.php의 절차적 흐름 분석을 통한 배포 시퀀스 추상화 가능성 식별
  • 원격 서버 제어를 위해 특정 SDK가 아닌 SSH 기반의 Shell Command 실행 방식인 remoteProcess.php 구조 활용
  • Docker 명령어를 kubectl 명령어로 치환하는 Translator 계층 도입을 통한 엔진 재사용 설계
  • KubernetesDestination 모델 정의를 통한 대상 서버의 오케스트레이터 타입 확장
  • SELinux 환경의 Volume Relabeling(:z flag) 및 Privileged 모드 적용을 통한 프록시 컨테이너 권한 문제 해결

- 벤더 종속적 SDK 대신 SSH 기반의 CLI 추상화 계층을 구축하여 인프라 확장성 확보 - 복잡한 오케스트레이터 로직 설계 시 절차적 흐름을 명시적으로 관리하여 디버깅 및 분석 효율성 제고 - 보안 강화 OS(Fedora/SELinux) 환경에서의 Docker Socket 마운트 시 권한 설정 및 레이블링 검토

원문 읽기