출처
1) Cloud Native DevOps with Kubernetes / 쿠버네티스를 활용한 클라우드 네이티브 데브옵스
컨테이너(Docker Container)와 가상머신(VM)
1) VM은 Hypervisor를 통해 여러 개의 운영체제를 생성하고 관리(GuestOS)
2) 시스템 자원을 가상화하고 독립된 공간을 생성하는 작업은 Hypervisor를 거치므로 성능 손실이 큼
3) VM은 GuestOS를 사용하기 위한 라이브러리, 커널 등을 전부 포함하기 때문에 배포할 때 용량이 큼
도커 컨테이너 | 가상머신 | |
기존 리눅스 자원을 그대로 활용해 컨테이너를 생성하고 관리 | Hypervisor를 통해 여러 개의 운영체제를 생성하고 관리(GuestOS) | |
커널을 공유해서 사용하기 때문에 컨테이너에는 라이브러리 및 실행파일만 있게 되어 용량이 적음 | GuestOS를 사용하기 위한 라이브러리, 커널 등을 전부 포함하기 때문에 배포할 때 용량이 큼 | |
컨테이너를 이미지로 생성할 때 배포시간이 VM에 비해 빠르며 성능의 손실 또한 적음 | 시스템 자원을 가상화하고 독립된 공간을 생성하는 작업은 Hypervisor를 거치므로 성능 손실이 큼 |
출처: https://www.docker.com/
출처: https://seosh817.tistory.com/345
도커
1) 소프트웨어 컨테이너 기반의 가상화 플랫폼
2) 개발 환경과 운영 환경 간의 일관성을 유지하고, 애플리케이션의 배포 및 확장을 간편하게 적용함
3) OS를 가상화하지 않고 기존 리눅스 자원(디스크, 네트워크 등)을 그대로 활용할 수 있어 한 대의 서버에 여러 개의 서비스를 구동하기에 적합함
컨테이너: 애플리케이션을 소프트웨어적으로 패키징하고 실행할 수 있는 경량화된 단위
도커의 특징
1) 자원 효율성: OS를 가상화하지 않고 기존 리눅스 자원을 그대로 활용하기 때문에 VM보다 자원 소모가 적음
2) 일관성 있는 환경(이식성): 도커 컨테이너는 호스트 시스템과 독립적(컨테이너 런타임을 지원하는 모든 장치에서 실행할 수 있음)이며, 동일한 환경에서 어디서든 동일하게 실행될 수 있음 > 개발 환경, 테스트 환경, 운영 환경 간의 일관성을 유지
3) MSA(결합성): 각 애플리케이션을 독립적인 컨테이너로 패키징. 각 컨테이너는 필요한 모든 종속성과 라이브러리를 포함하며, 호스트 시스템과는 격리되어 실행 > 애플리케이션 간에 낮은 결합성을 유지 > 한 컨테이너의 변경이 다른 컨테이너에 영향을 미치지 않음
4) 경량화: VM에 비해 가볍고 오버헤드가 거의 없음
5) 변경 불가능한 인프라(immutable infra): 서버를 구축한 이후에는 변경 및 업데이트가 불가능한 인프라. 변경이 필요한 경우 아예 새로운 서버를 구축해야 함 > 이미지로 생성 후 배포
'클라우드 > 쿠버네티스' 카테고리의 다른 글
[클라우드/쿠버네티스] 쿠버네티스 배포 (0) | 2024.06.26 |
---|---|
[클라우드/쿠버네티스] 쿠버네티스 아키텍처 (0) | 2024.06.22 |
[클라우드/쿠버네티스] MSA, DevOps (0) | 2024.06.02 |
[쿠버네티스] 쿠버네티스 컴포넌트 (0) | 2024.02.11 |
[쿠버네티스] 컨테이너 오케스트레이션 (1) | 2024.02.10 |
댓글