This is not the right way, especially in a production environment.
Today I got into the same problem. By removing the finalizer you’ll end up with leftovers in various states. You should actually find what is keeping the deletion from complete.
See https://github.com/kubernetes/kubernetes/issues/60807#issuecomment-524772920
(also, unfortunately, ‘kubetctl get all’ does not report all things, you need to use similar commands like in the link)
My case — deleting ‘cert-manager’ namespace. In the output of ‘kubectl get apiservice -o yaml’ I found APIService ‘v1beta1.admission.certmanager.k8s.io’ with status=False . This apiservice was part of cert-manager, which I just deleted. So, in 10 seconds after I ‘kubectl delete apiservice v1beta1.admission.certmanager.k8s.io’ , the namespace disappeared.
Hope that helps.