1. Kubernetes(쿠버네티스) & Minikube(미니큐브)

박은서's avatar
Apr 09, 2026
1. Kubernetes(쿠버네티스) & Minikube(미니큐브)

1. Kubernetes (쿠버네티스)

1️⃣ Kubernetes 개념 정리

1) Kubernetes란?

  • 컨테이너(주로 Docker)를 자동으로 관리해주는 시스템
  • “컨테이너 운영 자동화 플랫폼”

2) Kubernetes의 핵심 역할

  • 컨테이너 실행/배포
  • 자동 복구 (죽으면 다시 띄움)
  • 트래픽 분산 (로드밸런싱)
  • 스케일링 (자동 확장/축소)

3) Kubernetes의 필요성

💥 문제 상황 (Docker만 쓸 때)
  • 컨테이너 10개 → 직접 관리 가능
  • 컨테이너 100개 → ❌ 관리 지옥
  • 문제점
    • 어떤 컨테이너 죽었는지 모름
    • 트래픽 몰리면 서버 터짐
    • 여러 서버에 분산 배치 어려움
✅ Kubernetes 해결
  • 자동으로 컨테이너 관리
  • 서버 여러 개를 하나처럼 사용 가능
Kubernetes = “대규모 서비스 운영을 위한 필수 도구”

2️⃣ 전체 구조 (핵심 이해)

1) 전체 구조 한 줄 요약

  • Master(관리자) + Worker(일꾼 서버들)

2) 구조 그림 (개념)

[사용자] ↓ [Master Node] ← 컨트롤 타워 ↓ [Worker Node 1] → 컨테이너 실행 [Worker Node 2] [Worker Node 3]

3) 구성 요소

① Master Node (컨트롤 타워)
  • 전체 클러스터 관리
  • 어디에 컨테이너 배치할지 결정
② Worker Node (실제 실행)
  • 컨테이너가 실제로 돌아가는 서버

3️⃣ 핵심 개념 5개 (중요)

1) Pod (파드)

  • 컨테이너를 감싸는 최소 단위
  • Kubernetes는 Docker 컨테이너를 직접 관리 ❌
  • 대신 Pod 단위로 관리 ⭕
Pod └── Container (Spring Boot 등)
  • 특징
    • 1개 또는 여러 컨테이너 포함 가능
    • 같은 IP, 같은 네트워크 사용

2) Deployment

  • Pod를 자동으로 관리하는 객체 (Pod 관리자)
  • 역할
    • Pod 여러 개 생성
    • 죽으면 자동 재생성
    • 업데이트 관리

3) Service

  • Pod를 외부에서 접근 가능하게 해줌
  • 필요한 이유
    • Pod은 IP가 계속 바뀜
    • 직접 접근하면 깨짐
  • 해결
    • Service가 고정 주소 제공

4) Namespace

  • 리소스를 그룹으로 나누는 개념
    • dev / test / prod
      • ➡️ 프로젝트별 격리

5) ConfigMap / Secret

  • 설정 관리
    • ConfigMap → 일반 설정
    • Secret → 비밀번호, 키

4️⃣ 동작 흐름 (실무 핵심)

1) 배포 흐름

1. 개발자가 Deployment 생성 2. Kubernetes가 Pod 생성 3. Pod이 Worker Node에 배치 4. Service로 외부 연결

2) 장애 발생 시

Pod 죽음 ↓ Kubernetes 감지 ↓ 자동으로 새 Pod 생성
➡️ Self-healing (자동 복구)

5️⃣ 스케일링 (진짜 핵심)

1) 수동 스케일링

kubectl scale deployment app --replicas=3
➡️ Pod 3개로 증가

2) 자동 스케일링

  • 트래픽 많으면 → Pod 증가
  • 트래픽 줄면 → Pod 감소
➡️ Auto Scaling

6️⃣ Docker vs Kubernetes 차이

구분
Docker
Kubernetes
역할
컨테이너 실행
컨테이너 관리
범위
단일 서버
여러 서버
자동 복구
없음
있음
스케일링
수동
자동
➡️ Docker = 실행 / Kubernetes = 운영

7️⃣ 이해하면 좋은 핵심 포인트 (중요🔥)

1) Kubernetes는 Docker 위에서 동작한다

  • Docker 없이는 의미 없음

2) 직접 컨테이너를 다루지 않는다

  • 항상 Pod → Deployment → Service 구조

3) “서버” 개념이 사라진다

  • 특정 서버가 아니라 클러스터 전체가 하나의 컴퓨터처럼 동작

8️⃣ 실무 감각 한 줄 정리

  • Docker만 쓰면 “컨테이너 실행”
  • Kubernetes 쓰면 “서비스 운영 자동화”

