개요
항목 | 내용 |
시기 | 2025년 초 |
대상 | 100명 규모 개발 조직 전체 |
공동 발표 | 웹개발 2팀 함석명 (시연 담당) |
주제 | 쿠버네티스 배포 플로우: GitLab, Helm Chart, ArgoCD를 곁들인 |
다루는 범위 | 배포 플로우 전체, K8S 오브젝트, Helm Chart, ArgoCD, Istio 아키텍처 |
배경
사내에 Kubernetes가 처음 도입되는 시점이었습니다. 관련 내용이 여러 경로로 전달되었지만, 대부분의 개발자들이 K8S, Helm Chart, ArgoCD, Istio 등 처음 접하는 기술들에 대한 이해에 어려움을 겪고 있었습니다.
이에, 이 조직에서 커리어를 처음 시작한 신입 개발자의 시선에서 기술들을 해석하여, 간단하면서도 필요한 부분은 확실히 전달하는 것을 목표로 발표를 준비했습니다.
발표 구성
Part 1. 전체 배포 플로우
flowchart LR
A[shopping 레포지토리<br>커밋 Push] --> B[GitLab 파이프라인]
B --> C[앱 빌드 & 테스트]
C --> D[Docker 이미지 빌드]
D --> E[Harbor 푸쉬<br>태그: git commit hash]
E --> F[Helm Chart의<br>이미지 태그 치환]
F --> G[K8S 매니페스트<br>레포지토리 Push]
G --> H[ArgoCD<br>변경 감지 & 배포]Mermaid
복사
GitLab 파이프라인 → Docker 이미지 빌드(Harbor) → Helm Chart 태그 치환 → ArgoCD 자동 배포의 전체 흐름을 설명
Part 2. 쿠버네티스 핵심 개념
신입 개발자 관점에서 꼭 알아야 할 K8S 오브젝트를 단계적으로 설명:
•
컨테이너가 필요한 이유 — 서버 환경 차이를 넘어 배포를 용이하게
•
K8S가 필요한 이유 — 여러 서비스의 컨테이너 관리(오케스트레이션)
•
Pod — 배포의 최소 단위, 컨테이너의 그룹
•
ReplicaSet — Pod 복제 및 개수 관리
•
Deployment — 버전 관리, 롤백, 롤링 업데이트 전략
•
Service / EndpointSlice — L4 레이어 네트워크 라우팅
Part 3. Helm Chart
•
templates(오브젝트의 큰 틀)와 values(옵션 값)가 합쳐져 매니페스트가 되는 구조
•
관련 매니페스트들을 패키징하여 관리하는 필요성 설명
•
실제 HPA(HorizontalPodAutoscaler) 예시를 통한 template → values → 최종 매니페스트 매핑 시연
Part 4. ArgoCD
•
Helm Chart 변경을 감지해 자동 배포하는 역할
•
ArgoCD 시각화 화면 소개
Part 5. 실습 시연 (함석명)
•
실제 코드 Push부터 K8S 배포까지 라이브 시연
Part 6. Istio 서비스 메시
flowchart TD
A[외부 트래픽] --> B[istio-ingressgateway]
B --> C{VirtualService<br>라우팅 규칙}
C --> D[Pod A]
C --> E[Pod B]
subgraph Pod A
D --> F[istio-proxy<br>Envoy 사이드카]
F --> G[앱 컨테이너]
end
H[Istiod<br>컨트롤 플레인] -->|규칙 전파| B
H -->|규칙 전파| F
I[Gateway &<br>VirtualService] -->|설정 읽기| HMermaid
복사
•
K8S Service의 L4 라우팅만으로는 부족한 이유 (HTTP 헤더/경로 기반 라우팅 불가)
•
Istio 데이터 플레인(Envoy Proxy, Sidecar 패턴) + 컨트롤 플레인(Istiod) 아키텍처
•
K8S 환경에서의 구체적 구현: istio-proxy 컨테이너, istio-ingressgateway, Gateway/VirtualService 오브젝트
결과
•
발표 후 많은 개발자들이 K8S에 대한 기초 개념을 잡고 학습을 해나가는 데 도움이 되었다는 평가
•
신입 개발자 관점에서 "왜 이 기술이 필요한가"부터 시작하는 구성이 기존에 단편적으로 전달된 정보를 하나의 흐름으로 연결하는 데 효과적이었음