컨테이너 가상화: Difference between revisions
From CS Wiki
No edit summary |
|||
(One intermediate revision by one other user not shown) | |||
Line 2: | Line 2: | ||
;Container Virtualization | ;Container Virtualization | ||
;OS 레벨에서 어플리케이션 실행 환경을 격리함으로써 마치 다른 OS에서 동작하는 것과 같은 가상 실행 환경을 제공하는 기술 | ;OS 레벨에서 어플리케이션 실행 환경을 격리함으로써 마치 다른 OS에서 동작하는 것과 같은 가상 실행 환경을 제공하는 기술 | ||
== 가상화의 발전 과정 == | |||
[[파일:가상화의 발전 과정.png]] | |||
* '''전통적인 배포 시대''' | |||
** 초기 조직은 애플리케이션을 물리 서버에서 실행 | |||
** 한 물리 서버에서 여러 애플리케이션의 리소스 한계를 정의할 방법이 없었기에, 리소스 할당의 문제 발생 | |||
** 물리 서버 하나에서 여러 애플리케이션을 실행하면, 리소스를 과다 사용하는 인스턴스가 다른 애플리케이션의 성능이 저하 유발 | |||
** 서로 다른 여러 물리 서버에서 각 애플리케이션을 실행하는 것은 리소스가 충분히 활용되지 않으며, 유지 비용 과다 | |||
* '''가상화된 배포 시대''' | |||
** 단일 물리 서버의 CPU에서 여러 가상 시스템 (VM)을 실행 | |||
** VM간에 애플리케이션을 격리하고 애플리케이션의 정보를 다른 애플리케이션에서 자유롭게 액세스 할 수 없으므로, 일정 수준의 보안성을 제공 | |||
** 리소스를 보다 효율적으로 활용할 수 있으며, 쉽게 애플리케이션을 추가하거나 업데이트할 수 있고 하드웨어 비용을 절감할 수 있어 더 나은 확장성 제공 | |||
** 가상화를 통해 일련의 물리 리소스를 폐기 가능한(disposable) 가상 머신으로 구성된 클러스터로 구성 가능 | |||
** 각 [[가상 머신]]은 가상화된 하드웨어 상에서 자체 운영체제를 포함한 모든 구성 요소를 실행하는 하나의 완전한 머신 | |||
* '''컨테이너 개발 시대''' | |||
** 컨테이너는 VM과 유사하지만 격리 속성을 완화하여 애플리케이션 간에 운영체제(OS)를 공유하므로 각각의 컨테이너는 보다 가벼움 | |||
== 기존 가상 머신과의 차이 == | == 기존 가상 머신과의 차이 == | ||
Line 10: | Line 26: | ||
! 가상 머신 !! 컨테이너 | ! 가상 머신 !! 컨테이너 | ||
|- | |- | ||
| | | | ||
* 하드웨어 레벨 가상화 | * 하드웨어 레벨 가상화 | ||
* 가상 하드웨어 환경 위에 게스트 OS 설치 | * 가상 하드웨어 환경 위에 게스트 OS 설치 | ||
* '''구현 기술: [[하이퍼바이저]]''' | * '''구현 기술: [[하이퍼바이저]]''' | ||
* | * VMware, Linux KVM, Xen, QEMU | ||
|| | || | ||
* OS 레벨 가상화 | * OS 레벨 가상화 | ||
Line 36: | Line 52: | ||
* [[도커]] | * [[도커]] | ||
* [[쿠버네티스]] | * [[쿠버네티스]] | ||
== 참고 문헌 == | |||
* [https://kubernetes.io/ko/docs/concepts/overview/what-is-kubernetes/ What is kubernetes] |
Latest revision as of 18:38, 18 October 2023
- Container Virtualization
- OS 레벨에서 어플리케이션 실행 환경을 격리함으로써 마치 다른 OS에서 동작하는 것과 같은 가상 실행 환경을 제공하는 기술
가상화의 발전 과정[edit | edit source]
- 전통적인 배포 시대
- 초기 조직은 애플리케이션을 물리 서버에서 실행
- 한 물리 서버에서 여러 애플리케이션의 리소스 한계를 정의할 방법이 없었기에, 리소스 할당의 문제 발생
- 물리 서버 하나에서 여러 애플리케이션을 실행하면, 리소스를 과다 사용하는 인스턴스가 다른 애플리케이션의 성능이 저하 유발
- 서로 다른 여러 물리 서버에서 각 애플리케이션을 실행하는 것은 리소스가 충분히 활용되지 않으며, 유지 비용 과다
- 가상화된 배포 시대
- 단일 물리 서버의 CPU에서 여러 가상 시스템 (VM)을 실행
- VM간에 애플리케이션을 격리하고 애플리케이션의 정보를 다른 애플리케이션에서 자유롭게 액세스 할 수 없으므로, 일정 수준의 보안성을 제공
- 리소스를 보다 효율적으로 활용할 수 있으며, 쉽게 애플리케이션을 추가하거나 업데이트할 수 있고 하드웨어 비용을 절감할 수 있어 더 나은 확장성 제공
- 가상화를 통해 일련의 물리 리소스를 폐기 가능한(disposable) 가상 머신으로 구성된 클러스터로 구성 가능
- 각 가상 머신은 가상화된 하드웨어 상에서 자체 운영체제를 포함한 모든 구성 요소를 실행하는 하나의 완전한 머신
- 컨테이너 개발 시대
- 컨테이너는 VM과 유사하지만 격리 속성을 완화하여 애플리케이션 간에 운영체제(OS)를 공유하므로 각각의 컨테이너는 보다 가벼움
기존 가상 머신과의 차이[edit | edit source]
가상 머신 | 컨테이너 |
---|---|
|
|
장단점[edit | edit source]
- 장점:
- 속도 빠름(기존 물리 시스템과 거의 유사)
- 이미지 생성 및 공유가 쉬움
- 단일 어플리케이션 구동을 위한 최소한의 환경만 구분
- 단점:
- 가상머신 방식처럼 다양한 OS를 사용할 수 없음
- 보안적으로 완전히 격리되지 않음