DevOps / Infra
XGEN과 홈서버를 운영하며 쌓은 Kubernetes, K3s, GitOps, TLS, Jenkins, 멀티사이트 배포, 폐쇄망 배포 트러블슈팅 기록입니다.
K3s · ArgoCD · Istio · Jenkins
학습 경로
-
Step 1
K3s 기반 플랫폼
컨테이너 빌드, Kubernetes 오브젝트, Helm 설계를 순서대로 봅니다.
- 01
XGEN K3s 인프라 완전 해부 (1) — 전체 구조와 컨테이너 빌드 전략
XGEN 2.0 AI 에이전트 플랫폼의 K3s 기반 인프라를 처음부터 끝까지 해부한다. 1편에서는 전체 아키텍처 구조, Python/Rust/Node.js 4종 Dockerfile 멀티스테이지 빌드 전략, Docker Compose 인프라 스택, K8s-Docker 경계 연결 패턴을 다룬다.
- 02
XGEN K3s 인프라 완전 해부 (2) — Kubernetes 핵심 오브젝트와 스케일링 전략
XGEN 2.0 K3s 클러스터에서 실제 운영 중인 Kubernetes 오브젝트들을 분석한다. Pod, Deployment, Service의 관계부터 RollingUpdate 무중단 배포, HPA 자동 스케일링, livenessProbe/readinessProbe 설정까지, 실제 클러스터 상태와 템플릿 코드를 기반으로 설명한다.
- 03
XGEN K3s 인프라 완전 해부 (3) — Helm 차트 설계: 하나의 Chart로 6개 서비스 배포
XGEN 2.0의 Helm 차트 아키텍처를 분석한다. 단일 Chart로 6개 마이크로서비스를 배포하는 구조, values 파일 계층화, _helpers.tpl의 4단계 config 병합 로직, 이미지 경로 자동 생성까지. helm template 명령으로 실제 렌더링 결과를 확인하며 설명한다.
- 01
-
Step 2
GitOps와 배포 자동화
Jenkins, ArgoCD, reusable workflow를 연결합니다.
- 01
XGEN K3s 인프라 완전 해부 (4) — CI/CD 파이프라인: Jenkins 빌드에서 ArgoCD 배포까지
XGEN 2.0의 CI/CD 파이프라인을 해부한다. Jenkins의 설정 3파일 분리 아키텍처, build.groovy 파이프라인 스테이지별 동작, 캐시 오류 자동 재시도, 듀얼 태깅 전략을 분석하고, ArgoCD의 App of Apps 패턴으로 단일 진입점에서 6개 서비스를 자동 배포하는 구조를 설명한다.
- 02
Reusable GitHub Actions와 Helm으로 K3s 범용 배포 플랫폼 구축하기
두 프로젝트의 CI/CD 파이프라인 복붙 문제를 해결하기 위해 Reusable GitHub Actions Workflow와 범용 Helm Chart를 설계했다. 레지스트리 없는 K3s 단일 노드 환경에서 docker save + k3s ctr images import로 이미지를 로드하고, ArgoCD ApplicationSet Git Generator로 새 앱을 자동 발견하는 구조를 구축한 과정을 정리한다.
- 03
ArgoCD 멀티 고객사 배포 아키텍처 — ApplicationSet 시행착오와 단일 진입점 설계
XGEN 2.0 플랫폼을 다수 고객사(롯데, 제주 등)에 배포하면서 ArgoCD App of Apps 패턴을 Helm 기반으로 재설계한 과정을 정리한다. ApplicationSet 도입과 철회, projects/*.yaml 단일 진입점 구조, 하드코딩 제거까지의 시행착오를 다룬다.
- 01
-
Step 3
운영과 멀티사이트
TLS, 멀티사이트 배포, 폐쇄망/홈서버 운영 문제를 다룹니다.
- 01
체험존 프로비저너: 신청 한 건으로 격리된 멀티테넌트 스택을 자동 발급하다
이메일 신청 한 건으로 XGEN 전체 스택을 격리해 자동 발급하는 셀프서비스 체험존(Trial Zone) 프로비저너를 설계하고 운영한 과정을 정리한다. Docker Compose per-tenant 격리, AWS 엣지 TLS 종료, nginx 동적 서브도메인 라우팅, 비동기 발급, TTL 회수까지 실전 트러블슈팅 중심으로 다룬다.
- 02
XGEN 멀티사이트 배포 자동화 — 하나의 코드베이스로 N개 고객사 운영하기
하나의 Helm 차트와 ArgoCD 템플릿으로 4개 사이트(온프레미스 K3s, 제주 서버, AWS EKS, 롯데이마트)를 운영하는 멀티사이트 배포 아키텍처를 설계하고 자동화한 과정을 정리한다. 사이트별 레지스트리 분리, setup-k3s.sh 자동화, MinIO에서 S3 전환, Istio 동적 생성까지.
- 03
Caddy 리버스 프록시로 홈서버 HTTPS 자동화 — Nginx 수동 설정과의 비교
홈서버에서 포트 번호 대신 도메인으로 서비스에 접속하기 위해 Caddy 리버스 프록시를 도입한 과정을 기록한다. Let's Encrypt SSL 인증서 자동 발급/갱신, TLS-ALPN-01 챌린지, Nginx 대비 설정 간소화, Docker Compose 배포와 서비스 확장 방법까지 다룬다.
- 01
대표 글
- DevOps
체험존 프로비저너: 신청 한 건으로 격리된 멀티테넌트 스택을 자동 발급하다
이메일 신청 한 건으로 XGEN 전체 스택을 격리해 자동 발급하는 셀프서비스 체험존(Trial Zone) 프로비저너를 설계하고 운영한 과정을 정리한다. Docker Compose per-tenant 격리, AWS 엣지 TLS 종료, nginx 동적 서브도메인 라우팅, 비동기 발급, TTL 회수까지 실전 트러블슈팅 중심으로 다룬다.
Docker Compose멀티테넌트 - DevOps
XGEN K3s 인프라 완전 해부 (1) — 전체 구조와 컨테이너 빌드 전략
XGEN 2.0 AI 에이전트 플랫폼의 K3s 기반 인프라를 처음부터 끝까지 해부한다. 1편에서는 전체 아키텍처 구조, Python/Rust/Node.js 4종 Dockerfile 멀티스테이지 빌드 전략, Docker Compose 인프라 스택, K8s-Docker 경계 연결 패턴을 다룬다.
K3sKubernetes - DevOps
XGEN 멀티사이트 배포 자동화 — 하나의 코드베이스로 N개 고객사 운영하기
하나의 Helm 차트와 ArgoCD 템플릿으로 4개 사이트(온프레미스 K3s, 제주 서버, AWS EKS, 롯데이마트)를 운영하는 멀티사이트 배포 아키텍처를 설계하고 자동화한 과정을 정리한다. 사이트별 레지스트리 분리, setup-k3s.sh 자동화, MinIO에서 S3 전환, Istio 동적 생성까지.
XGENKubernetes - DevOps
Reusable GitHub Actions와 Helm으로 K3s 범용 배포 플랫폼 구축하기
두 프로젝트의 CI/CD 파이프라인 복붙 문제를 해결하기 위해 Reusable GitHub Actions Workflow와 범용 Helm Chart를 설계했다. 레지스트리 없는 K3s 단일 노드 환경에서 docker save + k3s ctr images import로 이미지를 로드하고, ArgoCD ApplicationSet Git Generator로 새 앱을 자동 발견하는 구조를 구축한 과정을 정리한다.
GitHub ActionsHelm
핵심 태그
시리즈
- Rust 커머스 검색 엔진 · 4 posts
- DevOps 실전 · 2 posts
최신 글
전체 글XGEN MCP 폐쇄망 번들 시스템: 외부망 패키지를 .tar.gz로 묶어 원클릭 도구 세션까지 연결하기
MCP 서버를 인터넷이 막힌 폐쇄망 XGEN 환경에서 설치하고 실행하기 위해 외부망 번들 빌드, 업로드, 세션 복원, 마켓 카탈로그, 데스크톱 앱 UX를 하나의 흐름으로 연결한 구현 과정을 정리한다. stdio JSON-RPC 응답 correlation 버그와 웹/데스크톱 공통 API 설계까지 다룬다.
XGEN Workbench 분산 실행 인프라: KVM 컴퓨트 풀, GPU 워커, PriorityClass, NetworkPolicy까지
XGEN의 LLMOps/MLOps 워크벤치를 단일 Pod 실행에서 KVM 컴퓨트 풀과 GPU 워커 기반 분산 실행 구조로 확장한 과정을 정리한다. Workbench 컨트롤러, SandboxExec, Prompt Studio, 학습 Job, headless worker, GPU 메트릭, PriorityClass, NetworkPolicy, anti-affinity 설계까지 다룬다.
XGEN 데스크톱 앱 고도화: Tauri에서 로컬 Ollama, 백엔드 자동기동, MCP/RAG를 한 번에 연결하기
기존 웹 기반 XGEN 프론트엔드를 Tauri 데스크톱 앱으로 감싸는 수준을 넘어, 로컬 Ollama 자동 기동, Docker Compose 백엔드 자동 시작, MCP 라이브러리 UX, 로컬 모델 서빙 패널, RAG 문서 API 절대경로화를 하나의 앱 경험으로 묶은 과정을 정리한다.
Jenkins 자격증명 하드코딩 제거: K8s Secret + JCasC 변수 참조 전환과 부수 인프라 fix
Jenkins JCasC 설정에 박혀 있던 admin 자격증명을 K8s Secret으로 분리하고 JCasC 변수 참조로 주입하는 보안 전환을 정리한다. 함께 묶어서 처리한 Fuseki Recreate strategy, JCasC TARGET_ENV 파라미터 오버라이드, SSE 스트리밍 라우트 수정도 함께 다룬다.
XGEN MS 365 MCP 통합 — Device Code Flow 인증부터 워크플로우 노드까지
XGEN 2.0 AI Agent 플랫폼에 Microsoft 365 MCP 서버를 통합한 과정을 정리한다. Client Credentials에서 Device Code Flow로의 인증 방식 전환, K8s PVC 토큰 캐시, 프론트엔드-백엔드-인프라 3계층에 걸친 아키텍처 설계, 그리고 100개 이상의 MS 365 도구를 프리셋으로 관리하는 방법까지 다룬다.
XGEN GPU 모델 서빙 인프라 실전기 — 폐쇄망 배포부터 멀티 GPU 오버라이드까지
XGEN 플랫폼의 GPU 모델 서빙 서비스(xgen-model)를 제주 폐쇄망과 AWS EKS에 배포하면서 겪은 인프라 삽질을 정리한다. Istio/Traefik 전환, imagePullPolicy 폐쇄망 대응, GPU Recreate 배포 전략, CUDA graph 캡처 중 헬스체크 실패, 프로젝트별 gpuCount/config 오버라이드, MinIO credential 불일치, 프론트엔드 tensor_parallel_size 자동 설정까지.
XGEN GPU 벤더 추상화 — Vulkan 의존 제거와 멀티 벤더 Dockerfile 전략
XGEN 모델 서버의 GPU 관리가 Vulkan 종속 구조에서 벤더 중립 아키텍처로 전환한 과정을 정리한다. Hardware 계층 타입 시스템 설계, Management API 재설계, 프론트엔드 GPU UX 개선, NVIDIA/AMD 벤더별 Dockerfile 분리 전략과 amdsmi 설치 순서 트랩까지 실전 삽질기를 포함한다.
K3s 리소스 튜닝 실전 가이드 — OOMKilled와 CPU Throttling 해결기
XGEN 플랫폼 6개 마이크로서비스의 K3s 리소스 설정을 실사용량 기반으로 튜닝한 과정을 정리한다. OOMKilled 재시작, CPU throttling 성능 저하, 과할당 낭비를 해결하며 서비스별 최적 리소스 프로파일을 찾아간 3일간의 기록이다.