
쿠버네티스를 실제 운영할 때는 다음과 같은 상황을 대비해 모니터링 시스템 구축이 필수적이다.
이를 위해 CPU, RAM뿐 아니라 HDD 사용량, 네트워크 I/O, 초당 요청 수, 특정 어플리케이션의 지연 등 다양한 지표를 관찰해야 한다.
쿠버네티스 자체에는 완전한 모니터링 도구가 내장되어 있지 않기 때문에,
Datadog, NewRelic, AWS CloudWatch 같은 상용 플랫폼을 사용하거나 여러 오픈소스 도구를 조합해 구축한다.
가장 널리 사용되는 오픈소스 기반 모니터링 스택은 다음과 같다.
/metrics 경로로 노출된 메트릭 데이터를 수집하여 시계열 형태로 저장한다.쿠버네티스 모니터링에서는 각 노드·컨테이너의 상태를 수집할 수 있도록 모니터링 데이터를 노출해야 한다.
/metrics 형식으로 출력하는 인터페이스/metrics 형태로 메트릭 노출/metrics 데이터를 스크랩 → 저장쿠버네티스에서는 각 구성 요소가 /metrics 경로로 메트릭 정보를 노출하고,
Prometheus가 해당 경로를 주기적으로 스크랩하여 데이터를 수집한다.
/metrics로 요청을 보내면 텍스트 기반(metrics format) 형태로 정보를 확인 가능쿠버네티스 Dashboard는 다음과 같은 역할을 하는 웹 기반 GUI 관리 도구이다.
kubectl CLI로 처리하던 내용을 브라우저에서 클릭으로 처리 가능즉, CLI에 익숙하지 않은 사용자에게 친숙한 관리 화면을 제공하는 도구이다.
모니터링 데이터는 다음 세 가지 수준으로 나뉜다.
쿠버네티스에서는 주로 인프라 + 컨테이너 레벨의 모니터링 데이터를 사용함.
docker run \
--volume=/rootfs:ro \
--volume=/var/run:/var/run:ro \
--volume=/sys:/sys:ro \
--volume=/var/lib/docker/:/var/lib/docker:ro \
--volume=/dev/disk/:/dev/disk:ro \
--publish=8080:8080 \
--detach=true \
--name=cadvisor \
google/cadvisor:latest
✔ 목적: 호스트 정보를 읽기 위해 rootfs, sys 등 주요 경로를 읽기 전용(ro) 으로 마운트
✔ 브라우저에서 http://<노드IP>:8080/containers 접속 → cAdvisor UI 확인 가능
Ubuntu Firefox에서 아래 주소로 접속:
https://192.168.100.111:8080/containers
curl localhost:8080/metrics
출력 예시:
container_cpu_usage_seconds_totalcontainer_memory_usage_bytescAdvisor가 제공하는 /metrics 데이터를 Prometheus가 수집하면,
컨테이너 단위의 시간 기반(Time-series) 모니터링이 가능해진다.
또한 인프라 수준의 메트릭은 Node Exporter,
앱 수준의 메트릭은 라이브러리 + exporter 를 사용해 수집 가능하다.
모니터링 데이터는 다음 세 가지 수준으로 나뉜다.
쿠버네티스에서는 주로 인프라 + 컨테이너 레벨의 모니터링 데이터를 사용함.
docker run \
--volume=/rootfs:ro \
--volume=/var/run:/var/run:ro \
--volume=/sys:/sys:ro \
--volume=/var/lib/docker/:/var/lib/docker:ro \
--volume=/dev/disk/:/dev/disk:ro \
--publish=8080:8080 \
--detach=true \
--name=cadvisor \
google/cadvisor:latest
✔ 목적: 호스트 정보를 읽기 위해 rootfs, sys 등 주요 경로를 읽기 전용(ro) 으로 마운트
✔ 브라우저에서 http://<노드IP>:8080/containers 접속 → cAdvisor UI 확인 가능
Ubuntu Firefox에서 아래 주소로 접속:
https://192.168.100.111:8080/containers
curl localhost:8080/metrics
출력 예시:
container_cpu_usage_seconds_totalcontainer_memory_usage_bytescAdvisor가 제공하는 /metrics 데이터를 Prometheus가 수집하면,
컨테이너 단위의 시간 기반(Time-series) 모니터링이 가능해진다.
또한 인프라 수준의 메트릭은 Node Exporter,
앱 수준의 메트릭은 라이브러리 + exporter 를 사용해 수집 가능하다.

