블로그 소개
Table Of Contents
온프렘 Proxmox 서버 + k8s로 배포하는 블로그입니다.
- 스택
graph TD
A[Proxmox
하이퍼바이저] --> B["Kubernetes
(k8s)"]
G["CI/CD
(Gitea Actions)"] --> H["Docker Build
(멀티 스테이지)"]
H --> I["Harbor Registry
(컨테이너 레지스트리)"]
I --> J["ArgoCD
(GitOps)"]
J --> B
H --> L["Stage 1: Hugo Builder
(Go + Node.js)
정적 파일 생성"]
H --> M["Stage 2: Nginx
(Alpine)"]
L --> M
B --> N["Docker Container
(Hugo + Nginx)"]
M --> N
N --> O["정적 파일 서빙"]
위 다이어그램은 Proxmox를 기반으로 Kubernetes에 배포된 블로그의 기술 스택과 배포 파이프라인을 보여줍니다.
인프라 계층:
- Proxmox: On-premise 가상화 플랫폼, Kubernetes 클러스터의 하이퍼바이저 역할
- Kubernetes (k8s): 컨테이너 오케스트레이션 및 서비스 배포 관리
CI/CD 파이프라인:
- CI/CD (Gitea/GitHub Actions): 코드 푸시 시 자동으로 빌드 및 배포 프로세스 트리거
- Docker Build (멀티 스테이지):
- Stage 1: Hugo 빌더 이미지에서 TailwindCSS 컴파일 및 정적 사이트 생성
- Stage 2: Nginx Alpine 이미지로 정적 파일만 복사하여 최종 이미지 생성
- Harbor Registry: 빌드된 Docker 이미지를 저장하는 컨테이너 레지스트리
- ArgoCD (GitOps): Harbor Registry의 이미지를 Kubernetes에 자동 배포하는 GitOps 도구
애플리케이션 계층:
- Hugo: Go로 작성된 정적 사이트 생성기, Markdown 콘텐츠를 HTML로 변환
- TailwindCSS: npm 패키지로 관리되는 CSS 프레임워크, 빌드 시 Hugo와 함께 컴파일
- Nginx: Docker 컨테이너 내에서 정적 HTML 파일을 서빙하는 웹 서버