🚨 kubectl delete --force --grace-period=0 완전 정리
2026. 2. 22. 08:09ㆍk8s
Pod가 Terminating 상태에서 멈췄을 때 자주 사용하는 명령어:
kubectl delete pod busybox --force --grace-period=0
이 옵션의 의미를 정확히 이해해보자.
🔍 기본 Pod 삭제 동작
Pod를 일반적으로 삭제하면 다음 순서로 진행된다.
delete 요청
↓
SIGTERM 전달
↓
terminationGracePeriodSeconds 만큼 대기 (기본 30초)
↓
종료 안 되면 SIGKILL
즉, Kubernetes는 기본적으로 Graceful Shutdown(정상 종료)를 시도한다.
1️⃣ --force의 의미
kubectl delete pod busybox --force
- API 서버에 강제 삭제 요청
- 하지만 grace period는 그대로 유지
- 기본값 30초 대기 가능
즉:
강하게 삭제 요청
↓
종료 대기 시간은 유지
많은 사람들이 --force만 쓰고 “왜 바로 안 사라지지?”라고 혼란을 겪는다.
👉 이유는 종료 대기 시간이 그대로 적용되기 때문이다.
2️⃣ --grace-period=0의 의미
kubectl delete pod busybox --grace-period=0
- 종료 대기 시간을 0초로 설정
- 대기 없이 즉시 종료 시도
대기 없음
↓
즉시 종료
3️⃣ --force --grace-period=0 함께 사용
kubectl delete pod busybox --force --grace-period=0
- 강제 삭제 요청
- 종료 대기 시간 0초
- 사실상 즉시 제거
강제 요청
↓
대기 없음
↓
즉시 제거
👉 Terminating 상태에서 멈춘 Pod를 제거할 때 사용한다.
📊 비교 정리
| 명령어 | Graceful 종료 | 즉시 제거 | 사용 상황 |
|---|---|---|---|
| 기본 delete | O | X | 일반 삭제 |
| --force | O | X | stuck 상태 완화 |
| --grace-period=0 | X | O | 빠른 종료 |
| --force --grace-period=0 | X | O | 강제 즉시 삭제 |
⚠️ 주의사항 (중요)
강제 삭제는 다음 위험이 있다:
- 애플리케이션 정상 종료 불가
- 데이터 손상 가능
- 로그 flush 안 됨
- DB/Stateful Pod에 위험
운영 환경에서는:
- 일반 삭제 시도
- 원인 분석
- 마지막 수단으로 force 사용
🏗️ 삭제 흐름 정리
기본 삭제 → SIGTERM → 대기 → 종료
강제 삭제 → 대기 없음 → 즉시 제거'k8s' 카테고리의 다른 글
| 🌐 Kubernetes Service Type 변경 방법 & 확인 방법 (0) | 2026.02.22 |
|---|---|
| 🌐 Kubernetes Service를 만들면 생성되는 Endpoint의 의미 (0) | 2026.02.22 |
| 🩺 Kubernetes livenessProbe & readinessProbe 정리 (0) | 2026.02.22 |
| 📦 Kubernetes LimitRange 완전 정리 (0) | 2026.02.22 |
| 🔐 Kubernetes securityContext 완전 정리 (0) | 2026.02.22 |