Принудительное удаление зависших подов в Kubernetes

Thank you for reading this post, don't forget to subscribe! 
Есть мно­го при­чин, по кото­рым вы може­те обна­ру­жить, что неко­то­рые поды нахо­дят­ся в состо­я­нии Evicted и Terminated.
В слу­чае eviction это часто про­ис­хо­дит в резуль­та­те нехват­ки ресур­сов на рабо­чих нодах или ошиб­ки приложения.
Terminated может быть резуль­та­том умень­ше­ния мас­шта­ба при­ло­же­ния или раз­вер­ты­ва­ния новой вер­сии при­ло­же­ния, после кото­рой пре­кра­ща­ет­ся рабо­та ста­рых подов.
Служ­ба kubelet, кото­рая рабо­та­ет на каж­дом узле кла­сте­ра, отве­ча­ет за состо­я­ние eviction подов.
Вы може­те полу­чить спи­сок подов в про­стран­стве имен, застряв­ших в состо­я­нии Evicted и Terminated, выпол­нив сле­ду­ю­щую команду:

Как удалить поды в Kubernetes

Вы може­те уда­лить эти поды раз­ны­ми способами.

Использование собственных команд kubectl и Bash

Это коман­ды bash с филь­тра­ци­ей, кото­рые вы може­те запу­стить для при­ну­ди­тель­но­го уда­ле­ния подов в про­стран­стве имен, кото­рые застря­ли в завер­шен­ном состоянии.

Под­твер­ди­те, есть ли еще кон­тей­не­ры в этом состоянии.

Уда­ле­ние всех исклю­чен­ных и завер­шен­ных моду­лей из всех про­странств имен:

Уда­ли­те все кон­тей­не­ры в состо­я­нии ImagePullBackOff из всех про­странств имен — Бонус:

Использование фильтров kubectl и jq

Вы так­же може­те отфиль­тро­вать вывод коман­ды kubectl и пере­на­пра­вить в jq для полу­че­ния опре­де­лен­ных столбцов.

Сна­ча­ла уста­но­ви­те коман­ду jq:

Затем уда­ли­те застряв­шие поды с помо­щью команды: