[kubernetes] 포드가 종료 상태로 멈춤

ReplicationController12 개의 포드로 a를 삭제하려고했는데 일부 포드가 Terminating상태에 고정되어 있음을 알 수 있습니다.

My Kubernetes 클러스터는 Ubuntu 가상 머신에 설치된 하나의 제어 평면 노드와 3 개의 작업자 노드로 구성됩니다.

이 문제의 원인은 무엇입니까?

NAME        READY     STATUS        RESTARTS   AGE
pod-186o2   1/1       Terminating   0          2h
pod-4b6qc   1/1       Terminating   0          2h
pod-8xl86   1/1       Terminating   0          1h
pod-d6htc   1/1       Terminating   0          1h
pod-vlzov   1/1       Terminating   0          1h



답변

다음 명령을 사용하여 POD를 강제로 삭제할 수 있습니다.

kubectl delete pod <PODNAME> --grace-period=0 --force --namespace <NAMESPACE>


답변

포드를 강제로 삭제합니다.

kubectl delete pod --grace-period=0 --force --namespace <NAMESPACE> <PODNAME>

--force플래그는 필수입니다.


답변

리소스 (포드, 배포, ds 등) yaml에서 finalizers 블록을 삭제합니다.

"finalizers": [
  "foregroundDeletion"
]


답변

실용 답변-다음을 실행하여 언제든지 종료 포드를 삭제할 수 있습니다.

kubectl delete pod NAME --grace-period=0

과거 답변-버전 1.1에는 노드가 클러스터에서 깨끗하게 제거되지 않은 경우 포드가 종료 상태에서 꼬이는 문제가있었습니다.


답변

이 명령이 더 간단하다는 것을 알았습니다.

for p in $(kubectl get pods | grep Terminating | awk '{print $1}'); do kubectl delete pod $p --grace-period=0 --force;done

기본 네임 스페이스에서 종료 상태의 모든 포드를 삭제합니다.


답변

제 경우에는 --force옵션이 제대로 작동하지 않았습니다. 나는 여전히 포드를 볼 수 있었다! 종료 / 알 수 없음 모드에서 멈췄습니다. 그래서 실행 후

kubectl delete pods <pod> -n redis --grace-period=0 --force

나는 달렸다

kubectl patch pod <pod> -p '{"metadata":{"finalizers":null}}'


답변

경우 --grace-period=0다음 작동하지 않는 당신은 할 수 있습니다 :

kubectl delete pods <pod> --grace-period=0 --force