DevOps
graceful shutdown
Vince_rf
2025. 1. 30. 09:30
Kubernetes에서 파드를 삭제할 때 기본적으로 graceful termination(우아한 종료)이 적용됩니다. 기본적으로 kubectl delete pod 명령어를 실행하면 **30초(default) 동안 종료 신호(SIGTERM)**를 보내고, 이 시간이 지나면 강제 종료(SIGKILL)됩니다.
만약 graceful termination을 없애고 즉시 삭제(force delete) 하고 싶다면, --force --grace-period=0 옵션을 사용하면 됩니다.
즉시 삭제 명령어
kubectl delete pod <pod-name> --grace-period=0 --force
설명
- --grace-period=0
- 기본적으로 kubectl delete pod는 terminationGracePeriodSeconds에 설정된 시간(기본 30초)만큼 기다립니다.
- 이를 0으로 설정하면 기다리지 않고 즉시 삭제됩니다.
- --force
- --grace-period=0과 함께 사용해야 합니다.
- 강제 삭제를 의미하며, API 서버에서 파드가 곧바로 삭제됩니다.
예제
kubectl delete pod my-pod --grace-period=0 --force
주의 사항
- --force 옵션을 사용하면 파드가 강제 삭제되므로 정리 작업이 수행되지 않을 수 있습니다.
- 강제 삭제된 파드는 이전 노드에서 "Terminating" 상태로 남아 있을 수도 있으므로, 필요하면 다음 명령어로 확인하세요:
bash복사편집kubectl get pods -A | grep Terminating
- 만약 파드가 여전히 남아 있다면, API 서버에서 직접 제거할 수도 있습니다:
kubectl patch pod <pod-name> -p '{"metadata":{"finalizers":null}}'