[TIL] Kubernetes 확장성과 DevOps 학습 정리-2025.09.08
2025. 9. 11. 09:25ㆍ대외활동/인공지능사관학교
728x90
반응형
SMALL

목표
- 쿠버네티스에서 확장성(Scalability) 을 어떻게 구현하는지 이해한다.
- Helm, Prometheus, Grafana, HPA(Horizontal Pod Autoscaler)와 같은 핵심 도구를 실제 적용 사례와 함께 학습한다.
- Ansible을 통한 자동화, Helm을 통한 배포, Prometheus/Grafana를 통한 모니터링, HPA를 통한 오토스케일링 등 엔드투엔드 DevOps 파이프라인 흐름을 익힌다.
1. 쿠버네티스에서의 확장성 개념
- 수평 확장(Scale-Out): Pod 복제(replica)를 늘려 트래픽을 분산 처리. → HPA가 자동화.
- 수직 확장(Scale-Up): Pod 자체의 CPU/Memory 리소스를 증설. → Limits/Requests 조정.
- 노드 확장: 클러스터에 새로운 노드를 추가하거나 줄임으로써 전체 리소스 용량 확장.
➡️ 핵심: 워크로드에 맞춰 Pod 수와 리소스를 자동 조정하는 것이 쿠버네티스의 강점
2. Helm을 통한 애플리케이션 배포
- Helm = 쿠버네티스의 패키지 매니저. 복잡한 YAML을 차트(Chart) 단위로 관리
- 구조: Chart.yaml, values.yaml, templates/.
- 장점:
- 수많은 리소스를 묶어 간단히 배포
- 환경별 values 파일로 재사용성 확보
- helm upgrade, helm rollback으로 릴리즈 관리 가능
➡️ Helm 차트를 활용하면 Nginx, MySQL, Prometheus Stack 등을 손쉽게 설치/업그레이드 가능
3. Prometheus & Grafana로 모니터링
Prometheus
- Pull 기반 메트릭 수집(/metrics 엔드포인트)
- 시계열 데이터 저장 및 PromQL 쿼리 제공
- Service Discovery → Pod IP 변경에도 자동 추적
- Alertmanager → CPU 80% 이상 같은 조건 충족 시 알림 발송
Grafana
- Prometheus 데이터 시각화 대시보드
- CPU/메모리 사용률, API 요청 지연, 에러율 확인
➡️ kube-prometheus-stack Helm 차트를 설치하면 Prometheus + Grafana + Alertmanager + Exporter들이 한 번에 구성됨
4. Horizontal Pod Autoscaler (HPA)
- HPA는 Pod 리소스 사용량(CPU/메모리) 기준으로 자동 스케일링
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
name: calculator-hpa
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: calculator-deployment
minReplicas: 1
maxReplicas: 10
metrics:
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: 70
- kubectl get hpa 로 현재 Target/Replicas 확인 가능.
- Metrics Server 필요: CPU/메모리 데이터를 수집해서 HPA가 참고함.
➡️ 실습 효과: JMeter로 부하 → Grafana에서 CPU 상승 확인 → HPA가 Pod 개수 자동 확장
5. DevOps 파이프라인 구축 흐름
- FastAPI 애플리케이션 개발 및 계측 (/metrics 엔드포인트 노출)
- Dockerfile 작성 및 이미지 빌드/푸시 (예: DockerHub)
- Helm으로 쿠버네티스 배포 (Deployment, Service, Ingress)
- JMeter로 부하 테스트 (동시 접속 시 CPU 부하 발생)
- Prometheus/Grafana에서 모니터링 (Pod CPU/Memory 실시간 확인)
- HPA 적용 (자동 스케일링 확인)
- Alertmanager 연동 (Slack/Email로 알림 전송)
- 노드 관리 (kubectl cordon/drain/delete)
➡️ 이 과정을 통해 개발 → 배포 → 모니터링 → 자동 확장 → 알림 → 운영까지 완전한 DevOps 사이클 경험.
오늘의 배움 (Key Takeaways)
- Helm = 쿠버네티스 앱 배포의 필수 도구. values.yaml 기반 관리로 운영 효율 ↑.
- Prometheus+Grafana = 관측 가능성(Observability)의 핵심 스택. 시스템을 "보이는 상태"로 만들어 줌.
- HPA = 쿠버네티스 확장성의 상징. 부하에 따라 Pod를 자동으로 늘리고 줄임.
- Alertmanager 연계 = 운영 자동화. CPU 사용률 ↑ 시 슬랙/이메일 알림으로 즉시 대응 가능.
- DevOps 파이프라인을 통해 “개발–배포–운영–확장–알림”이 하나의 자동화된 흐름으로 이어짐을 확인.
728x90
반응형
LIST
'대외활동 > 인공지능사관학교' 카테고리의 다른 글
| [AI Crew]출석·공가 처리부터 공지 확인, TIL까지 완벽 체크리스트/인사교6기 (0) | 2025.09.12 |
|---|---|
| [TIL] AWS Certified AI Practitioner 과정 & AI 역사·개념 정리-2025.09.11 (0) | 2025.09.12 |
| [TIL] AWS 인프라 기초 개념-2025.09.09 (0) | 2025.09.11 |
| [TIL] AWS Cloud Practitioner 학습 정리-2025.09.10 (0) | 2025.09.11 |
| [TIL]Kubernetes 핵심 컴포넌트 & 워크로드 컨트롤러-2025.09.05 (0) | 2025.09.05 |