컨테이너 vs 가상머신(Container vs VM)
컨테이너란? container
컨테이너는 나머지 시스템에서 격리된 하나 이상의 프로세스 집합입니다. 컨테이너는 보안, 스토리지 및 네트워크 격리와 같은 가상 시스템과 동일한 이점을 많이 제공합니다. 컨테이너는 하드웨어 리소스가 훨씬 적게 필요하며, 신속하게 시작하고 종료할 수 있습니다.
Virtual Machine :
- app을 동작시키기 위한 runtime 환경
- 개별적인 os(vm)에서 application running 구현
- 격리된 독립적인 가상 환경
- 호스트 os ⇒ 하이퍼바이저 ⇒ guest os ⇒ application
container :
- app을 동작시키기 위한 독립적인 가상환경 구성( vm과 공통점)
- 호스트 os ⇒ docker/podman 컨테이너 플랫폼 ⇒ application
- 가장 큰 핵심 : guest os 존재 유무
컨테이너의 특징
- 적은 하드웨어 풋프린트
- 컨테이너는 OS 내부 기능을 사용하여 네임스페이스, cGroups 등의 OS 기능을 통해 리소스가 관리되는
격리된 환경을 생성합니다. 이 접근법은 가상 시스템 하이퍼바이저와 비교하여 CPU와 메모리 오버헤드
의 양을 최소화합니다.
- 컨테이너는 OS 내부 기능을 사용하여 네임스페이스, cGroups 등의 OS 기능을 통해 리소스가 관리되는
- 환경 격리
- 컨테이너는 호스트 OS 또는 기타 애플리케이션의 변경 사항이 컨테이너에 영향을 미치지 않는 폐쇄된
환경에서 작업합니다. 컨테이너에서 필요로 하는 라이브러리가 자체 포함되어 있으므로 애플리케이션
은 중단 없이 실행할 수 있습니다. 예를 들어 각 애플리케이션은 자체 라이브러리 집합이 포함된 자체 컨
테이너에 있을 수 있습니다. 한 컨테이너의 업데이트는 다른 컨테이너에 영향을 미치지 않습니다.
- 컨테이너는 호스트 OS 또는 기타 애플리케이션의 변경 사항이 컨테이너에 영향을 미치지 않는 폐쇄된
- 빠른 배포
- 전체 기본 운영 체제를 설치할 필요가 없으므로 컨테이너가 빠르게 배포됩니다. 일반적으로 격리를 지원
하기 위해 새로운 OS 설치가 물리적 호스트 또는 VM에 필요하며 간단한 업데이트 때문에 전체 OS 재시
작이 필요할 수 있습니다. 컨테이너를 재시작할 때 호스트 OS의 서비스를 중지하지 않아도 됩니다.
- 전체 기본 운영 체제를 설치할 필요가 없으므로 컨테이너가 빠르게 배포됩니다. 일반적으로 격리를 지원
- 다중 환경 배포
- 단일 호스트를 사용하는 기존의 배포 시나리오에서는 환경의 차이로 인해 애플리케이션이 중단될 수 있
습니다. 그러나 컨테이너를 사용하면 모든 애플리케이션 종속성 및 환경 설정이 컨테이너 이미지에 캡슐
화됩니다.
- 단일 호스트를 사용하는 기존의 배포 시나리오에서는 환경의 차이로 인해 애플리케이션이 중단될 수 있
- 재사용성
- 전체 OS를 설치할 필요 없이 동일한 컨테이너를 재사용할 수 있습니다. 예를 들어 프로덕션 데이터베이
스 서비스를 제공하는 동일한 데이터베이스 컨테이너를 각 개발자가 사용하여 애플리케이션 개발 중에
개발 데이터베이스를 생성할 수 있습니다. 컨테이너를 사용하면 더 이상 별도의 프로덕션 및 개발 데이
터베이스 서버를 유지 관리할 필요가 없습니다.
- 전체 OS를 설치할 필요 없이 동일한 컨테이너를 재사용할 수 있습니다. 예를 들어 프로덕션 데이터베이
'Infra > Kubernetes&OCP' 카테고리의 다른 글
[Kubernetes] labels, selector (0) | 2022.02.14 |
---|---|
[OCP] podman 으로 이미지 가져오기 (0) | 2022.02.10 |
[kubernetes 쿠버네티스] etcd란? (0) | 2022.02.10 |
[kubernetes 쿠버네티스] kube-API server 이란 (0) | 2022.02.10 |
Dockerfile 로 apache Deployment 배포하기 (0) | 2022.02.07 |
댓글