클라우드 환경에서 SDN(Software Defined Network)을 구축할 때,
오픈소스 클라우드 플랫폼인 OpenStack을 사용한다.
OpenStack을 활용하면 다음과 같은 소프트웨어 정의 네트워크 기능(SDN) 을 만들 수 있다:
즉, SDN 기반의 IaaS 인프라를 직접 구성할 수 있게 된다.
OpenStack을 설치하려면 아래와 같은 VM 또는 물리 머신 환경이 필요하다:
가상머신(VMware 등)에
Ubuntu 20.04 Server (ubuntu-20.04-live-server-amd64.iso) 를 설치해서 실습 환경을 구성한다.
💡 참고
Ubuntu 20.04 Server 설치 화면은 Desktop 설치 방식과 일부 차이가 있음.
SDN 실습에서는 DevStack을 사용해 OpenStack을 빠르게 설치한다.
DevStack은 다음과 같은 OpenStack 네트워크·시스템 관리를 위한 주요 모듈이 포함된 설치 도구이다:
즉, DevStack으로 설치하면 “SDN을 포함한 OpenStack 전체 구성요소”를 한 번에 구축할 수 있다.
OpenStack 네트워크 구축은 원격에서 RDO(Remote Data Object) 를 사용해 작업할 수도 있지만,
실습 환경에서는 주로 Horizon 대시보드를 사용해 다음 요소들을 GUI 기반으로 설정한다:
이 과정을 통해 OpenStack 내부 가상 네트워크 구조를 만들고,
이를 기반으로 OpenStack API 사용도 가능해진다.
AWS나 Azure 같은 외부 클라우드에서 VM(Pod) 을 만든 뒤,
이 VM을 OpenStack에서 만든 네트워크와 연결하는 것도 가능하다.
즉,
OpenStack 내부 가상 네트워크 ↔ 외부 클라우드 VM
두 환경을 통신하도록 구성할 수 있다.
OpenStack에서는 다음과 같은 기술을 사용해 네트워크를 논리적으로 분리하거나 연결한다:
또한 AWS처럼








| 구분 | OpenStack | AWS |
|---|---|---|
| 개념 | 오픈소스로 직접 설치해 운영하는 클라우드 플랫폼 | Amazon이 제공하는 완성형 클라우드 서비스 |
| 누구 기준? | 운영자/엔지니어가 직접 설치·설정 | 사용자/기업이 바로 사용 |
| 예시 | “우리가 AWS 같은 걸 직접 구축한다” | “AWS를 돈 내고 바로 쓴다” |
📌 요약
→ OpenStack은 직접 만드는 AWS
→ AWS는 이미 만들어져 있는 서비스
| 구분 | OpenStack | AWS |
|---|---|---|
| 설치 필요? | ✔ 직접 설치 필요 (DevStack, TripleO, Kolla 등) | ❌ 설치 필요 없음 |
| 유지보수 | ✔ 직접 (네트워크, 스토리지, 인증 등) | ❌ AWS가 다 관리 |
| OS 패치/장애처리 | ✔ 직접 해결해야 함 | ❌ AWS 엔지니어가 해결 |
📌 OpenStack = 설치·업데이트·장애처리 전부 ‘직접’
📌 AWS = 버튼 클릭으로 바로 사용
| 기능 영역 | OpenStack | AWS |
|---|---|---|
| 컴퓨팅 | Nova | EC2 |
| 스토리지(블록) | Cinder | EBS |
| 스토리지(오브젝트) | Swift | S3 |
| 네트워크 | Neutron | VPC |
| 이미지 관리 | Glance | AMI |
| 대시보드 | Horizon | 콘솔(console) |
📌 AWS에서 되는 거의 모든 기능이 OpenStack에도 있음
→ 차이는 "누가 관리하느냐".
| 구분 | OpenStack | AWS |
|---|---|---|
| 네트워크 구성 | ✔ 직접 라우터, 서브넷, 포트 등을 설정해야 함 | ❌ AWS가 자동 구성, 사용자는 VPC/Subnet만 고르면 됨 |
| DHCP/라우터 | Neutron이 직접 동작 | AWS 내부에서 자동 운영 |
| 보안그룹 | 어그레이드 필요함 | 간단하게 규칙 추가 가능 |
📌 너가 지금 고생 중인 "포트 DOWN / DVR / geneve" 같은 문제는
AWS에서는 절대 발생하지 않는 문제
→ AWS가 내부에서 모든 네트워크를 자동으로 안정적으로 운영하기 때문.
| 구분 | OpenStack | AWS |
|---|---|---|
| 비용 | 오픈소스 무료 | 사용량 기반 과금 $$$ |
| 운영 비용 | 서버/스토리지/네트워크 인프라 비용 필요 | 서버 비용 없이 바로 사용 |
📌 OpenStack은 소프트웨어는 무료지만
물리 장비 비용 + 엔지니어 인건비가 많이 든다.
| 구분 | OpenStack | AWS |
|---|---|---|
| 확장성 | 운영자 실력에 따라 천차만별 | 전 세계 수준의 무한 확장 |
| 안정성 | 각 조직/기업의 운영 능력에 따라 다름 | SLA 99.99%, 자동 복구 |
| IoT/AI/ML 서비스 | 제한적 (별도 시스템 구축 필요) | 매우 풍부 |
| OpenStack | AWS |
|---|---|
| 기업 내부 프라이빗 클라우드 | 글로벌 서비스 운영 |
| 데이터센터 자체 구축 | 스타트업, IT 서비스 |
| 연구/교육 환경 | 대규모 트래픽 처리 |
| ISP(통신사) 클라우드 | AI/ML, IoT 플랫폼 |
OpenStack = AWS를 직접 만들어서 우리가 운영하는 시스템
AWS = 이미 완성된 클라우드를 돈 내고 쓰는 시스템
둘 다 “클라우드 플랫폼”이지만
실제로는 목적과 역할이 완전히 다르다.