본문 바로가기

Back/Server

[Infra] 컨테이너(container), 도커(docker), 쿠버네티스(k8s)

 

컨테이너의 사용 배경

하나의 서버에서 여러개의 서비스를 실행한다고 할때, 충돌이 발생할 수 있음. (예를 들면 각 서비스에서 사용하는 다양한 버전의 라이브러리들이 충돌)

서버에 장애가 발생하면 클라이언트에 다 영향을 끼침.
가장 안전하면서 효율적으로 서비스를 실행시키는 방법은 적절한 리소스가 있는 하나의 서버에 하나의 서비스만 실행시키는 것.

그러나 물리적인 한계때문에 쉽지않음.

 

 

가상화 기술 (가상머신, 도커)

 

하나의 물리적인 서버에 가상의 벽을 세워서 여러대의 서버가 동작하는 것처럼 사용.

공간이 분리 되기 때문에 안전하고, 필요한 만큼 리소스를 나눠줄 수 있음.

예전부터 소프트웨어에서 사용해오던 가상화기술은 가상머신.

가상머신보다 컨테이너방식이 더 가볍고 빠름.

(맨땅에 공사하는것보다 모듈러 주택이 더 빠르고 편하게 지어지는 것 처럼)

컨테이너 관리를 직접 하는것은 비효율적이기 때문에 대신할 전문가가 필요. -> 그게 바로 도커!

 

쿠버네티스(kubernetes)

여러개의 도커를 직접 관리하기 어려움.

도커가 설치된 여러대의 서버를 관리하기 위한 도구.


정리

1. 컨테이너를 사용하면 한대의 서버에서 여러개의 소프트웨어를 안전하고 효율적으로 운영할 수 있다.

2. 도커는 컨테이너를 관리하는 도구이다.

3. 쿠버네티스는 서버가 여러대 있는 환경에서 각 서버에 있는 도커에게 대신 지시해주는 오케스트레이션 도구이다.

 

 

 

출처. https://youtu.be/Cvcj4bbaOUo?si=zII29XTO44XLGs6e