k8s - force delete namespace

Thank you for reading this post, don't forget to subscribe!

быва­ет что под­вис­ло уда­ле­ние namespace в ста­ту­се terminating

вот такой describe

про­ве­ря­ем какие ресур­сы есть в этом ns

что­бы уда­лить все ресур­сы из namespace исполь­зу­ем скриптец:

мы сна­ча­ла опре­де­ля­ем namespace а уже потом про­хо­дим­ся по всем ресур­сам и уда­ля­ем их

 

рас­смот­рим ещё вариант

NAMESPACE="openunison"

уда­ле­ние через force так же не помогло

kubectl delete ns openunison --grace-period=0 --force

 

несмот­ря на force delete, namespace openunison всё ещё висит в ста­ту­се Terminating.

При­чи­на в том, что API-сер­вер Kubernetes уже счи­та­ет, что namespace уда­лён, но в etcd запись о нём не исчез­ла (она "залип­ла").

Это быва­ет когда:

  • Было мно­го force deletion

  • Либо kube-apiserver/etcd багу­ет на уда­ле­нии ста­рых namespaces (осо­бен­но в Rancher кластерах)

что в таком слу­чае мож­но сделать,

запус­ка­ем

kubectl proxy &

и выпол­ня­ем жёст­кое уда­ле­ние через etcd

вывод будет при­мер­но такой: