ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [개념공부] Docker & Kubernetes 도커와 쿠버네티스
    비전공자 공부일기/:: Computer Science 2021. 7. 18. 16:41

    요즘 클라우드 기술이 워낙 대두화되면서

    기초 개념은 알아야 나도 어디가서 무시 안당할 거 같당

    고로 적어보는 기초개념들

     

    이번 글은 https://subicura.com/2017/01/19/docker-guide-for-beginners-1.html 포스팅을

    내가 이해하기 쉬운 방식으로 다시 적어놓은 것일 뿐이고, 위 링크를 참고하는 것이 100만배 도움될 것임.

     

     

    컨테이너 Container

    : 다양한 프로그램, 실행환경을 컨테이너로 추상화하여 동일한 인터페이스를 제공하고 프로그램의 배포 및 관리를 단순하게 할 수 있도록 해줌

     

    기존에 가상화 방식은 주로 OS를 가상화하는 방식으로, VMWare같은 가상머신이 호스트OS 위에 게스트OS 전체를 가상화하여 올려 사용하는 방식이었다.(호스트형 가상화 방식) 간단한 대신 무겁고 느린 것이 단점.

     

    이를 개선하기 위해 CPU의 가상화기술을 이용한 KVM(Kernel-based Virtual Machine)과 반가상화(Paravirtualization) 방식이 등장했고, 게스트 OS를 가상화하긴 하지만 전체 OS를 가상화하는 방식이 아니어서 성능이 향상되었음. AWS 같은 클라우드 서비스에서 가상 컴퓨팅 기술의 기반이 되었다.

     

    그러나 추가적인 OS를 설치하는 방식은 여전히 문제가 있었기 때문에 프로세스를 격리하는 방식이 등장하게 되었다. 이 방식을 리눅스에서 컨테이너라고 함. CPU나 메모리를 딱 필요한 만큼만 추가로 소모하기 때문에 성능적 손실이 무척 적다. 하나의 서버 위에 여러 개의 컨테이너를 올려 사용하게 되면 서로 영향을 미치지 않고 독립적으로 움직이며, 생성속도도 무지무지 빠르다. 도커는 이 컨테이너 기술을 차용해 정리(?)한 기술임.

     

     

    이미지 Image

    : 컨테이너 실행에 필요한 파일과 설정값등을 포함하고 있는 것.

     

    상태값을 가지지 않고 변하지 않음(Immutable). 컨테이너는 이미지를 실행한 상태라고 볼 수 있고, 추가되거나 변하는 값은 컨테이너 내부에 저장됨. 같은 이미지에서 여러가지 컨테이너를 생성할 수 있고 컨테이너의 상태가 바뀌거나 삭제되어도 이미지는 그대로 남아있다.

     

    도커 Docker

    : 컨테이너 기반의 오픈소스 가상화 플랫폼

     

    위의 컨테이너, 이미지 등의 기술은 이전부터 존재하던 것이다. 그러나 도커가 핫한 이유는 이미 존재하는 기술을 잘 조합하여 사용하기 쉽게 만들었기 때문이다.

     

    도커에서는 레이어Layer 라는 개념을 이용하는데, 가상화의 특성상 이미지 용량이 크고 여러 대의 서버에 배포하는 것을 감안했을 때 상당히 영리하게 돌아가도록 한 설계를 가능하게 한다.

     

    댓글

coding wanee