본문 바로가기
클라우드 서비스/클라우드 기초

도커란? / 쿠버네티스란? / 도커,쿠버네티스 차이점

by S!O 2023. 6. 24.
반응형

도커(Docker)란

 

 

도커(Docker)란 컨테이너기반 가상화 기술을 제공하는 오픈 소스 플랫폼이다. 컨테이너는 응용 프로그램과 그에 필요한 모든 종속성(라이브러리, 실행 파일, 환경 설정 등)을 패키징하는 방식으로 동작한다. 도커는 이러한 컨테이너를 생성, 배포 및 실행하기 위한 도구와 라이브러리를 제공한다.

 

컨테이너란, 우리가 구동하려는 애플리케이션을 실행할 수 있는 환경까지 감싸서, 어디서든 쉽게 실행할 수 있도록 해 주는 기술이다. OS수준에서 프로세스를 컨테이너 형태로 격리해 훨씬 가볍고 빠르게 실행된다. 

 

출처: https://kubernetes.io/ko/

 

                                                

그림에 보이는 컨테이너 런타임(컨테이너 엔진)의 한 종류가 바로 도커이다. 컨테이너를 쉽게 내려받거나 공유하고 구동할 수 있도록 해주는 도구라고 생각하면 된다.

 

도커에서 중요한 개념 중 하나인 이미지가 있다.

 

이미지는 컨테이너 실행에 필요한 파일과 설정값등을 포함하고 있는 것으로 상태값을 가지지 않고 변하지 않는다.

말그대로 이미지는 컨테이너를 실행하기 위한 모든 정보를 가지고 있기 때문에 더 이상 의존성 파일을 컴파일하고 이것저것 설치할 필요가 없다. 이제 새로운 서버가 추가되면 미리 만들어 놓은 이미지를 다운받고 컨테이너를 생성만 하면 된다.

도커 이미지는 도커 허브(Docker Hub)와 같은 이미지 레지스트리에서 공유 및 다운로드할 수도 있다.

 

 

 

쿠버네티스(Kubernetes)란

 

 

쿠버네티스(Kubernetes)는 컨테이너 오케스트레이션 플랫폼으로, 도커와 같은 컨테이너 기반 애플리케이션을 배포, 확장, 관리를 자동화하는 오픈 소스 도구이다. 쿠버네티스는 애플리케이션의 가용성, 확장성 및 유연성을 향상시키기 위해 컨테이너를 클러스터로 구성하고, 이를 효율적으로 관리한다.

쿠버네티스의 주요 구성요소와 개념

1.마스터 노드(Master Node): 쿠버네티스 클러스터의 중앙 제어 장치로, 클러스터의 상태와 구성을 관리한다.

2.워커 노드(Worker Node): 애플리케이션 컨테이너가 실행되는 노드다. 워커 노드는 컨테이너 실행을 관리하고, 마스터 노드와 통신하여 클러스터 관리에 참여한다.

 

3.파드(Pod): 쿠버네티스의 기본 배포 단위인 파드는 하나 이상의 컨테이너 그룹을 포함한다.

 

 

 

 

도커와 쿠버네티스 차이점

 

 

도커(Docker)와 쿠버네티스(Kubernetes)는 모두 컨테이너 관련 기술이지만, 서로 다른 목적과 기능을 가지고 있다.

 

  • 목적    

도커: 도커는 컨테이너 이미지를 생성, 배포 및 실행하기 위한 플랫폼이다. 개발자는 도커를 사용하여 애플리케이션과 그에 필요한 종속성을 컨테이너 이미지로 패키징하고, 이 이미지를 실행 환경에서 동일하게 실행할 수 있다. 

         

쿠버네티스: 쿠버네티스는 컨테이너화된 애플리케이션을 배포, 확장 및 관리하기 위한 오케스트레이션 플랫폼이다. 쿠버네티스는 여러 대의 호스트에서 컨테이너를 클러스터로 구성하고, 컨테이너의 스케줄링, 로드 밸런싱, 자동 복구 등을 관리한다.

 

 

  • 기능

도커: 도커는 컨테이너 이미지 빌드, 관리, 배포 및 실행에 관련된 기능을 제공한다. 개발자는 도커 파일(Dockerfile)을 사용하여 컨테이너 이미지를 정의하고, 도커 명령어를 통해 이미지를 빌드하고 실행할 수 있다.

 

쿠버네티스: 쿠버네티스는 컨테이너 클러스터의 생명주기 관리를 위한 기능을 제공한다. 이를 통해 애플리케이션의배포,스케일링, 로드 밸런싱, 롤링 업데이트, 자동 복구 등을 자동화하고 관리할 수 있다. 또한, 쿠버네티스는 다양한 환경에서 동작하는 많은 컨테이너 오케스트레이션 기능을 제공한다.

 

 

즉 도커는 컨테이너를 실행,구동 할수있게 해주는 소프트웨어고  쿠버네티스는 여러 서버(노드)에 컨테이너를 분산해서 배치하거나, 문제가 생긴 컨테이너를 교체하거나, 컨테이너가 사용할 비밀번호나 환경 설정을 관리하고 주입해 주는 일 등,컨테이너를 오케스트레이션 하는 소프트웨어다.

 

 

 

 

 

컨테이너 가상화 실행환경

 

VM기반 가상화 환경만 다뤄봤어서 컨테이너기반 가상화도 물리적인 서버환경에서 실행하는 줄 알았는데 클라우드,가상머신에서 실행하는 경우도 많은 것 같다. AWS의 컨테이너 오케스트레이션 서비스 ECS도 AWS의 인스턴스(가상머신)들로 클러스터를 구성하여 실행한다. 그래서 처음 ECS 개념에대해 접할 때 잘 이해가 되지않았당 가상머신에서 실행하는 환경이면 저 위에 그림이 VM이라고 생각하면 이해하기 쉽다!

반응형

댓글