"15단계로 배우는 도커와 쿠버네티스"를 참조하여 작성하였습니다.
< 컨테이너 기술의 이해 >
가상화의 개요
- 가상화( Virtualization)
- 하드웨어에 종속된 컴퓨터 리소스를 추상화
- 운영체제에서 제공하는 가상화
- 각각의 응용프로그램이 각자의 CPU, 큰 Virtual Memory를 가지고 있는 것처럼 착각하도록 가상화를 제공
-Process
-CPU Scheduling
-Virtual Memory
-Swapping
서버 가상화
- 서버 가상화 도입 배경
- 하드웨어 기술이 발전하면서, 서버의 성능이 획기적으로 향상
- 단일 HW,OS 및 어플리케이션-> 하나의 OS에서 여러개의 어플리케이션 운영 -> 애플리케이션 별로 별도의 OS
- 서버 가상화의 장점
- 높은 자원 활용률
- 하드웨어 자원의 효율적인 사용 :남은 서버의 활용 , 남은 서버를 사용 중지해 냉각 및 유지관리 비용 절감
- 장애 고립(Isolation)
- 특정 어플리케이션이나 OS의 장애가 전체 시스템으로 전파되어 다른 업무에 영향을 미치는 것을 방지
- 보안 강화
- 개별 사용자가 자신의 VM에만 접근할 수 있어, 전체 시스템에 대한 접근을 원천적으로 차단
- 신속한 자원 제공 및 백업
- 설정이 완료된 VM에 대해서 필요 시에 스토리지에서 복사 및 이전함으로써 신속한 자원 제공 및 백업 가능
- 가상 서버의 문제점
- 성능 오버헤드
- 시스템 자원의 할당/사용을 위해 Hypervisor를 거쳐야 하므로 Bare-metal 방식에 비해서 처리에 부가적인 시간 필요
- 자원 낭비
- Guest OS 실행을 위해 필요한 자원(CPU,메모리 등) 필요
- 거대한 이미지 사이즈
- VM 이미지에는 애플리케이션, 필수 라이브러리 또는 바이너리 및 Guest OS가 포함됨
- 이미지 사이즈가 커서 VM Migration이 느림
- 느린 시작 시간
- CPU , 메모리, 하드디스크 등의 하드웨어를 가상화하고 있어 Guest OS를 부팅해야 사용할 수 있음
컨테이너
- 컨테이너 개요
- 운영체제 수준의 가상화
- 컨테이너는 프로세스 간 벽을 만들어 하나의 OS 커널 안에서 애플리케이션이 구동되는 환경을 격리할 수 있음
- 리눅스 커널의 네이스페이스와 컨트롤 그룹이라는 기술을 기반으로 함
- 컨테이너의 장점
- 인프라의 사용률 향상
- Guest OS 실행을 위한 자원 낭비가 없음
- 일반적인 프로세스 실행과 거의 차이가 없음
- 하나의 물리 서버에서 프로세스만큼이나 많이 실행 가능
- 빠른 기동 시간
- 운영체제, 애플리케이션,미들웨어 등 다양한 이미지를 쉽게 얻을 수 있음
- 설치 작업이나 설정 작업이 줄어듬
- 불변 실행 환경 (Immutable Infrastructure)
- 기존 문제 :오픈소스로 공개되는 프레임워크를 사용하여 개발을 진행하는데 오프 소스 프로젝트는 빈번하게 버전 업, 버그 수정, 보안 패치 등이 일어남
- 컨테이너로 해결
- 애플리케이션 실행에 필요한 소프트웨어를 모두 포함
- 컨테이너를 조합하여 시스템을 구성함으로써 특정 서버 환경에 대한 종속성을 배제할 수 있음
- 개발 환경과 운영 환경의 차이를 줄일 수 있음
#정리
특징 | 가상서버 | 컨테이너 |
이미지 크기(CentOS 7.4의 경우) | 최소 1.54GB | 최소 0.20GB |
메모리 사용량 | 기본 640MB | 기본 512MB |
벤치 마크 성능 비교 | 65& | 90% |
OS 기동 시간 | 분 단위 | 초 단위 |
'Programmer > Cloud' 카테고리의 다른 글
[Docker] 5 컨테이너 API (0) | 2021.08.13 |
---|---|
[Docker] 4 도커 활용과 컨테이너 (0) | 2021.08.13 |
[Docker] 3 도커 환경 구축 & 명령어 (0) | 2021.08.12 |
[Docker] 2 도커란? (0) | 2021.08.12 |
[Docker] 1-1 클라우드와 컨테이너 (0) | 2021.08.11 |