2022이전/Docker&Kubernetes

도커 vs 쿠버네티스

바로퇴장 2020. 6. 16. 19:19

이 둘을 비교한다는 것은 Dokcer Swarm 과 Kubernetes를 비교하는 것을 말한다.

도커 = 이미지 생성, 관리, 탄력적인 확장성, 격리, 이식성

쿠버네티스 = 오케스트레이션 중점, 복잡한 앱, 확장성과 복구성이 중요한 앱

도커란?

도커는 '컨테이너 기반의 오픈소스 가상화 플랫폼' 이다.

컨테이너는 애플리케이션 & OS앱을 구동하는 환경을 격리한 공간을 뜻한다.

자원을 필요한 만큼 격리하여 컨테이너에 할당(Host 운영체제와 자원 공유)

  • 효율적
  • 배포가 빠름

쿠버네티스란?

쿠버네티스는 '컨테이너 오케스트레이션 툴' 이다.

다른 컨테이너 오케스트레이션 툴로 'Docker Swarm', 'ECS', 'Nomad' 등이 있다.

오케스트레이션는 컨테이너를 스케줄링/클러스터링/ 서비스 디스커버리/ 로깅 및 모니터링 하는 것을 뜻한다.

점진적 업데이트 제공 -> 서비스 중단 없이 업데이트 가능

특정 컨테이너가 죽었다면 즉각 그 컨테이너를 복제 생성해서 서비스를 유지한다.( = self healing)

(걍 도커는 컨테이너 죽으면 바로 버림ㅠㅠ오류로그 남겨주던지...)

마이크로서비스

거대한 어플리케이션을 기능별로 나누어 변경/좋바이 가능하게 한 것

컨테이너를 사용하면 하나의 큰 어플을 서비스 단위로 잘라 빠르게 배포 가능.

docker swarm은 stack을 이용하여 service를 관리를 하지만 세부적으로 컨테이너까지 묶어서 관리하는 것이 어렵다.

간단 요약

KUBERNETES DOCKER SWARM
GOOGLE Docker inc
Huge community (not)as...big as k8s
복잡한 구조 간단한 구조
100~1000 < 컨테이너 관리 10~20< 컨테이너 관리
Clustering에 강점 이미지, 배포에 강점
GUI 제공 GUI 미제공
Scaling out 쉬움 Scaling out 빠름
트래픽 기반으로 scaling 관리 용이 메뉴얼 대로 scaling
로드벨런싱 따로 설정 Swarm을 통해 로드벨런싱
자동 롤백 기능 가능 자동 롤백 기능 x
POD를 통해 컨테이너 관리 node를 통해 컨테이너 관리