hmk run dev

컨테이너와 오케스트레이션 쉽게 이해하기 본문

CI&CD

컨테이너와 오케스트레이션 쉽게 이해하기

hmk run dev 2025. 2. 2. 19:05

컨테이너와 오케스트레이션: 쉽게 이해하기

1. 컨테이너란 무엇인가?

컨테이너를 도시락에 비유하면?

컨테이너는 애플리케이션을 실행하는 가벼운 가상화 기술이다. 쉽게 말해 "애플리케이션을 실행할 수 있는 도시락" 같은 개념이다.

  • 도시락(컨테이너) 안에는 음식(애플리케이션)과 필수 도구(라이브러리, 종속성 등)가 함께 들어 있다.
  • 도시락을 어디서든 꺼내면 똑같은 환경에서 바로 먹을 수 있다.
  • 컨테이너도 마찬가지로, 어떤 서버에서 실행하든 동일한 환경을 유지한다.

기존 방식과의 차이점

구분전통적인 VM(가상 머신)컨테이너

실행 속도 무겁고 느림 가볍고 빠름
리소스 사용 OS별로 많은 리소스 필요 최소한의 리소스 사용
이식성 환경마다 설정이 다름 어디서든 같은 환경 유지

대표적인 컨테이너 기술

  • Docker: 가장 많이 사용되는 컨테이너 플랫폼
  • Podman: Docker와 유사하지만, 데몬 없이 작동
  • Containerd: 쿠버네티스에서 사용하는 컨테이너 런타임

2. 컨테이너 오케스트레이션이 필요한 이유

컨테이너 한 개만 쓰면 괜찮은데, 여러 개가 되면?

컨테이너 하나만 실행하면 문제가 없지만, 수십 개, 수백 개의 컨테이너를 관리해야 한다면?

예를 들어 햄버거 가게를 운영한다고 생각해 보자.

  • 가게를 처음 열었을 때는 직원 1~2명이 모든 주문을 처리할 수 있다.
  • 하지만 주문이 폭주하면 직원이 더 필요하고, 주문을 자동으로 분배하는 시스템이 필요하다.
  • 컨테이너 환경에서도 여러 개의 컨테이너를 효과적으로 배치하고 관리하는 시스템이 필요하다.

오케스트레이션의 필요성

  • 컨테이너를 자동으로 배포하고 관리할 수 있어야 한다.
  • 컨테이너가 죽으면 자동으로 재시작해야 한다.
  • 트래픽이 많아지면 컨테이너를 자동으로 늘려야 한다.
  • 여러 서버에서 컨테이너를 실행하려면 중앙에서 관리해야 한다.

이 역할을 하는 것이 바로 "컨테이너 오케스트레이션 시스템"이다.


3. 컨테이너 오케스트레이션이란?

컨테이너 오케스트레이션은 여러 개의 컨테이너를 자동으로 배포, 관리, 확장하는 시스템이다.

대표적인 오케스트레이션 도구

  1. Kubernetes(쿠버네티스) - 가장 많이 사용되는 오케스트레이션 툴
  2. Docker Swarm - Docker에 내장된 오케스트레이션 기능
  3. Amazon ECS - AWS에서 제공하는 컨테이너 관리 서비스

4. 컨테이너 오케스트레이션이 해결하는 문제

쿠버네티스를 쓰면 좋은 점

  • 자동 배포 및 롤백 기능 제공
  • 장애 발생 시 컨테이너를 자동으로 재시작하는 복구 기능 지원
  • 트래픽 증가에 따라 컨테이너를 자동으로 추가하는 오토스케일링 기능
  • 여러 개의 컨테이너에 요청을 자동으로 분배하는 로드 밸런싱 기능

5. 쿠버네티스

컨테이너는 애플리케이션을 어디서든 동일한 환경에서 실행할 수 있도록 돕는 기술이다. 하지만 컨테이너가 많아지면 관리가 어려워지고, 이를 해결하기 위해 컨테이너 오케스트레이션 시스템이 필요하다.

즉, 컨테이너는 도시락과 같고, 오케스트레이션 시스템은 햄버거 가게를 원활하게 운영하는 자동화 시스템이라고 볼 수 있다.

그리고 그 역할을 하는 대표적인 시스템이 바로 쿠버네티스(Kubernetes)다.

 

 

VM과 비교한 도커의 단점

  1. 보안 이슈: 도커는 호스트 OS의 커널을 공유하므로, VM처럼 격리된 환경을 제공하지 않아요. 이는 비교적 보안적으로 취약할 수 있어요.
  2. OS 종속성: 도커는 호스트 OS의 커널을 사용하는데, 이로 인해 일부 OS에선 제한적일 수 있어요. 예를 들어, 리눅스 기반 도커는 윈도우에서 완전히 동일하게 동작하지 않을 수 있어요.
  3. 복잡한 네트워크 관리: 도커 네트워크는 VM에 비해 설정이 복잡할 수 있고, 여러 컨테이너가 서로 통신할 때 복잡도가 올라갈 수 있어요.
  4. 파일 시스템 성능: 도커의 파일 시스템은 VM에 비해 느릴 수 있어요, 특히 많은 파일을 읽고 쓸 때 성능 저하가 있을 수 있어요.

'CI&CD' 카테고리의 다른 글

쿠버네티스 pod  (0) 2025.02.02
쿠버네티스 아키텍처 마스터 & 워커 노드 관리방식  (0) 2025.02.02
젠킨스를 이용한 빌드  (0) 2022.01.04
Comments