쿠버네티스 (Kubernetes)

컴퓨터과학·AI
한 줄 정의: 다수의 서버에 걸쳐 컨테이너의 배포, 확장, 장애 복구를 자동으로 관리해 주는 오픈소스 컨테이너 오케스트레이션 플랫폼.

쉽게 풀면

쿠버네티스는 수십, 수백 개의 도커 컨테이너를 여러 서버에 걸쳐 자동으로 배치하고 관리해 주는 시스템이다. 트래픽이 늘어나면 컨테이너 수를 자동으로 늘리고, 컨테이너 하나가 고장 나면 알아서 새 컨테이너로 교체하는 등 사람이 일일이 손대지 않아도 서비스가 안정적으로 유지되도록 돕는다. 대규모 모델을 서비스로 배포하거나, 실험을 여러 서버에서 동시에 돌릴 때 그 인프라를 관리하는 도구로 널리 쓰인다.

왜 중요한가

대규모 딥러닝 모델의 학습과 서빙, 분산 데이터 처리 실험은 여러 대의 서버 자원을 동시에 다루어야 하는데, 쿠버네티스는 이런 인프라 관리를 표준화된 방식으로 자동화해 준다. 시스템 논문이나 MLOps 관련 연구에서는 재현 가능한 실험 환경을 구축하고 자원 활용을 효율화하는 기반 기술로 자주 언급되며, 클라우드 네이티브 아키텍처 전반의 핵심 구성 요소로 자리 잡았다.

논문에서는 이렇게 쓰입니다

"모델 서빙 시스템은 Kubernetes 클러스터 위에서 자동 확장이 가능하도록 배포되었다."

학습된 모델을 실제 서비스로 제공하는 시스템을 쿠버네티스로 관리해, 사용량 변화에 맞춰 서버 수를 자동으로 조절할 수 있게 했다는 뜻이다.

"분산 학습 실험은 Kubernetes 상에서 컨테이너화된 워커 노드로 구성되어 재현성을 확보하였다."

여러 GPU 서버에서 동시에 학습을 진행하는 분산 학습 실험 환경을 쿠버네티스로 표준화해, 다른 연구자도 동일한 조건에서 실험을 재현할 수 있도록 했다는 뜻이다.

"엣지 컴퓨팅 환경에서는 경량화된 Kubernetes 배포판을 활용해 다수의 소형 노드를 통합 관리하는 구조를 제안하였다."

사물인터넷·엣지 컴퓨팅 연구에서는 자원이 제한된 여러 소형 장치를 쿠버네티스 기반으로 통합 관리하는 방식이 자주 다루어진다는 뜻이다.

조금 더 깊게 보면

쿠버네티스는 컨테이너 실행 단위인 파드(Pod)를 기본 관리 대상으로 삼고, 컨트롤 플레인이 클러스터 전체의 원하는 상태(desired state)를 지속적으로 실제 상태와 비교하며 조정하는 선언적(declarative) 방식으로 동작한다. 오토스케일링(HPA 등), 서비스 디스커버리, 롤링 업데이트 같은 기능이 이 조정 루프 위에서 구현되어 있어, 논문에서 성능이나 가용성을 논할 때는 이런 기본 동작 원리를 함께 이해하는 것이 도움이 된다.

주의할 점

쿠버네티스는 강력하지만 설정과 운영이 복잡한 편이라, 소규모 실험이나 단일 서버 환경에서는 오히려 도커 컴포즈처럼 더 단순한 도구가 적합할 수 있다.

관련 용어