프로젝트 제목
GitOps 기반 K3s Microservices 환경 구축 및 CI/CD/Observability 자동화
프로젝트 목표 및 문제 정의
이 프로젝트는 기존의 수동 배포(Manual Deployment) 방식이 가진 한계를 극복하고, 클라우드 네이티브 환경에서 요구되는 안정적이고 자동화된 운영 체계를 구축하는 것을 목표로 했습니다.
해결하고자 했던 핵심 문제:
- 배포 비효율성 및 인적 오류: Microservices 환경에서 각 서비스를 수동으로 배포하고 관리하는 데 드는 시간 낭비와 휴먼 에러 발생 가능성.
- 인프라 변경 이력 부재 (Non-GitOps): 클러스터 환경 설정 변경 이력(Desired State)이 코드로 관리되지 않아 롤백이 어렵고 환경 일관성이 부족함.
- 장애 감지 및 대응 체계 미흡: 서비스 상태를 통합적으로 모니터링하고 장애 발생 시 즉각적인 알림을 받는 체계가 없어 대응 속도가 느림.
- 시스템 탄력성 검증 부재: 운영 중인 시스템이 실제 장애 상황(리소스 부족, 파드 고장 등)에 얼마나 잘 버티는지에 대한 검증 프로세스 누락.
주요 기술 스택
| 분류 | 기술 스택 | 주요 역할 |
|---|---|---|
| 컨테이너/런타임 | Kubernetes (K3s) | 경량화된 프로덕션 환경 구축 및 Microservices 컨테이너 오케스트레이션. |
CI/CD/GitOps |
Argo CD | Git(인프라 레포)의 코드를 감시하고 클러스터에 배포하는 Pull 기반 GitOps 구현 핵심 도구. |
| GitHub Actions | 소스코드 변경 시 이미지 빌드 및 GitOps Manifest 자동 업데이트 담당 (CI 파이프라인). | |
| Ansible | 서버 초기 환경 설정, K3s 설치 및 Argo CD 설치 자동화. | |
Observability |
Prometheus & Grafana | 클러스터 및 애플리케이션 메트릭 수집 및 시각화. (Full Stack Observability 기반) |
| Alertmanager | Prometheus 알림을 수신하여 Slack으로 전송하는 장애 알림 체계 구축. | |
| Loki & Promtail | 로그 수집 및 관리. | |
| Chaos Engineering | Ansible | 서버 초기 환경 설정, K3s 설치 및 Argo CD 설치 자동화 및 카오스 시나리오 실행(Chaos Injection). |
프로젝트 아키텍처 및 데이터 흐름

기대 효과
- Zero-Touch GitOps 구현: Git에 커밋만 하면, 클러스터에 수동 명령 없이 자동으로 배포(Sync)되는 End-to-End GitOps 파이프라인 구축.
- Full Stack Observability 확보: 메트릭(Prometheus), 로그(Loki), 시각화(Grafana)를 통합하여 클러스터 상태를 완벽하게 파악 가능한 환경 마련.
- 안전한 배포 체계 확립: Two-Repo Model (앱/인프라 분리) 및 리허설(Staging) 환경 분리 전략을 통해 운영 환경의 안정성 확보.
- 시스템 탄력성 확보 (Chaos Engineering): Ansible을 활용하여 파드 종료, 리소스 부족 등의 장애 시나리오를 주입하고, 시스템이 장애로부터 자동 복구되는지 검증하는 프로세스 마련.