*VM과 컨테이너 차이
- VM: H/W 가상화/추상화
- 컨테이너: OS 가상화/추상화
*컨테이너의 특징:
- 호스트와 어플리케이션을 분리 : OS 레벨 가상화
- 적은 시스템 리소스와 디스크 공간 소비
- 리소스 사용에 유연성과 효율성 제공
- 가상머신과 달리 개별적인 커널을 갖지 않음
- 네트워크 가상화 => NV(VxLAN), SDN...
- 스토리지 가상화 => Object File System
OS 가상화(Container) = 네트워크 가상화 + 스토리지 가상화
*컨테이너 기반 기술
- Cgroup 리소스에 대한 제한과 우선순위를 제어
- 네임스페이스: 어플리케이션에 대한 격리 환경을 제공
*H/W, VM는 라이프사이클이 긴 편...
*컨테이너 : 가장 짧은 라이프사이클
컨테이너는 쓰고 바로 지우고 반복(배포가 수 초 단위...속도가 빠름)
DB Data는 지워지면 안되니까...분리해서 사용하되, Stateless 환경처럼 사용(DB 삭제/생성 반복 - 볼륨Volume을 끼우고 빼고...)
* 마이크로서비스 :
어플리케이션의 모듈화가 아닌 네트워크 분리를 통해 완전히 독립적인 어플리케이션으로 동작하게 만든다.
가상화를 통해 동일 서브넷에 구성하더라도 통신이 어려울 수 있다.
물리적으로는 분리되어 있기 때문...(IP는 사설을 사용할 수 밖에 없음)
따라서 네트워크 가상화 (ex: VnLAN)를 통해 이 둘을 묶어준다...
*DEVOPS :
"빨리 개발하고 빨리 배포하겠다"하는 스타트업, 중소기업 도입...
* 가상머신과 컨테이너 차이점 :
가상머신(VMs) |
컨테이너 |
하드웨어 수준의 가상화 |
운영체제 가상화 |
커널 공유 vs 하이퍼바이저 사용 |
|
리소스 사용이 높다 |
가상머신보다 리소스 사용이 적다 |
프로비저닝이 느리다 |
거의 리얼타임 프로비저닝과 확장성을 제공 |
다양한 어플리케이션 실행 가능 |
동일 커널 기반의 서비스만 구성 가능 |
제한된 성능 |
네이티브 성능 |
가상머신 간 완전한 격리로 인한 높은 보안성 제공 |
프로세스 수준의 격리로 가상머신보단 보안 수준이 낮다 |
* 컨테이너 한계점:
- Scale Out은 동일 Docker 호스트에서만 가능하다
- Docker에서는 node 확장에 관여하지 않는다.
Docker를 구성하는 호스트가 VM위에 올라가 있다.
Docker Host는 커널만 있으면 된다!
Atomic Host(500MB까지 제공)
CoreOS(약 500MB)
VmWARE photum
Docker는 이동성에 용이.
이미지로 만들어 배포 용이(재사용성)
*Docker가 제공하는 지원기술 :
- swarm : docker의 클러스터 솔루션
- compose : 여러 컨테이너로 구성된 어플리케이션 생성과 실행 도구
- 머신 : Docker 호스트 설치와 구성 도구
- Docker Trusted Registry: Docker 이미지 저장과 관리에 대한 온프리마이스 도구
- 네트워크: 여러 호스트간 컨테이너 통신을 지원
- 서비스 디스커버리 : 다른 서비스들을 찾아주는 도구
- 오케스트레이션과 클러스터 관리 : 시스템 모니터링과 관리
'Docker(도커) Kubernetes' 카테고리의 다른 글
docker image tag 관리, dockerfile 생성하기, 인스트럭션 사용법 (0) | 2018.05.23 |
---|---|
Docker Container와 Host간 web server storage를 공유하도록 만들기 (0) | 2018.05.23 |
Docker 이미지란, 도커 이미지 layer 파일시스템 구조, UTS, PID 호스트 네임스페이스 공유 (0) | 2018.05.23 |
docker 명령어, 프로세스 관리, 실행, 이미지/컨테이너 개념 (0) | 2018.05.21 |
Docker 개념, 베어메탈, VM, Docker Container 이해하기 (0) | 2018.05.21 |