Kubernetes Terminated 상태의 pod 삭제(Pod들이 Terminated 상태로 멈춰있을 때)
- 환경 : Ubuntu 22.04.1 LTS
한동안 구축해놓은 kubernetes 생태계를 모른척하고 살았는데, pod들이 Terminated 상태로 멈춰져 있었고 kubectl delete pod 명령을 통해 문제되는 pod를 삭제하려고 했지만 멈춘 상태로 잘 되지 않았음
# pod 목록 출력
kubectl get pods
무슨 문제인지 log출력을 해보았다.
kubectl logs [pod명]
Error from server : 503 Service Unavailable 에러가 발생하였음
503 Service Unavailable (서비스를 사용할 수 없음)
- 해당 에러는 서버를 일시적으로 사용할 수 없고 클라이언트 요청을 처리할 수 없음을 나타내는 HTTP 상태 코드로써, 웹 서버에서 이는 서버가 과부하 상태이거나 유지보수 중임을 의미
이런 경우 멈춘 pod를 강제 삭제하는 방법은 아래와 같다.
Pod 강제 삭제
kubectl delete pod --grace-period=0 --force --namespace <NAMESPACE> <PODNAME>
경고메세지와 함께 해당 pod("mynginx")가 강제 종료된 것을 확인할 수 있다. 그러나 아직 두개의 Terminating 상태의 pod들이 남아있는 것을 확인할 수 있다.
기본 네임스페이스에서 Terminating 상태의 모든 Pod 삭제
- 만약 Terminating 상태의 pod가 1개 이상인 경우 모두 삭제하고 싶은 경우가 있다. for문을 통해 Terminating 상태의 모든 pod들을 지워보자.
for p in $(kubectl get pods | grep Terminating | awk '{print $1}'); do kubectl delete pod $p --grace-period=0 --force;done
Terminating 상태의 모든 pod들이 강제 종료된 것을 확인할 수 있다.
'컨테이너 > Kubernetes' 카테고리의 다른 글
Kubernetes helm stable repository install 쉬운 방법! (0) | 2022.11.24 |
---|---|
Error: looks like "https://kubernetes-charts.storage.googleapis.com" is not a valid chart repository or cannot be reached 에러 해결 (0) | 2022.11.24 |
Kubernetes(k3s) Pod / Service / Namespace 관련 기본 명령어 학습 (0) | 2022.11.02 |
k3s에 'hello world' HTTP 배포(Traefik Ingress Controller 사용) (0) | 2022.10.31 |
k3s 워커노드 설치하고 k3s 대시보드 확인하기 (0) | 2022.10.31 |