Docker vs Kubernetes

Hoo-Sung.Lee·2023년 12월 28일
0

쿠버네티스

목록 보기
2/6

0. 용어 정리

컨테이너: 앱이 구동되는 환경까지 감싸서 실행할 수 있도록 하는 격리 기술
컨테이너 런타임: 컨테이너를 다루는 도구
도커: 컨테이너를 다루는 도구 중 제일 유명한 것
쿠버네티스: 컨테이너 런타임을 통해 컨테이너를 오케스트레이션하는 도구
오케스트레이션: 여러 서버에 걸친 컨테이너 및 사용하는 환경 설정을 관리하는 행위
즉, 여러 서버(노드)에 컨테이너를 분산해서 배치하거나, 문제가 생긴 컨테이너를 교체하거나, 컨테이너가 사용할 비밀번호나 환경 설정을 관리하고 주입해 주는 일등을 한다.

도커와 쿠버네티스의 차이

쿠버네티스의 역할은 컨테이너를 분산 배치, 상태 관리 및 컨테이너의 구동 환경까지 관리해주는 도구이고, 도커는 컨테이너를 다루는 도구(컨테이너 런타임)중 하나이다.

개발자는 도커를 사용하여 컨테이너 이미지를 생성 및 조작하고, Kubernetes를 사용하여 여러 마이크로서비스를 대규모로 관리한다. 각 마이크로서비스는 여러 개의 컨테이너 자체로 개별 구성된다.

1. 도커

  1. Docker Build를 사용해서 컨테이너 이미지를 생성한다.
  2. Docker Compose를 사용하여 다중 컨테이너 애플리케이션을 정의 및 실행한다.
  3. Docker Hub를 사용하여 컨테이너 이미지 검색 및 공유한다.

2. 쿠버네티스

컨테이너 오케스트레이션 도구이다.

대부분의 애플리케이션은 여러 개의 마이크로서비스로 구성된다.
여러 서버에 걸쳐 실행되는 수천개의 마이크로서비스로 확장 가능한 애플리케이션도 있다. 다중 컨테이너 애플리케이션은 다음과 같은 문제가 발생한다.

  1. 여러 컨테이너를 조정하려면 어떻게 해야 할까?
  2. 컨테이너를 예약하려면 어떻게 해야 할까?
  3. 컨테이너를 그룹화하고 커탈로깅하려면 어떻게 할까?

개발자는 kubernetes와 같은 컨테이너 오케스트레이션 플랫폼을 사용하여 이러한 문제를 해결한다. Kubernetes는 컨테이너를 대규모로 관리할 수 있는 오픈 소스 기술로서 운영 복잡성을 처리해주므로, 여러 서버에 걸친 컨테이너 배포를 관리할 수 있다.

3. Docker-compose ? Kubernetes

Docker-compose를 사용해서 여러 개의 도커 컨테이너를 간편하게 구동 및 관리할 수 있다. 하지만, Docker-compose는 단일 호스트에서 동작하며 상대적으로는 단순한 구성을 가지고 있다.

반면, 쿠버네티스는 컨테이너 오케스트레이션 플랫폿으로, 여러 호스트간의 컨테이너를 배포하고 관리하는데 사용된다. 쿠버네티스는 클러스터 환경에서 확장 가능하며, 고급 기능을 제공하여 서비스의 확장, 롤링 업데이트, 자동 복구 등을 수행할 수 있다. 따라서 복잡하고 대규모인 환경에서 여러 컨테이너의 배포와 관리가 필요한 경우 쿠버네티스가 적합하다.

profile
Working towards becoming Backend-Developer

0개의 댓글

관련 채용 정보