[DevOps] 도커와 쿠버네티스

홍예진·2023년 1월 6일
0

DevOps

목록 보기
1/4

Docker

  • 컨테이너 기반의 오픈소스 가상화 플랫폼

컨테이너

  • 애플리케이션과 애플리케이션을 구동하는 환경을 Host OS로부터 격리한 공간을 의미
  • 보통 마이크로 서비스로 사용된다.
  • 마이크로서비스란 거대한 어플리케이션을 기능별로 나누어 변경/조합이 가능하게한 서비스를 의미하며, 컨테이너를 사용하면 하나의 큰 어플을 서비스 단위로 잘라 빠르게 배포할 수 있다.
  • 각각 분리해서 사용하기 때문에 개별 변경사항이 분리된 다른 기능들에 영향을 미치지 않는다.

가상머신(VM)과 컨테이너의 차이점

VM

  • Server -> Host OS -> Hypervisor -> 각각의 Guest OS가 설치된 VM 구동
  • 보안적으로 Guest OS가 뚫려도 각각의 VM에 피해가 가지 않는다.
  • VM마다 무거운 Guest OS를 띄우기 때문에 Container에 비해 속도가 느리다.

컨테이너 서버

  • Server -> Host OS -> Docker Engine -> Container 구동
  • 하나의 Host OS를 공유하기 때문에 Container 별로 무거운 OS를 띄우지 않아, Container의 속도가 훨신 빠르다.
  • Host OS가 Window라면 Guest OS로 Linux를 사용할 수 없다.
  • 보안적으로, Container가 뚫렸을 경우 달느 Container와 Host OS가 위험해질 수 있다.

쿠버네티스

  • 컨테이너 오케스트레이션 툴
  • 오케스트레이션
    - 컨테이너 역시 그 수가 많아지게 되면, 관리와 운영에 있어서 어려움이 따른다.
    • 컨테이너 오케스트레이션은 이러한 다수의 컨테이너 실행을 관리 및 조율하는 시스템
    • 오케스트레이션 엔진을 통해, 컨테이너의 생성과 소멸, 시작 및 중단 시점 제어, 스케줄링, 로드 밸런싱, 클러스터링 등 컨테이너로 어플리케이션을 구성하는 모든 과정을 관리가능
    • 유사 툴 : 도커 스웜, ECS, Nomad
  • 쿠버네티스 특징
    - 자동화된 복구(self-healing)
    • 로드 밸런싱(Load balancing)
    • 무중단 서비스(Fault tolerance)
    • 호환성(Vendor Lock In 해결)
profile
기록용 공부용 개발 블로그

0개의 댓글