pgms

[15주차] - [9기] 타입스크립트로 함께하는 웹 풀 사이클 개발(React, Node.js) 10회차 - 67

Ejah 2026. 4. 21. 23:34

쿠버네티스(Kubernetes) 입문부터 운영까지 정리

📌 들어가며

최근 백엔드 개발을 하면서 느낀 건,
이제는 단순히 API만 잘 만든다고 끝이 아니라는 점이다.

서비스를 어떻게 배포하고, 확장하고, 안정적으로 운영할 것인가
점점 더 중요해지고 있다.

그래서 공부를 시작한 것이 바로 쿠버네티스(Kubernetes)다.

이번 글에서는 내가 학습한 흐름을 기준으로
쿠버네티스의 핵심 개념부터 운영까지 정리해보려고 한다.


🧩 쿠버네티스란?

쿠버네티스는 한마디로 말하면

컨테이너를 자동으로 관리해주는 시스템

이다.

예를 들어:

  • 서버가 터지면 → 자동으로 다시 띄워주고
  • 트래픽이 몰리면 → 자동으로 서버를 늘리고
  • 배포 중 문제 생기면 → 이전 상태로 롤백

이런 것들을 자동으로 처리해준다.


🏗️ 기본 구조 이해하기

쿠버네티스를 이해하려면 핵심 객체들을 알아야 한다.

1. Pod

  • 가장 작은 실행 단위
  • 실제 컨테이너가 들어있는 공간

👉 “앱 하나 실행되는 단위”라고 생각하면 편함


2. Deployment

  • Pod를 관리하는 상위 개념
  • 개수 유지, 업데이트 관리 담당

👉 “Pod 관리자”


3. Service

  • Pod에 접근할 수 있도록 연결해주는 역할

👉 “로드밸런서 + 네트워크 역할”


⚙️ 기본 사용 흐름

쿠버네티스를 처음 사용할 때 흐름은 거의 이렇다.

  1. Docker 이미지 만들기
  2. Deployment로 Pod 생성
  3. Service로 외부 연결
  4. 상태 확인 (kubectl get pods)

🔄 서비스 운영 단계

이제 단순 실행이 아니라 운영 관점으로 넘어가면 중요해지는 것들:

✅ 자동 확장 (Auto Scaling)

  • 트래픽 증가 시 Pod 자동 증가
  • HPA (Horizontal Pod Autoscaler) 사용

✅ 롤링 업데이트

  • 서버 끊김 없이 배포 가능
  • 기존 Pod 유지하면서 새 버전 배포

👉 실무에서 가장 중요한 기능 중 하나


✅ 장애 복구

  • Pod 죽으면 자동 재생성
  • 헬스체크 기반 관리

💾 서비스 + 볼륨 (데이터 관리)

쿠버네티스에서 중요한 고민 중 하나는

“데이터를 어디에 저장할 것인가?”

문제

  • Pod는 언제든지 사라질 수 있음

해결

  • Volume 사용

종류:

  • emptyDir (임시)
  • Persistent Volume (영구 저장)

👉 DB, 파일 저장 등은 반드시 볼륨 사용해야 함


🔥 실무에서 느낀 핵심 포인트

쿠버네티스를 공부하면서 느낀 건 이거다:

1. 단순 실행보다 “운영 자동화”가 핵심

  • 서버를 사람이 관리하는게 아니라 시스템이 관리함

2. 장애 대응이 구조적으로 해결됨

  • 코드가 아니라 인프라에서 해결

3. DevOps의 핵심 도구

  • CI/CD + Kubernetes 조합 = 강력함

✍️ 마무리

쿠버네티스는 처음 보면 어렵지만
핵심 개념만 잡으면 생각보다 명확하다.

정리하면:

  • Pod → 실행 단위
  • Deployment → 관리
  • Service → 연결
  • Volume → 데이터

그리고 중요한 건

“서버를 직접 관리하지 않는 방식으로 사고하는 것”

이게 쿠버네티스를 이해하는 핵심이다.


🚀 다음 목표

  • 실제 프로젝트에 적용해보기
  • CI/CD 파이프라인 연결
  • Redis / DB까지 포함한 구조 설계