[클라우드/쿠버네티스] Docker

    728x90
    반응형

    출처

    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): 서버를 구축한 이후에는 변경 및 업데이트가 불가능한 인프라. 변경이 필요한 경우 아예 새로운 서버를 구축해야 함 > 이미지로 생성 후 배포

    728x90
    반응형

    댓글