기타/클라우드

도커(Docker)와 쿠버네티스(Kubernetes)

둥굴둥굴둥굴레차 2021. 7. 7. 23:34

 

 

도커(Docker)와 쿠버네티스(Kubernetes)

 

 

본질적으로는 컨테이너오케스트레이션을 가리키는 말.


 

도커

특정한 서비스를 컨테이너 이미지로 패키징하고 배포하는데 유용한 컨테이너 기반 오픈소스 가상화 플랫폼

 

쿠버네티스

컨테이너화된 애플리케이션을 자동으로 배포, 스케일링 및 관리해주는 오픈소스 시스템

컨테이너 운영 환경 중 가장 널리 사용되는 컨테이너 오케스트레이션툴 중 하나.

 

 

🔽 Docker란?

 

[2021.07.07] Docker(도커)란 / 도커 이미지? / 가상머신과 컨테이너의 차이점

Docker가 등장하기 전의 상황 하나의 서버에 여러개의 프로그램을 설치하게되면 버전 호환을 비롯해 다양한 문제가 발생하기 일쑤였다. 예를 들어 사용하는 라이브러리의 버전이 다르거나 동일

pythontoomuchinformation.tistory.com

 

🔽 쿠버네티스(Kubernets)란?

컨테이너를 쉽고 빠르게 배포/확장하고 관리를 자동화해주는 오픈소스 플랫폼
 

[2021.07.07] 컨테이너 오케스트레이션 부터 쿠버네틱스 까지

컨테이너 오케스트레이션이란? Container Orchestration 컨테이너의 배포, 관리, 확장, 네트워킹을 자동화하는 과정 및 기술 컨테이너를 사용하는 어떤 환경에서든 사용할 수 있다. 재설계할 필요 없이

pythontoomuchinformation.tistory.com

 

🔽 마이크로 서비스란?

 

[2021.07.07] 마이크로 서비스 아키텍쳐(MSA)란?

마이크로 서비스 아키텍쳐란? Microservices 애플리케이션 구축을 위한 아키텍처 기반의 접근 방식 애플리케이션을 상호 독립적인 최소 구성 요소로 분할함. 모든 요소가 독립적이며 연동되어 동일

pythontoomuchinformation.tistory.com

 

 

도커와 쿠버네티스의 관계

 

컨테이너는 원래 프로세스나 애플리케이션을 서로서로 그리고 기반 시스템으로부터 격리하기 위해 만들어졌다.

 

하지만 데이터베이스와 웹 프론트엔드, 연상을 위한 백엔드 등

여러 컨테이너를 모아 하나의 단위로 관리할 수 있는 커다란 애플리케이션으로 만들고자 한다면 문제가 달라진다.

더구나 이들 컨테이너 각각을 독립적으로 배치하고 연결하고 관리하고 확장할 수 있어야 한다면?

이 모든 구성요소를 전체로 기능하도록 조직할 방법이 필요하다.

이 작업이 바로 쿠버네티스가 도전하는 영역이다.

만약 컨테이너가 크루즈선의 승객이라면, 쿠버네티스는 크루즈선의 선장이다. 

 

 

 

도커

  • 기술적인 개념이자 도구
  • 이미지를 컨테이너에 띄우고 실행하는 기술
  • 한 개의 컨테이너를 관리하는 데 최적

 

쿠버네티스

  • 도커를 관리하는 툴
  • 도커를 기반으로 컨테이너를 관리하는 서비스
  • 여러 개의 컨테이너를 서비스 단위로 관리하는 데 최적화

 

 

🔽 컨테이너 오케스트레이션이란?

복잡한 컨테이너 환경을 효과적으로 관리하기 위한 도구
 

[2021.07.07] 컨테이너 오케스트레이션 부터 쿠버네틱스 까지

컨테이너 오케스트레이션이란? Container Orchestration 컨테이너의 배포, 관리, 확장, 네트워킹을 자동화하는 과정 및 기술 컨테이너를 사용하는 어떤 환경에서든 사용할 수 있다. 재설계할 필요 없이

pythontoomuchinformation.tistory.com

 

 

 

쿠버네티스 컨테이너 오케스트레이션을 사용해야 할 때

앱의 기능과 사용자 수가 사소한 수준 이상이라면, 오케스트레이션 시스템을 사용하지 않고 직접 해결하기 어려워진다.

 

다음과 같은 경우에는 오케스트레이션을 반드시 사용해야 한다.

  • 복잡한 앱

두 개 이상의 컨테이너가 관련되는 앱이라면 오케스트레이션을 사용하는 것이 좋을 것이다. 하지만 사용자 수가 많지 않고 크기도 보통인 앱이라면 쿠버네티스보다는 도커 스웜(Docker Swarm) 모드 같은 좀 더 최소화된 솔루션을 사용하는 것이 좋다.

  • 확장성과 복구성이 중요한 앱

쿠버네티스를 비롯한 오케스트레이션 툴은 조건이 바뀔 때마다 코딩으로 대응하지 않고, 원하는 시스템 상태를 서술하는 방식으로 워크로드와 컨테이너 간의 균형을 맞출 수 있다.

  • 현대적인 CI/CD 기법을 적용하고 싶을 때

오케스트레이션 시스템은 블루/그린 배치나 롤링 업그레이드를 사용하는 앱을 위한 배치 패턴을 지원한다.

 

🔽 참고한 링크

 

쿠버네티스 vs. 도커 : 컨테이너와 오케스트레이션의 이해

소프트웨어 개발의 최신 경향을 쫓다 보면, 분명 두 가지 용어를 만나고 또 만날 것이다. 바로 도커(Docker)와 쿠버네티스(Kubernetes) 인데, 본질적으로는 컨테이너와 오케스트레이션을 가리키는 말

www.itworld.co.kr

 

[Kubernetes] 도커와 쿠버네티스 간단 비교

도커와 쿠버네티스 비교 예시 컨테이너 하나 띄워서 사용해야지 => 도커 0월 0시에 100개의 컨테이너를 자동으로 생성해야지 => 쿠버네티스 간단 설명 도커는 '기술적인 개념이자 도구'이고 쿠버

wooono.tistory.com