본문 바로가기
DevOps

[DevOps] 파이프라인(Pipeline) 이해하기 (GitHub/GitLab → Jenkins → Docker → Kubernetes)

by SeungyubLee 2025. 10. 31.

※ DevOps 배포 파이프라인(Pipeline) 순서

<실제 서비스 배포 과정 순서>

[개발자]
   ↓
GitHub/GitLab (코드 저장 및 버전 관리)
   ↓ (push, merge)
Jenkins (CI/CD 자동화)
   ↓ (빌드 & 테스트)
Docker (컨테이너 이미지 생성)
   ↓ (이미지 저장)
Container Registry (DockerHub / GitLab Registry / AWS ECR 등)
   ↓ (K8s가 pull)
Kubernetes (컨테이너 기반 서비스 운영)

 도구별 역할 설명

기술 하는 일 비유
GitHub/GitLab 코드 저장 & 협업 코드 보관소 + 협업 플랫폼
Jenkins 빌드/테스트/배포 자동화(CI/CD) 자동 조리·배달 시스템
Docker 앱을 실행 환경과 함께 묶어 이미지로 만들기(컨테이너화) 도시락 포장
Container Registry Docker 이미지 저장 도시락 냉동 창고
Kubernetes 컨테이너 배포·운영·확장·복구 자동 급식·배치 시스템

 

 더 쉽게 요약

· GitHub/GitLab → 코드를 올리는 곳 (버전 관리)
· Jenkins → 코드를 테스트·빌드하고 배포 자동화
· Docker → 앱을 실행 가능한 컨테이너로 패키징
· Container Registry → 패키지(Docker 이미지)를 저장하는 창고
· Kubernetes → 그 컨테이너를 여러 서버에서 자동 운영

 

 개발자 관점 예시

1. 개발자가 기능 개발한 뒤 git push
2. GitLab/GitHub 저장소에 코드 반영
3. Jenkins가 코드 변경 감지 → 테스트/빌드
4. Docker로 앱을 이미지로 생성
5. 이미지 저장소에 업로드
6. Kubernetes가 그 이미지를 가져와 서비스에 배포
7. 트래픽 증가 시 Kubernetes가 컨테이너 자동 확장

 

 요약

Git에 코드 올리고 → Jenkins가 자동 빌드·배포하고 → Docker로 만들고 → Kubernetes가 운영한다.

GitHub/GitLab → Jenkins → Docker → Container Registry → Kubernetes

개발자가 코드를 GitHub/GitLab에 push하면 Jenkins가 자동으로 빌드하고 테스트한다.
이후 Docker 이미지로 패키징하여 Container Registry에 저장한 뒤,

Kubernetes가 이미지를 pull하여 서비스로 배포 및 운영을 한다.

'DevOps' 카테고리의 다른 글

[DevOps] Docker(도커) vs Kubernetes(쿠버네티스)  (0) 2025.10.31