kubectl config current-context
kubectl config get-contexts
kubectl get nodes
kubectl get pods -n <NAMESPACE>
kubectl get events -n <NAMESPACE> --sort-by=.metadata.creationTimestamp
kubectl describe pod <POD> -n <NAMESPACE>
kubectl logs <POD> -n <NAMESPACE> --tail=100
kubectl logs <POD> -n <NAMESPACE> --previous --tail=100
안정적인 Pod 식별자와 지속 스토리지가 필요한 워크로드에 사용합니다. Headless Service, volumeClaimTemplates, StorageClass, 복구 절차를 함께 설계합니다. StatefulSet 자체가 데이터베이스 복제·백업을 자동 제공하지 않습니다.
PVC 삭제 정책과 PV reclaim policy를 확인한 뒤 삭제 작업을 계획합니다.
probe, 리소스 요청·제한, PDB, 배포 전략, 로그·메트릭, 백업 복구를 워크로드별로 문서화합니다. EKS 버전 업그레이드는 API·add-on·노드·스토리지 드라이버 호환성을 함께 검토합니다.
아래 AI 블록은 연결 도구가 내용을 읽지 못해 그대로 보존했습니다.
StatefulSet은 쿠버네티스(Kubernetes)에서 상태를 유지해야 하는 애플리케이션을 관리하기 위한 워크로드 API 객체입니다.
| 특성 | StatefulSet | Deployment |
|---|---|---|
| Pod 식별자 | 고유하고 영구적 (pod-0, pod-1) | 임의 생성 |
| 영구 스토리지 | PVC 템플릿 지원 | 별도 구성 필요 |
| 배포 순서 | 순차적 | 병렬 |
| 스케일링 | 순차적 | 병렬 |
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: web
spec:
selector:
matchLabels:
app: nginx
serviceName: "nginx"
replicas: 3
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.14.2
ports:
- containerPort: 80
name: web
volumeMounts:
- name: www
mountPath: /usr/share/nginx/html
volumeClaimTemplates:
- metadata:
name: www
spec:
accessModes: [ "ReadWriteOnce" ]
resources:
requests:
storage: 1Gi
스토리지를 사용하는 경우 PersistentVolume Provisioner 구성 필요
삭제 시 PVC는 자동으로 삭제되지 않음 (데이터 보호)
Pod 이름과 호스트 이름을 동일하게 만들기 위해 Headless Service 필요