🚀 프로메테우스 실습 준비 가이드
📑 목차
1. 다음 강의 미리보기
수업 진행 순서
이론 학습 완료 → 이제 실습으로 직접 체험하는 단계
🎯 예상 실습 흐름
📋 강의 로드맵 (수업 자료 기반)
1강: 쿠버네티스에게 프로메테우스란? ✅ 완료
→ 학습 내용: 문제 정의, 모니터링의 필요성
2강: 모니터링 파이프라인 개념 ✅ 완료
→ 학습 내용: 파이프라인 이해, 메트릭 vs 로그
3강: 왜 프로메테우스인가? ✅ 완료
→ 학습 내용: 도구 비교, 선택 근거
4강: Vagrant로 쿠버네티스 배포하기 ← 다음 강의!
→ 실습 시작: 클러스터 구축
5강 이후 예상:
- Node-exporter 설치 및 설정
- Prometheus 설치 및 설정
- Grafana 대시보드 구성
- 실제 모니터링 시나리오 체험💻 실습 환경 구성도
Vagrant로 구축할 환경:
┌─────────────────────────────────────────┐
│ Host Machine │
│ (macOS/Windows) │
│ ┌─────────────────────────────────────┐ │
│ │ VirtualBox │ │
│ │ ┌─────┐ ┌─────┐ ┌─────┐ ┌─────┐ │ │
│ │ │ M1 │ │ W1 │ │ W2 │ │ W3 │ │ │
│ │ │마스터│ │워커1│ │워커2│ │워커3│ │ │
│ │ └─────┘ └─────┘ └─────┘ └─────┘ │ │
│ └─────────────────────────────────────┘ │
└─────────────────────────────────────────┘
구성 예상:
- 마스터 노드 1개: 쿠버네티스 컨트롤 플레인
- 워커 노드 3개: 애플리케이션 실행
- 각 노드: Ubuntu 20.04 LTS, 2CPU, 2GB RAM2. 실습 환경 요구사항
💡 하드웨어 요구사항
📊 권장 스펙
| 구성요소 | 최소 요구사항 | 권장 사항 | 설명 |
|---|---|---|---|
| RAM | 8GB | 16GB 이상 | 가상머신 4개 동시 실행 |
| CPU | 4코어 | 8코어 이상 | 가상화 성능 |
| 디스크 | 50GB | 100GB 이상 | VM 이미지 + 데이터 |
| 네트워크 | 안정적 인터넷 | 유선 권장 | ISO 다운로드, 패키지 설치 |
⚠️ 리소스 분배
총 16GB RAM 기준 분배:
Host OS: 8GB (macOS/Windows)
마스터 노드: 2GB
워커 노드 1: 2GB
워커 노드 2: 2GB
워커 노드 3: 2GB
총 8GB RAM인 경우:
Host OS: 4GB
마스터 노드: 1.5GB
워커 노드: 각 1GB (3개)
→ 성능 제약 있음, 학습용으로는 가능🛠️ 소프트웨어 요구사항
📋 필수 설치 도구
1. VirtualBox:
버전: 7.0 이상
용도: 가상머신 실행 엔진
다운로드: https://www.virtualbox.org/
2. Vagrant:
버전: 2.3 이상
용도: 가상머신 자동 관리
다운로드: https://www.vagrantup.com/
3. Git (선택사항):
용도: Vagrantfile 저장소 클론
macOS: 기본 설치됨
Windows: https://git-scm.com/💻 설치 확인 명령어
# VirtualBox 설치 확인
VBoxManage --version
# 출력 예시: 7.0.12r159484
# Vagrant 설치 확인
vagrant --version
# 출력 예시: Vagrant 2.3.7
# Git 설치 확인
git --version
# 출력 예시: git version 2.39.03. Vagrant 기본 설정
💡 Vagrant 기초 이해
Vagrant란?
가상머신을 코드로 관리하는 도구. Infrastructure as Code의 한 형태.
📋 기본 개념
Vagrantfile:
역할: 가상머신 설정을 코드로 정의
언어: Ruby DSL (사용하기 쉬움)
위치: 프로젝트 루트 디렉토리
Box:
정의: 가상머신 템플릿
예시: ubuntu/focal64 (Ubuntu 20.04)
저장소: Vagrant Cloud
Provider:
정의: 가상화 엔진
예시: VirtualBox, VMware, AWS🔧 예상 Vagrantfile 구조
💻 기본 Vagrantfile 템플릿
# Vagrantfile 예시 (실제 강의에서 제공될 내용 예상)
Vagrant.configure("2") do |config|
# 기본 OS 이미지
config.vm.box = "ubuntu/focal64"
# 마스터 노드
config.vm.define "master" do |master|
master.vm.hostname = "k8s-master"
master.vm.network "private_network", ip: "192.168.56.10"
master.vm.provider "virtualbox" do |vb|
vb.memory = 2048
vb.cpus = 2
end
end
# 워커 노드들
(1..3).each do |i|
config.vm.define "worker#{i}" do |worker|
worker.vm.hostname = "k8s-worker#{i}"
worker.vm.network "private_network", ip: "192.168.56.1#{i}"
worker.vm.provider "virtualbox" do |vb|
vb.memory = 2048
vb.cpus = 2
end
end
end
# 공통 프로비저닝
config.vm.provision "shell", inline: <<-SHELL
apt-get update
apt-get install -y curl wget
# Docker 설치
curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh
usermod -aG docker vagrant
# 쿠버네티스 설치 스크립트 (예상)
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" > /etc/apt/sources.list.d/kubernetes.list
apt-get update
apt-get install -y kubelet kubeadm kubectl
SHELL
end📋 Vagrant 기본 명령어
💻 실습에서 사용할 명령어들
# 프로젝트 디렉토리 생성
mkdir prometheus-k8s-lab
cd prometheus-k8s-lab
# Vagrantfile이 있는 경우 가상머신 시작
vagrant up
# 특정 노드만 시작
vagrant up master
vagrant up worker1
# 가상머신 상태 확인
vagrant status
# SSH 접속
vagrant ssh master
vagrant ssh worker1
# 가상머신 중지
vagrant halt
# 가상머신 삭제 (주의!)
vagrant destroy🎯 예상 실습 진행 순서
📋 첫 실습 세션 예상
1단계: 환경 준비 (10분)
- Vagrantfile 다운로드 또는 작성
- vagrant up 실행
- 4개 가상머신 부팅 대기
2단계: 쿠버네티스 클러스터 구축 (20분)
- 마스터 노드에서 kubeadm init
- 워커 노드들을 클러스터에 조인
- CNI 플러그인 설치 (Calico/Flannel)
3단계: 클러스터 확인 (10분)
- kubectl get nodes 확인
- 샘플 Pod 배포 테스트
- 네트워크 연결성 확인
4단계: 모니터링 준비 (10분)
- node-exporter 설치 준비
- /metrics 엔드포인트 확인
- 다음 강의 준비 완료4. 핵심 개념 체크리스트
✅ 실습 전 반드시 확인할 개념들
📋 1. 파이프라인 개념 이해
[ ] 파이프라인 = 순차적 작업의 연결
[ ] 리눅스 파이프(|) 예시 이해
[ ] 모니터링 파이프라인 3단계 암기:
1단계: 데이터 수집 (Exporter)
2단계: 통합 저장 (Prometheus)
3단계: 시각화 (Grafana)📋 2. 메트릭 기본 개념
[ ] 메트릭 = 시스템 상태의 숫자 표현
[ ] Resource 메트릭: CPU, 메모리, 디스크, 네트워크
[ ] Application 메트릭: 응답시간, 처리량, 에러율
[ ] 시계열 데이터: 시간별 변화 추적📋 3. 프로메테우스 구성요소 역할
[ ] node-exporter: OS 메트릭 → Prometheus 형식 변환
[ ] kube-state-metrics: 쿠버네티스 상태 메트릭
[ ] Prometheus Server: 중앙 수집기 + 시계열 DB
[ ] Alertmanager: 알람 발송 시스템
[ ] Grafana: 대시보드 및 시각화📋 4. Pull vs Push 이해
[ ] Pull 방식: Prometheus가 각 서버 방문해서 데이터 수집
[ ] /metrics 엔드포인트: 메트릭 데이터 노출 URL
[ ] 장점: 서버 장애 시에도 복구 후 자동 재연결
[ ] 스크레이핑: 주기적 데이터 수집 과정 (기본 15초)🎯 실습 중 주의사항
⚠️ 일반적인 문제들
메모리 부족:
증상: 가상머신이 느리거나 멈춤
해결: 각 VM 메모리를 1GB로 줄이거나 워커 노드 수 감소
네트워크 문제:
증상: 노드 간 통신 안됨
해결: VirtualBox 네트워크 어댑터 설정 확인
방화벽 문제:
증상: /metrics 접근 안됨
해결: ufw disable 또는 포트 오픈
시간 동기화:
증상: 메트릭 타임스탬프 이상
해결: VM들의 시간 동기화 확인📚 학습 리소스 준비
📖 실습 중 참고할 자료
공식 문서:
- Prometheus: https://prometheus.io/docs/
- Grafana: https://grafana.com/docs/
- Kubernetes: https://kubernetes.io/docs/
유용한 명령어:
- kubectl get nodes
- kubectl get pods -n kube-system
- curl http://localhost:9100/metrics
- systemctl status prometheus
PromQL 기초:
- up: 타겟 상태 확인
- node_cpu_seconds_total: CPU 메트릭
- rate(node_cpu_seconds_total[5m]): CPU 사용률🔗 다음 단계 예고
🚀 실습 완료 후 기대 효과
실습 완료 시 경험하게 될 것들:
1. 모니터링 파이프라인 실물 확인:
- /metrics 엔드포인트 직접 확인
- Prometheus에서 데이터 수집 과정 관찰
- Grafana 대시보드에서 실시간 그래프 확인
2. 장애 시뮬레이션:
- CPU 부하 테스트 → 그래프 변화 확인
- Pod 재시작 → 메트릭 변화 관찰
- 알람 발생 → Slack 알림 수신
3. 실무 감각 획득:
- PromQL 쿼리 직접 작성
- 대시보드 커스터마이징
- 알람 규칙 설정
결과: "프로메테우스가 실제로 어떻게 작동하는지" 체감🎓 최종 정리
✅ 준비 완료 체크리스트
환경 준비:
[ ] VirtualBox 7.0+ 설치 완료
[ ] Vagrant 2.3+ 설치 완료
[ ] 하드웨어 스펙 확인 (RAM 8GB+)
[ ] 네트워크 연결 안정적
개념 이해:
[ ] 모니터링 파이프라인 3단계 숙지
[ ] 메트릭과 로그 차이 이해
[ ] Pull vs Push 방식 차이 이해
[ ] 프로메테우스 구성요소 역할 파악
명령어 숙지:
[ ] Vagrant 기본 명령어 (up, halt, ssh, destroy)
[ ] Kubernetes 기본 명령어 (get nodes, get pods)
[ ] curl을 통한 /metrics 접근 방법
🚀 다음 실습 기대하기
실습의 가치
이론으로 배운 “데이터 수집 → 저장 → 시각화”의 전체 흐름을 직접 눈으로 확인하고 손으로 조작해볼 수 있습니다.
실습을 통해 다음을 경험하게 됩니다:
- 실제 메트릭 데이터 확인 (숫자로 된 시스템 상태)
- 실시간 그래프 변화 관찰 (CPU 부하 증가 → 그래프 상승)
- 알람 시스템 동작 (임계치 초과 → Slack 알림)
📚 관련 문서
- 01_프로메테우스_기초_개념_완벽_정리 - 기초 개념 복습
- 02_모니터링_파이프라인_완벽_이해 - 파이프라인 흐름 재확인
- 03_프로메테우스_vs_다른_도구_비교 - 도구 선택 근거
이제 이론 학습이 끝났습니다. 다음 실습에서 직접 체험해보세요! 🎯