9️⃣ Minikube랑 관계

  • 로컬에서 Kubernetes 테스트용 환경
  • 실제 클라우드 환경을 축소판으로 만든 것

🔟 최종 정리

🔥 핵심 요약

  • Pod = 컨테이너 묶음 (최소 단위)
  • Deployment = Pod 관리자
  • Service = 외부 연결
  • Kubernetes = 컨테이너 자동 운영 시스템

🖼️ 그림으로 이해하기

notion image

2. Minikube (미니큐브)

1️⃣ Minikube 개념 정리

1) Minikube란?

  • 로컬 PC에서 쿠버네티스를 실행할 수 있게 해주는 도구
  • PC 안에 작은 Kubernetes 클러스터를 만들어줌

2) 한 줄 정의

“내 컴퓨터 안에 쿠버네티스를 설치해주는 프로그램”

2️⃣ 왜 필요한가?

1) 실제 Kubernetes 문제

  • 원래 Kubernetes는 서버 여러 대 필요 (클러스터)
💥 개인 PC에서는 실행하기 어려움

2) Minikube 해결

  • 단 1대의 PC로 Kubernetes 실행 가능
  • 가상 머신 or Docker 위에서 실행됨

3️⃣ 구조 이해 (중요🔥)

1) 실제 Kubernetes

[Master Node] [Worker Node1] [Worker Node2] [Worker Node3]
  • 여러 서버 필요

2) Minikube

[내 PC] └── Kubernetes (Master + Worker 합쳐진 형태)
  • 한 대에 다 들어있음

4️⃣ 내부 동작 방식

  • Minikube는 내부적으로 Docker / VM 위에 Kubernetes를 띄움

minikube 실행

minikube start
  1. Kubernetes 클러스터 생성
  1. Node 생성
  1. 컨테이너 환경 준비
  1. kubectl 연결 설정

5️⃣ Minikube vs Kubernetes

구분
Minikube
Kubernetes
목적
테스트/학습
실제 운영
환경
로컬 PC
서버 클러스터
규모
1 노드
여러 노드
용도
개발
서비스 운영

6️⃣ 언제 쓰는가?

1) 개발자 입장

  • Kubernetes 연습
  • 배포 테스트
  • YAML 파일 검증

2) 실무 흐름

  • 일반적인 흐름
1. 로컬에서 Minikube로 테스트 2. 문제 없으면 3. AWS / GCP Kubernetes에 배포

7️⃣ 핵심 명령어 (기초)

minikube start # 클러스터 실행 minikube stop # 중지 minikube delete # 삭제 minikube dashboard # 대시보드 실행 minikube ip # ip 확인

8️⃣ kubectl과의 관계

1) kubectl

① 개념
  • 쿠버네티스를 제어하는 CLI 도구 (명령어 도구)
  • “쿠버네티스 원격 리모컨”
  • 클러스터에 명령을 내려서 Pod, Deployment 등을 생성/조회/삭제
➡️ kubectl = 쿠버네티스 클러스터를 제어하는 명령어 도구 (API Server에 요청 보내는 역할)
② 핵심 역할
  • 리소스 생성
    • yaml 파일로 객체 생성
    • kubectl apply -f deployment.yml
  • 상태 조회
    • kubectl get pod kubectl get deployment
  • 상세 정보 확인
    • kubectl describe pod 이름
  • 삭제
    • kubectl delete pod 이름
③ 동작 흐름 (중요)
  • 구조
    • kubectl → API Server → etcd / Controller / Scheduler
  • 설명
      1. kubectl이 명령 보냄
      1. API Server가 받음 (쿠버네티스의 입구)
      1. 내부 컴포넌트들이 실제 작업 수행
      ➡️ kubectl은 직접 컨테이너를 만드는 게 아니라 API Server한테 “이렇게 해줘” 요청하는 역할
④ 자주 쓰는 명령어 정리
  • 조회
    • kubectl get pod kubectl get svc kubectl get all
  • 실행
    • kubectl apply -f 파일명.yml
  • 수정
    • kubectl set image deployment/이름 컨테이너=이미지
  • 롤백
    • kubectl rollout undo deployment/이름

2) Minikube와 kubectl

  • 같이 써야 함
    • Minikube → Kubernetes 환경 제공
    • kubectl → Kubernetes 조작
  • 구조
    • kubectl → Minikube(Kubernetes) → Pod 실행

9️⃣ 핵심 이해 포인트 (중요🔥)

1) Minikube는 Kubernetes 자체가 아님

  • Kubernetes를 실행해주는 도구

2) 실제 서버랑 동일한 개념

  • 단지 “축소판”

3) 실무 전 단계 필수 도구

  • Kubernetes 입문 = Minikube

🔥 최종 한 줄 정리

  • Minikube = 내 컴퓨터에서 Kubernetes를 돌려주는 테스트 환경
Share article