기타/이슈&용어정리

쿠버네티스(Kubernetes, 줄여서 K8s) 정보

七顚八起(7전8기) 2026. 4. 27. 18:22
반응형

쿠버네티스(Kubernetes, 줄여서 K8s)는 컨테이너화된 애플리케이션을 자동으로 배포, 확장 및 관리해 주는 오픈소스 오케스트레이션 플랫폼입니다. 쉽게 말해, 수십 수백 개의 컨테이너(Docker 등)를 일일이 관리하기 힘드니, 이를 대신 관리해 주는 '자동 조타수'라고 생각하면 됩니다.


1. 왜 쿠버네티스가 필요한가요?

과거에는 서버 한 대에 여러 프로그램을 직접 설치했지만, 이제는 '컨테이너' 단위로 쪼개서 관리합니다. 그런데 서비스 규모가 커지면 다음과 같은 고민이 생깁니다.

  • "서버 한 대가 죽으면 그 안의 컨테이너들을 어떻게 다른 서버로 옮기지?"
  • "사용자가 갑자기 몰리면 컨테이너 개수를 어떻게 늘리지?"
  • "새로운 버전을 배포할 때 서비스 중단 없이 업데이트하려면?"

이 모든 고민을 해결해 주는 것이 바로 쿠버네티스입니다.


2. 쿠버네티스의 핵심 구조

쿠버네티스 클러스터는 크게 두 부분으로 나뉩니다.

① 컨트롤 플레인 (Control Plane)

클러스터의 '뇌' 역할을 합니다. 전체 상태를 관리하고 명령을 내립니다.

  • API 서버: 모든 통신의 중심 창구입니다.
  • etcd: 클러스터의 모든 데이터를 저장하는 저장소(백업본)입니다.
  • 스케줄러: 어떤 컨테이너를 어느 서버(노드)에 배치할지 결정합니다.

② 노드 (Node / Worker Node)

실제로 컨테이너가 실행되는 '일꾼' 서버입니다.

  • Kubelet: 컨트롤 플레인의 명령을 받아 컨테이너를 실행하고 상태를 보고합니다.
  • Proxy: 네트워크 규칙을 관리하여 통신이 원활하게 돕습니다.

3. 주요 개념과 용어

쿠버네티스를 이해하려면 다음 객체(Object)들을 알아야 합니다.

개념 설명
Pod (파드) 쿠버네티스에서 생성하고 관리할 수 있는 가장 작은 배포 단위. 하나 이상의 컨테이너를 담고 있습니다.
ReplicaSet 파드를 몇 개나 유지할지 관리합니다. (예: "항상 3개의 파드를 띄워줘")
Deployment 애플리케이션 배포의 기본 단위. 업데이트나 롤백을 관리합니다.
Service 파드 집합에 고정된 IP를 부여하여 외부나 내부에서 접근 가능하게 합니다.

4. 쿠버네티스의 핵심 기능 (장점)

  • 자가 치유 (Self-healing): 컨테이너가 죽으면 즉시 재시작하거나 교체합니다.
  • 자동 스케일링 (Auto-scaling): 부하에 따라 컨테이너 수를 자동으로 늘리거나 줄입니다.
  • 무중단 배포 (Rolling Updates): 서비스 중단 없이 새로운 버전의 소프트웨어를 배포합니다.
  • 서비스 디스커버리: 복잡한 네트워크 설정 없이도 컨테이너끼리 서로 쉽게 찾아서 통신할 수 있습니다.

5. 요약하자면

쿠버네티스는 "내가 원하는 상태(Desired State)"를 선언하면, 시스템이 알아서 "현재 상태(Current State)"를 그에 맞게 계속 유지해 주는 도구입니다. 개발자는 인프라 고민을 덜고 코드에만 집중할 수 있게 되는 겁니다.

감사합니다.

 

반응형