소프트웨어가 실행되는 하드웨어를 서버라고 한다. 운영되는 서버는 회사의 서버실에 있을 수도 있고 클라우드처럼 온라인 서버를 사용할 수도 있다.
PC에서 개발한 소프트웨어는 보통 메모리가 2~4GB 만 있어도 충분히 실행할 수 있는데 서버실에 있는 서버는 32~64GB 메모리를 가지고 있기 때문에 대량의 소프트웨어를 실행해야 한다.
하지만 IT 서비스로 제공되는 소프트웨어가 다운된다면 서비스의 장애로 이어지기 때문에 1 서버 1 소프트웨어 실행이 안전하다. 그런데 64GB 서버에서 4GB 소프트웨어 하나만 실행하면 낭비가 아닐까?
이로 인해 "가상화"라는 기술을 사용하여 1 서버 n 소프트웨어 실행을 가능하게 한다.
예전부터 사용하던 가상화 방식은 VM(Virtual Machine) 가상머신 이라는 방식을 사용했는데 프로그램을 실행하고 업그레이드 하는데에 시간이 오래 걸렸다.
이에 반해 컨테이너 가상화 방식은 기존의 가상화 기술보다 가볍고 빠르다는 장점이 있어서 안전하고 효율적인 소프트웨어의 운영이 가능하다.
이러한 컨테이너를 관리하기 위한 일종의 프로그램이 도커이다.
그런데 도커마저 여러 대를 운영하면 관리하기 힘들어지는데 이를 관리해주는 오케스트레이션 도구가 쿠버네티스이다. 개발자가 원하는 상태를 문서로 정리한다면 k8s는 알아서 도커 컨테이너를 관리해준다.
컨테이너 : 한 대의 서버에서 여러 개의 소프트웨어를 안전하고 효율적으로 운영할 수 있는 가상화 방식
도커 : 컨테이너를 관리하기 위한 도구로 일종의 프로그램
쿠버네티스 : 서버가 여러 대 있는 환경에서 각각의 서버의 도커에게 대신 지시해주는 오케스트레이션 도구
개발자를 위한 쉬운 도커 (2024 NEW) | 컨테이너, 도커, 쿠버네티스의 개념을 엄청 쉽게 알려드려요.
https://www.youtube.com/watch?v=eRfHp16qJq8&t=331