PodManager

메인 인덱스 | CCG-Platform | GitHub

이 문서는 PodManager 레포의 핵심 정보와 포트폴리오 메모를 한 파일로 정리한 노트입니다.

주요 목적

Traefik 쿠키 기반 라우팅을 가진 동적 컨테이너/파드 관리 시스템입니다. 사용자별 격리 환경을 위해 Docker와 Kubernetes 환경을 모두 지원합니다. 자동 정리 기능이 있는 사용자 세션당 격리된 컨테이너/파드를 생성 및 관리합니다.

주요 기술 스택

카테고리스택
백엔드FastAPI (Python 3.9+)
프록시/라우터Traefik v3.0
컨테이너 런타임Docker / Kubernetes
오케스트레이션Docker Compose / K8s
세션 관리Cookie-based (HTTP-only)

포트폴리오 메모

Docker/K8s 듀얼 환경 지원이 있는 복잡하고 프로덕션 준비된 시스템입니다. 구조가 분명한 쿠키 기반 라우팅, 자동 리소스 정리, 그리고 사용자 격리를 구현합니다. 여러 아키텍처 다이어그램과 함께 잘 문서화되어 있습니다. 컨테이너 오케스트레이션, 네트워킹, Python 백엔드 기술의 사례입니다.

주요 파일

Docker 버전

  1. docker/docker-compose.yml - 전체 시스템 정의
  2. docker/manager/main.py - FastAPI + Docker API
  3. docker/manager/Dockerfile - 매니저 컨테이너
  4. docker/user_app/ - 사용자 컨테이너 템플릿

Kubernetes 버전

  1. k8s/manager/main.py - FastAPI + Kubernetes API
  2. k8s/manifests/namespace.yaml - K8s 네임스페이스
  3. k8s/manifests/rbac.yaml - RBAC 설정
  4. k8s/manifests/traefik.yaml - Traefik 인그레스
  5. k8s/manifests/podmanager-deployment.yaml - 배포 설정
  6. k8s/build.sh - 빌드 자동화
  7. k8s/deploy.sh - 배포 자동화

Production

  1. production/manager/main.py - 프로덕션 매니저
  2. production/manager-rbac.yaml - 프로덕션 RBAC
  3. production/manager-deployment.yaml - 프로덕션 배포
  4. production/traefik-middleware.yaml - Traefik 설정

CI/CD

  1. .github/workflows/ghcr_push.yml - GitHub Actions

아키텍처 유형

동적 리소스 프로비저닝이 있는 마이크로서비스 기반:

User Browser → Traefik → Manager App → User Environment
                    ↓
            (Cookie-based routing)

주요 기능

  • 사용자당 동적 컨테이너/파드 생성
  • Traefik을 통한 쿠키 기반 세션 라우팅
  • 자동 리소스 정리 (10분 만료)
  • 듀얼 플랫폼 지원 (Docker/Kubernetes)
  • 격리된 사용자 환경
  • RBAC 보안 모델

관련 레포지토리

  • portal-backend (API 백엔드)
  • PodManager_V2 (프로덕션 API 버전)
  • TerraformLearn (인프라)

참고사항

  • 여러 문서와 함께 운영을 고려한
  • DevOps/컨테이너 기술의 사례
  • Traefik을 통한 복잡한 네트워킹
  • 포트폴리오 하이라이트를 위한 잘 구조화됨