Kubernetes(K8s)는 2014년 Google이 오픈소스로 공개한 컨테이너 오케스트레이션 플랫폼이다. 다수의 Docker 컨테이너를 자동으로 배포·스케일링·관리한다.
핵심 개념
| 개념 | 설명 |
|---|
| Pod | 하나 이상의 컨테이너를 담는 최소 배포 단위 |
| Node | Pod를 실행하는 물리/가상 서버 |
| Cluster | 여러 Node의 집합 |
| Deployment | Pod의 선언적 관리 (복제, 롤링 업데이트) |
| Service | Pod에 안정적인 네트워크 엔드포인트 제공 |
| Namespace | 리소스를 논리적으로 격리 |
기본 설정 파일
yaml
# Deployment
apiVersion: apps/v1
kind: Deployment
metadata:
name: web-app
spec:
replicas: 3
selector:
matchLabels:
app: web
template:
metadata:
labels:
app: web
spec:
containers:
- name: web
image: my-app:1.0
ports:
- containerPort: 3000
resources:
requests:
memory: "64Mi"
cpu: "250m"
limits:
memory: "128Mi"
cpu: "500m"
---
# Service
apiVersion: v1
kind: Service
metadata:
name: web-service
spec:
selector:
app: web
ports:
- port: 80
targetPort: 3000
type: LoadBalancer
주요 kubectl 명령어
bash
kubectl apply -f deployment.yaml # 배포
kubectl get pods # Pod 목록
kubectl logs pod-name # 로그 확인
kubectl scale deployment web-app --replicas=5 # 스케일 아웃
kubectl rollout undo deployment/web-app # 롤백
관련 개념
- •Docker — K8s가 관리하는 컨테이너
- •마이크로서비스 — K8s의 주요 활용 환경
- •로드 밸런서 — K8s Service가 내장
참고문헌
- •Kubernetes 공식 문서: kubernetes.io
- •Burns et al. Kubernetes: Up and Running, 3rd Ed.