Kubernetes · 2025-10-28 · 1분 읽기
Kubernetes 핵심 개념 정리 - Pod부터 Ingress까지
목차
- ›1. 핵심 개념 한눈에 보기
- ›2. Deployment
- ›3. Service
- ›4. Ingress
- ›5. 자주 쓰는 명령어
1. 핵심 개념 한눈에 보기
Cluster
└── Node (실제 서버)
└── Pod (컨테이너 묶음)
└── Container
Pod: 배포의 최소 단위. 같은 Pod의 컨테이너는 localhost로 통신한다. Deployment: Pod를 선언적으로 관리. 롤링 업데이트, 롤백 지원. Service: Pod에 고정된 IP와 DNS를 부여. Ingress: 외부 HTTP/HTTPS 트래픽을 서비스로 라우팅.
2. Deployment
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app
spec:
replicas: 3
selector:
matchLabels:
app: my-app
template:
metadata:
labels:
app: my-app
spec:
containers:
- name: my-app
image: my-app:1.0.0
ports:
- containerPort: 8080
resources:
requests:
cpu: "250m"
memory: "256Mi"
limits:
cpu: "500m"
memory: "512Mi"3. Service
apiVersion: v1
kind: Service
metadata:
name: my-app-svc
spec:
selector:
app: my-app
ports:
- port: 80
targetPort: 8080
type: ClusterIPClusterIP: 클러스터 내부 통신용
NodePort: 외부에서 노드 IP로 직접 접근
LoadBalancer: 클라우드 로드밸런서 연결
4. Ingress
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: my-ingress
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- host: api.example.com
http:
paths:
- path: /users
pathType: Prefix
backend:
service:
name: user-svc
port:
number: 80
- path: /orders
pathType: Prefix
backend:
service:
name: order-svc
port:
number: 805. 자주 쓰는 명령어
# 리소스 확인
kubectl get pods
kubectl get deployments
kubectl describe pod my-pod
# 로그
kubectl logs -f my-pod
kubectl logs -f my-pod -c my-container # 멀티컨테이너
# 스케일
kubectl scale deployment my-app --replicas=5
# 롤링 업데이트
kubectl set image deployment/my-app my-app=my-app:2.0.0
# 롤백
kubectl rollout undo deployment/my-app'Kubernetes ' 카테고리의 다른 글
- 이 카테고리에 다른 글이 없습니다.