먼저 대상 확인

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

장애 확인 순서

  1. context와 namespace가 맞는지 확인
  2. describe로 스케줄링·probe·볼륨 오류 확인
  3. logs와 이전 컨테이너 로그 확인
  4. requests·limits·종료 코드·최근 배포 비교
kubectl describe pod <POD> -n <NAMESPACE>
kubectl logs <POD> -n <NAMESPACE> --tail=100
kubectl logs <POD> -n <NAMESPACE> --previous --tail=100

StatefulSet

안정적인 Pod 식별자와 지속 스토리지가 필요한 워크로드에 사용합니다. Headless Service, volumeClaimTemplates, StorageClass, 복구 절차를 함께 설계합니다. StatefulSet 자체가 데이터베이스 복제·백업을 자동 제공하지 않습니다.

PVC 삭제 정책과 PV reclaim policy를 확인한 뒤 삭제 작업을 계획합니다.

운영 보강 항목

probe, 리소스 요청·제한, PDB, 배포 전략, 로그·메트릭, 백업 복구를 워크로드별로 문서화합니다. EKS 버전 업그레이드는 API·add-on·노드·스토리지 드라이버 호환성을 함께 검토합니다.

연결 문서

k9s · Kubernetes 탐색

공식 자료

StatefulSets

기존 Notion 블록

아래 AI 블록은 연결 도구가 내용을 읽지 못해 그대로 보존했습니다.

Statefulsets

StatefulSet은 쿠버네티스(Kubernetes)에서 상태를 유지해야 하는 애플리케이션을 관리하기 위한 워크로드 API 객체입니다.

주요 특징

StatefulSet vs Deployment

특성 StatefulSet Deployment
Pod 식별자 고유하고 영구적 (pod-0, pod-1) 임의 생성
영구 스토리지 PVC 템플릿 지원 별도 구성 필요
배포 순서 순차적 병렬
스케일링 순차적 병렬

사용 사례

기본 YAML 예제

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

제한 사항

Powered by Fruition