도커(Docker)와 쿠버네티스(Kubernetes)
본질적으로는 컨테이너와 오케스트레이션을 가리키는 말.
도커
특정한 서비스를 컨테이너 이미지로 패키징하고 배포하는데 유용한 컨테이너 기반 오픈소스 가상화 플랫폼
쿠버네티스
컨테이너화된 애플리케이션을 자동으로 배포, 스케일링 및 관리해주는 오픈소스 시스템
컨테이너 운영 환경 중 가장 널리 사용되는 컨테이너 오케스트레이션툴 중 하나.
🔽 Docker란?
🔽 쿠버네티스(Kubernets)란?
컨테이너를 쉽고 빠르게 배포/확장하고 관리를 자동화해주는 오픈소스 플랫폼
🔽 마이크로 서비스란?
도커와 쿠버네티스의 관계
컨테이너는 원래 프로세스나 애플리케이션을 서로서로 그리고 기반 시스템으로부터 격리하기 위해 만들어졌다.
하지만 데이터베이스와 웹 프론트엔드, 연상을 위한 백엔드 등
여러 컨테이너를 모아 하나의 단위로 관리할 수 있는 커다란 애플리케이션으로 만들고자 한다면 문제가 달라진다.
더구나 이들 컨테이너 각각을 독립적으로 배치하고 연결하고 관리하고 확장할 수 있어야 한다면?
이 모든 구성요소를 전체로 기능하도록 조직할 방법이 필요하다.
이 작업이 바로 쿠버네티스가 도전하는 영역이다.
만약 컨테이너가 크루즈선의 승객이라면, 쿠버네티스는 크루즈선의 선장이다.
도커
- 기술적인 개념이자 도구
- 이미지를 컨테이너에 띄우고 실행하는 기술
- 한 개의 컨테이너를 관리하는 데 최적
쿠버네티스
- 도커를 관리하는 툴
- 도커를 기반으로 컨테이너를 관리하는 서비스
- 여러 개의 컨테이너를 서비스 단위로 관리하는 데 최적화
🔽 컨테이너 오케스트레이션이란?
복잡한 컨테이너 환경을 효과적으로 관리하기 위한 도구
쿠버네티스 컨테이너 오케스트레이션을 사용해야 할 때
앱의 기능과 사용자 수가 사소한 수준 이상이라면, 오케스트레이션 시스템을 사용하지 않고 직접 해결하기 어려워진다.
다음과 같은 경우에는 오케스트레이션을 반드시 사용해야 한다.
- 복잡한 앱
두 개 이상의 컨테이너가 관련되는 앱이라면 오케스트레이션을 사용하는 것이 좋을 것이다. 하지만 사용자 수가 많지 않고 크기도 보통인 앱이라면 쿠버네티스보다는 도커 스웜(Docker Swarm) 모드 같은 좀 더 최소화된 솔루션을 사용하는 것이 좋다.
- 확장성과 복구성이 중요한 앱
쿠버네티스를 비롯한 오케스트레이션 툴은 조건이 바뀔 때마다 코딩으로 대응하지 않고, 원하는 시스템 상태를 서술하는 방식으로 워크로드와 컨테이너 간의 균형을 맞출 수 있다.
- 현대적인 CI/CD 기법을 적용하고 싶을 때
오케스트레이션 시스템은 블루/그린 배치나 롤링 업그레이드를 사용하는 앱을 위한 배치 패턴을 지원한다.
🔽 참고한 링크
'기타 > 클라우드' 카테고리의 다른 글
클라우드 # 클라우드 컴퓨팅 / 서비스모델 / 개발자 공고의 클라우드 역량 (0) | 2021.07.31 |
---|---|
Docker에 MariaDB설치하기 + 에러 해결법(MySQL과 Mariadb port 겹침 에러 - Ports are not available) (1) | 2021.07.14 |
마이크로 서비스 아키텍쳐(MSA)란? (0) | 2021.07.07 |
컨테이너 오케스트레이션 부터 쿠버네틱스 까지 (0) | 2021.07.07 |
Docker(도커)란? (0) | 2021.07.07 |