ReplicationController
12 개의 포드로 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