Contents
1. Kubernetes (쿠버네티스)1️⃣ Kubernetes 개념 정리2️⃣ 전체 구조 (핵심 이해)3️⃣ 핵심 개념 5개 (중요)4️⃣ 동작 흐름 (실무 핵심)5️⃣ 스케일링 (진짜 핵심)6️⃣ Docker vs Kubernetes 차이7️⃣ 이해하면 좋은 핵심 포인트 (중요🔥)8️⃣ 실무 감각 한 줄 정리9️⃣ Minikube랑 관계🔟 최종 정리2. Minikube (미니큐브)1️⃣ Minikube 개념 정리2️⃣ 왜 필요한가?3️⃣ 구조 이해 (중요🔥)4️⃣ 내부 동작 방식5️⃣ Minikube vs Kubernetes6️⃣ 언제 쓰는가?7️⃣ 핵심 명령어 (기초)8️⃣ kubectl과의 관계9️⃣ 핵심 이해 포인트 (중요🔥)🔥 최종 한 줄 정리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 = 컨테이너 자동 운영 시스템
🖼️ 그림으로 이해하기

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- Kubernetes 클러스터 생성
- Node 생성
- 컨테이너 환경 준비
- 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- 설명
- kubectl이 명령 보냄
- API Server가 받음 (쿠버네티스의 입구)
- 내부 컴포넌트들이 실제 작업 수행
➡️ 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