ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 도커와 쿠버네티스 비교
    여러가지 공부 2022. 4. 18. 15:07

    도커와 쿠버네티스 의 비교

    - 컨테이너 하나만 띄워야지 -> 도커.

         - 도커는 '이미지를, 컨테이너에 띄우고 실행하는 기술'.

         - 쿠버네티스는 '도커를 관리하는 tool'.

         - 도커는 '한 개의 컨테이너를 관리' 하는 데에 최적화되어 있다.

         - 쿠버네티스는 '여러 개의 컨테이너를, 서비스 단위로 관리' 하는데 최적화되어 있다.

     

    도커란?

    - Go 언어로 작성된 리눅스 컨테이너 기반의 오프소스 가상화 플랫폼.

     

    컨테이너란?

    - 컨테이너는, '애플리케이션'과 '애플리케이션을 구동하는 환경'을, 'Host OS'로부터 격리한 공간.

    - 가상화 기술 중 하나로 대표적으로 LXS가 있다. 기존 OS를 가상화시키던 것과 달리 컨테이너는 OS레벨의 가상화로 프로세스를 격리시켜 동작하는 방식으로 이루어진다.

     

    VM 가상화 플랫폼 VS Docker 가상화 플랫폼

    VM 가상화 플랫폼

    - Server -> Host OS -> Hypervisor -> 각각의 Guest OS가 설치된 VM 구동

    장점

    - Host OS가 Window여도 Guest OS로 Linux를 사용할 수 있다.

    - 보안적으로, Guest OS가 뚫렸을 경우, 다른 Guest OS와 Host OS가 완벽하게 분리되어 있기 때문에, 각각의 VM에 피해가 가지 않는다.

    - 보안적인 측면에서 더욱 유리하고, 커널을 공유하지 않아서 멀티 OS가 가능하다.

    단점

    - VM 마다 무거운 Guset OS를 띄우기 때문에, Container에 비해 속도가 느리다.  OS위에 OS를 올리기 때문에 무겁고 느리다.

     

    컨테이너 서버

    - Server -> Host Os -> Docker Engine -> Container 구동

    장점

    - 하나의 Host OS를 공유하기 때문에, Container 별로 무거운 OS를 띄우지 않아, Container의 속도가 훨씬 빠르다.

    - Docker 엔진 위에서 바로 동작하여 Host의 커널을 공유한다. 커널을 공유하게 되면 io 처리가 쉽게 되어 성능의 효율을 높일 수 있다.

    단점

    - Host OS가 Window 라면, Guest OS로 Linux를 사용할 수 없다.

    - 보안적으로, Container가 뚫렸을 경우, 다른 Container와 Host OS가 위험해질 수 있다.

     

    왜 Docker를 사용할까?

    - 성능 향상, 뛰어난 이식성, 쉽게 Scale Out을 할 수 있는 유연성.

     

    Docker Image?

    - 컨테이너를 실행할 수 있는 실행파일, 설정 값들을 가지고 있는 것이라고 생각하면 된다.

    - Image를 컨테이너에 담고 실행을 시킨다면 해당 프로세스가 동작하게 된다.

     

    컨테이너는 독립적이고, 동적이다.

    - 만약 java 앱이 인기가 많아지면, 트래픽에 따라 java 컨테이너의 수를 늘리고 줄일 수 있다.

    - 즉, docker 덕분에, 매번 새로운 서비스를 만들 때마다 새로운 서비스를 설정할 필요가 없는 것.

    - 컨테이너들은 각각 분리, 독립되어 있기 때문에 더욱 효율적이다.

     

    쿠버네티스란?

    - 컨테이너 오케스트레이션 tool이다.

     

    오스케트레이션이란?

    - 컨테이너 역시 그 수가 많아지게 되면, 관리와 운영에 있어서 어려움이 따른다.

    - 컨테이너 오케스트레이션은, 이러한 다수의 컨테이너 실행을 관리 및 조율하는 시스템이다.

    - 오케스트레이션 엔진을 통해, 컨테이너의 생성과 소멸, 시작 및 중단 시점 제어, 스케줄링, 로드 밸런싱, 클러스터링 등 컨테이너로 애플리케이션을 구성하는 모든 과정을 관리할 수 있다.

    - 다른 컨테이너 오케스트레이션 tool로는 도커 스웜, ECS, Nomad 등이 있다.

     

    쿠버네티스 특징

    자동화된 복구 (self-healing)

    - 컨테이너들을 모니터링하며, 컨테이너 중 하나라도 죽으면 쿠버네티스는 그것을 빠르게 재시작시킨다.

     

    로드 밸런싱 (Load balancing)

    - 만약 1만 명의 유저가 접속하지만, 당신의 웹/앱은 준비가 되지 않았을 경우 쿠버네티스는 해당 웹사이트의 니즈를 수용할 수 있도록 자동으로 새로운 컨테이너들을 만들 수 있다.

    - 니즈가 줄어들면 컨테이너의 숫자를, 지정해둔 최소 숫자로 자동으로 조절한다.

    - 이전에는 수동으로 했던 작업들을 쿠버네티스가 자동으로 도와주는 것.

     

    무중단 (Fault tolerance-FT) 서비스

    - 기업에서는, 서버 업데이트를 위해서 사용자들이 잠든 새벽 시간을 활용하거나, 긴급 점검의 형태로 서비스를 일시 중단해왔다.

    - 하지만, 쿠버네티스는 점진적 업데이트를 제공하기 때문에, 서비스를 중단하지 않고 애플리케이션을 업데이트할 수 있다.

     

    호환성 (Vendor Lock In 해결)

    - 고객이 A사의 클라우드를 사용하다 I사의 클라우드로 환경을 이전하고 싶을 때 서로 다른 업체(Vendor)의 클라우드 제품 간에 호환 문제가 발생하여 이전하기 어려운 상황을 Vendor Lock In이라고 한다.

    - 쿠버네티스는 도커 컨테이너를 기반으로 하는 오픈소스이기 때문에, 사용자들이 특정 업체에 종속되지 않고 클라우드의 환경들을 이전할 수 있다.

     

    3줄 요약

    - 도커와 쿠버네티스는 상황마다 다르게 사용된다.

    - 한 개의 컨테이너만 사용한다면 쿠버네티스는 필요 없다.

    - 쿠버네티스는 많은 컨테이너 관리에 유용하다.

     

     

Designed by Tistory.