도커(Docker)란
도커(Docker)란 컨테이너기반 가상화 기술을 제공하는 오픈 소스 플랫폼이다. 컨테이너는 응용 프로그램과 그에 필요한 모든 종속성(라이브러리, 실행 파일, 환경 설정 등)을 패키징하는 방식으로 동작한다. 도커는 이러한 컨테이너를 생성, 배포 및 실행하기 위한 도구와 라이브러리를 제공한다.
컨테이너란, 우리가 구동하려는 애플리케이션을 실행할 수 있는 환경까지 감싸서, 어디서든 쉽게 실행할 수 있도록 해 주는 기술이다. OS수준에서 프로세스를 컨테이너 형태로 격리해 훨씬 가볍고 빠르게 실행된다.
그림에 보이는 컨테이너 런타임(컨테이너 엔진)의 한 종류가 바로 도커이다. 컨테이너를 쉽게 내려받거나 공유하고 구동할 수 있도록 해주는 도구라고 생각하면 된다.
도커에서 중요한 개념 중 하나인 이미지가 있다.
이미지는 컨테이너 실행에 필요한 파일과 설정값등을 포함하고 있는 것으로 상태값을 가지지 않고 변하지 않는다.
말그대로 이미지는 컨테이너를 실행하기 위한 모든 정보를 가지고 있기 때문에 더 이상 의존성 파일을 컴파일하고 이것저것 설치할 필요가 없다. 이제 새로운 서버가 추가되면 미리 만들어 놓은 이미지를 다운받고 컨테이너를 생성만 하면 된다.
도커 이미지는 도커 허브(Docker Hub)와 같은 이미지 레지스트리에서 공유 및 다운로드할 수도 있다.
쿠버네티스(Kubernetes)란
쿠버네티스(Kubernetes)는 컨테이너 오케스트레이션 플랫폼으로, 도커와 같은 컨테이너 기반 애플리케이션을 배포, 확장, 관리를 자동화하는 오픈 소스 도구이다. 쿠버네티스는 애플리케이션의 가용성, 확장성 및 유연성을 향상시키기 위해 컨테이너를 클러스터로 구성하고, 이를 효율적으로 관리한다.
쿠버네티스의 주요 구성요소와 개념
1.마스터 노드(Master Node): 쿠버네티스 클러스터의 중앙 제어 장치로, 클러스터의 상태와 구성을 관리한다.
2.워커 노드(Worker Node): 애플리케이션 컨테이너가 실행되는 노드다. 워커 노드는 컨테이너 실행을 관리하고, 마스터 노드와 통신하여 클러스터 관리에 참여한다.
3.파드(Pod): 쿠버네티스의 기본 배포 단위인 파드는 하나 이상의 컨테이너 그룹을 포함한다.
도커와 쿠버네티스 차이점
도커(Docker)와 쿠버네티스(Kubernetes)는 모두 컨테이너 관련 기술이지만, 서로 다른 목적과 기능을 가지고 있다.
- 목적
도커: 도커는 컨테이너 이미지를 생성, 배포 및 실행하기 위한 플랫폼이다. 개발자는 도커를 사용하여 애플리케이션과 그에 필요한 종속성을 컨테이너 이미지로 패키징하고, 이 이미지를 실행 환경에서 동일하게 실행할 수 있다.
쿠버네티스: 쿠버네티스는 컨테이너화된 애플리케이션을 배포, 확장 및 관리하기 위한 오케스트레이션 플랫폼이다. 쿠버네티스는 여러 대의 호스트에서 컨테이너를 클러스터로 구성하고, 컨테이너의 스케줄링, 로드 밸런싱, 자동 복구 등을 관리한다.
- 기능
도커: 도커는 컨테이너 이미지 빌드, 관리, 배포 및 실행에 관련된 기능을 제공한다. 개발자는 도커 파일(Dockerfile)을 사용하여 컨테이너 이미지를 정의하고, 도커 명령어를 통해 이미지를 빌드하고 실행할 수 있다.
쿠버네티스: 쿠버네티스는 컨테이너 클러스터의 생명주기 관리를 위한 기능을 제공한다. 이를 통해 애플리케이션의배포,스케일링, 로드 밸런싱, 롤링 업데이트, 자동 복구 등을 자동화하고 관리할 수 있다. 또한, 쿠버네티스는 다양한 환경에서 동작하는 많은 컨테이너 오케스트레이션 기능을 제공한다.
즉 도커는 컨테이너를 실행,구동 할수있게 해주는 소프트웨어고 쿠버네티스는 여러 서버(노드)에 컨테이너를 분산해서 배치하거나, 문제가 생긴 컨테이너를 교체하거나, 컨테이너가 사용할 비밀번호나 환경 설정을 관리하고 주입해 주는 일 등,컨테이너를 오케스트레이션 하는 소프트웨어다.
컨테이너 가상화 실행환경
VM기반 가상화 환경만 다뤄봤어서 컨테이너기반 가상화도 물리적인 서버환경에서 실행하는 줄 알았는데 클라우드,가상머신에서 실행하는 경우도 많은 것 같다. AWS의 컨테이너 오케스트레이션 서비스 ECS도 AWS의 인스턴스(가상머신)들로 클러스터를 구성하여 실행한다. 그래서 처음 ECS 개념에대해 접할 때 잘 이해가 되지않았당 가상머신에서 실행하는 환경이면 저 위에 그림이 VM이라고 생각하면 이해하기 쉽다!
'클라우드 서비스 > 클라우드 기초' 카테고리의 다른 글
가상화란?(가상화 개념, 가상화 클라우드 차이) (0) | 2023.01.23 |
---|---|
클라우드 서비스 종류(IaaS, PaaS, SaaS) (5) | 2023.01.17 |
클라우드 컴퓨팅이란?(클라우드 컴퓨팅 개념) (2) | 2023.01.14 |
댓글