[쿠버네티스] (2) 컨테이너의 장점

Sean·2023년 1월 30일
post-thumbnail

2. 컨테이너의 장점

1) 빠른 속도와 효율성

  • 하드웨어 에뮬레이션이 없으므로, 컨테이너는 빠른 속도로 실행됨
  • 가상환경이 커널에서 공유
    • 새로운 커널을 시작할 필요 X / 하드웨어 초기화 작업할 필요 X

2) 높은 집적도

  • 컨테이너는 커널이 직접 프로세스를 조작하여 공간을 분리하기 때문에 OS는 하나만 존재
    • 그렇기에, 여러 개의 컨테이너를 만들어 실행하여도 -> 하나의 OS 위에서 작동
      • 고밀도 (하나의 머신에서 프로세스 실행하듯)

3) 높은 이식성

  • 모든 컨테이너는 호스트의 환경이 아닌 독자적인 실행 환경
    • 이 환경은 파일들로 구성되며, 이미지 형식으로 공유 가능
    • 리눅스 커널을 사용하고, 같은 컨테이너 런타임을 사용할 경우 -> 컨테이너 실행 환경을 쉽게 재현

4) 애플리케이션 컨테이너 지원

컨테이너는 두 가지의 종류가 있음

  • 시스템 컨테이너(System Container)
    • 컨테이너 기술들을 사용, 컨테이너의 목표가 OS
      • 운영체제 위에 하드웨어 가상화 없이 운영체제를 실행
      • 일반적인 리눅스처럼 다수 프로세스가 같은 환경을 공유하는 것을 목표로 함
  • 애플리케이션 컨테이너(Application Container)
    • 컨테이너 기술들을 사용, 컨테이너의 목표가 애플리케이션
      • 하나의 애플리케이션(프로세스)을 실행하는 것을 목표로 함
      • 독립적인 환경을 가진다는 점에서 = 시스템 컨테이너와 개념은 같음
      • 하지만, 단 하나의 프로세스만 실행한다는 점에서 확장이 쉽고 <-> 관리가 용이
    • 대표적인 애플리케이션 컨테이너 런타임으로는 '도커(Docker)'
  • 애플리케이션 컨테이너를 지원한다는 것은 두 가지의 장점을 가짐
    • 목적에 맞는 프로세스만 존재하는 환경을 간편하게 만들 수 있음
      • ex) 웹 서버용 컨테이너? Apache Http 프로세스만 존재하는 컨테이너 실행 가능
    • 서버 운영 면에서의 장점을 가짐
      • 서버 애플리케이션 배포 단위를 새로 정의했고, 기존 IT 인프라는 물론 클라우드(Cloud)에도 큰 변화를 가져옴
        • 기존 서버 운영 방식 -> 애플리케이션 실행을 위해 서버 컴퓨터의 상태를 지속적 관리 필요
        • 컨테이너 사용 -> 애플리케이션 별로 독립적인 환경을 구축하고 관리 -> 서버 환경의 관리가 용이

결론적으로, 컨테이너는 새로운 표준 기술이 되었습니다.
-> 이 컨테이너를 활용하는 대표적인 컨테이너 런타임인 도커가 존재합니다.

profile
기술과 비즈니스를 잇는 파트너가 되고자 합니다.

0개의 댓글