종료 상태에서 멈춘 Kubernetes 네임스페이스를 삭제하는 방법
kubectl delete my-namespace
삭제 요청을 수락한 후 명령이 무기한 중단되며
Terminating
에 앉아 있는 것을 볼 수 있습니다.$ kubectl get ns/my-namespace
NAME STATUS AGE
testing Terminating 113m
이는 사양의 Finalizer, 삭제 중에 충족해야 하는 특정 조건 때문일 수 있습니다. 네임스페이스의 종료자를 볼 수 있습니다.
...
"spec": {
"finalizers": [
"kubernetes"
]
}
...
이것은 다른 조건이 없는 표준 네임스페이스가 그렇지 않은 경우의 모습이므로 중단된 경우 이 방법일 가능성이 높습니다.
kubectl edit ns/my-namespace
를 사용하여 리소스를 수정하고 종료자를 빈 배열로 바꿀 수 있습니다....
"spec": {
"finalizers": [
]
}
...
또는 Kube API를 사용하여 사양을 업데이트하여 리소스를 덤프하여 성공하지 못한 경우 수동으로 완료할 수 있도록 합니다.
kubectl get ns/my-namespace -o json > my-namespace.json
종료자를 제거하도록 편집
my-namespace.json
한 다음 API에 요청PUT
을 수행합니다.kubectl replace --raw "/api/v1/namespaces/my-namespace/finalize" -f ./my-namespace.json
또는 HTTP 클라이언트를 사용하여 동일한 json 덤프를 사용하여 요청을 발행합니다(
kubectl proxy
을 통해 노출하지 않는 경우 일반적으로 인증이 필요함).curl -k -H "Content-Type: application/json" -X PUT --data-binary @my-namespace.json "https://<Kube API Endpoint>/api/v1/namespaces/my-namespace/finalize"
성공적인 응답을 받으면 네임스페이스가 삭제되었음을 확인할 수 있습니다.
kubectl get ns/my-namespace
리소스를 반환하지 않아야 합니다.
Reference
이 문제에 관하여(종료 상태에서 멈춘 Kubernetes 네임스페이스를 삭제하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/jmarhee/how-to-delete-a-kubernetes-namespace-stuck-at-terminating-status-53o5텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)