DEV Community

Youjung Hong
Youjung Hong

Posted on

[따배쿠] 1. 쿠버네티스

컨테이너

필요성

  • 애플리케이션을 실행하기 위한 실행환경이 항상 같은 버전으로 설치됨을 보장하고 싶음
  • 새로 설치된 실행환경들이 이미 설치되어 있는 버전에 영향이 안가게 하고 싶음

컨테이너

  • 애플리케이션 실행에 필요한 의존성을 컨테이너 내부에서 포함하고 있어서 이미지만있으면 항상 일관된 실행환경을 보장함
  • 컨테이너의 실행환경이 호스트머신이나 다른 컨테이너에 영향을 미치지 않음

컨테이너 VS 가상머신

가상머신

  • 하이퍼바이저 위에 Guest OS가 설치되는 방식
  • 필요한 애플리케이션을 VM에서 수행
  • Guest OS 때문에 리소스가 더 많이 들고 무겁다
  • VM 간의 물리적인 격리가 가능함
  • ex. GCE

컨테이너

  • Host OS 위에 도커 플랫폼을 설치하여 운영하는 방식
  • 필요한 애플리케이션을 이미지화하여 컨테이너를 실행하여 운영함
  • 리소스가 덜 든다
  • 컨테이너 간에 격리 수준이 가상머신보다 낮음

오케스트레이션

필요성

  • 여러 노드의 애플리케이션을 여러 개의 머신에서 분산해서 관리하는 경우가 많음
    • 예1. 트래픽 증가 -> 스케일 아웃하여 노드를 증가시켜야 함
    • 예2. 안정적 서비스 -> 하나의 머신보다는 여러 대의 머신에서 분산해서 운영하는 게 안정성이 높음
    • 예3. 마이크로서비스 환경 -> 하나의 애플리케이션도 여러 대의 애플리케이션으로 쪼개짐
  • 이러한 환경에서 여러 머신과 여러 노드를 모니터링하는 것이 쉽지 않음

쿠버네티스

  • 오케스트레이션 도구
  • 워크로드 분리 가능
  • 온프레미스, 클라우드 환경에서 모두 이용할 수 있음
  • 선언적 API

출처

Top comments (0)