본문 바로가기
데이터 분석

Kubernetes란 무엇일까? Docker와의 관계 이해하기

by hidden-state 2026. 6. 15.

Kubernetes의 기본 개념과 Docker와의 관계

Docker를 사용하면 애플리케이션을 컨테이너 형태로 쉽게 배포할 수 있다. 하지만 서비스 규모가 커지면서 컨테이너 수가 많아지면 새로운 관리 문제가 발생하게 된다.

예를 들어 수십 개 또는 수백 개의 컨테이너를 운영해야 하는 환경에서는 컨테이너의 실행 상태를 확인하고, 장애가 발생했을 때 자동으로 복구하며, 트래픽을 여러 서버에 분산하는 기능이 필요하다.

이러한 문제를 해결하기 위해 등장한 기술이 Kubernetes이다.


Kubernetes란 무엇인가

Kubernetes는 컨테이너화된 애플리케이션을 자동으로 배포하고 관리하기 위한 컨테이너 오케스트레이션(Container Orchestration) 플랫폼이다.

쉽게 말해 여러 개의 컨테이너를 효율적으로 운영하기 위한 관리 도구라고 볼 수 있다.

Kubernetes는 컨테이너의 생성, 배포, 확장, 복구 과정을 자동화하여 대규모 서비스 운영을 지원한다.


왜 Kubernetes가 필요할까

Docker만 사용하는 환경에서는 컨테이너 수가 많아질수록 관리가 어려워진다.

예를 들어 웹 서버 컨테이너가 100개 실행 중이라고 가정해보자. 이 중 일부 컨테이너가 장애로 종료되었다면 관리자가 직접 확인하고 다시 실행해야 할 수 있다.

또한 사용자가 갑자기 증가하면 추가 컨테이너를 생성하여 처리량을 늘려야 한다.

Kubernetes는 이러한 작업을 자동으로 수행할 수 있다.


Kubernetes의 주요 기능

1. 자동 배포

새로운 버전의 애플리케이션을 자동으로 배포할 수 있다.

서비스 중단을 최소화하면서 업데이트를 진행할 수 있다.

2. 자동 복구

실행 중인 컨테이너가 비정상적으로 종료되면 자동으로 새로운 컨테이너를 생성한다.

이를 통해 서비스 안정성을 높일 수 있다.

3. 오토 스케일링

사용량이 증가하면 컨테이너 수를 늘리고, 사용량이 감소하면 컨테이너 수를 줄일 수 있다.

불필요한 자원 사용을 줄이고 효율적인 운영이 가능하다.

4. 로드 밸런싱

들어오는 요청을 여러 컨테이너에 분산하여 처리할 수 있다.

특정 컨테이너에 트래픽이 집중되는 문제를 줄일 수 있다.


Docker와 Kubernetes의 관계

Docker와 Kubernetes는 경쟁 관계가 아니라 서로 보완하는 관계에 가깝다.

Docker는 애플리케이션을 컨테이너 형태로 패키징하고 실행하는 역할을 수행한다.

반면 Kubernetes는 이러한 컨테이너들을 관리하고 운영하는 역할을 수행한다.

즉 Docker가 컨테이너를 만드는 기술이라면 Kubernetes는 만들어진 컨테이너를 효율적으로 운영하는 기술이라고 볼 수 있다.


Docker와 Kubernetes 비교

구분 Docker Kubernetes
목적 컨테이너 생성 및 실행 컨테이너 관리 및 운영
대상 개별 컨테이너 여러 컨테이너와 클러스터
주요 기능 이미지 생성 및 실행 배포, 복구, 확장 자동화

실제 서비스 환경 예시

예를 들어 온라인 쇼핑몰 서비스를 운영한다고 가정해보자.

Docker는 웹 서버와 데이터 처리 프로그램을 컨테이너로 실행하는 역할을 한다.

Kubernetes는 이러한 컨테이너들을 여러 서버에 배치하고, 트래픽 증가에 따라 자동으로 확장하며, 장애가 발생한 컨테이너를 자동 복구하는 역할을 수행한다.

따라서 대규모 서비스를 운영할수록 Kubernetes의 중요성이 커진다.


정리

Kubernetes는 컨테이너 기반 애플리케이션을 자동으로 배포하고 관리하기 위한 플랫폼이다.

Docker가 컨테이너를 생성하는 기술이라면, Kubernetes는 생성된 컨테이너를 효율적으로 운영하는 기술이라고 볼 수 있다.

두 기술은 서로 경쟁하는 관계가 아니라 함께 사용되는 경우가 많으며, 현대 클라우드 환경에서 핵심적인 역할을 수행하고 있다.