Как заставить удалить стручки kubernetes? - PullRequest
0 голосов
/ 14 мая 2018

У меня есть следующие модули:

NAME                                                 READY     STATUS        RESTARTS   AGE
xxx-myactivities-79f49cdfb4-nwg22                      1/1       Terminating   0          10h
xxx-mysearch-55864b5c59-6bnwl                          1/1       Terminating   0          1d
xxx-mysearch-55864b5c59-rpn48                          1/1       Terminating   0          13h
xxx-mysearch-6ff9bbb7cb-9qgbb                          1/1       Terminating   0          3d

Я выполняю следующий код для принудительного удаления этих модулей:

#
# Clean up dying pods
#
pods=$( kubectl get pods | grep -v Running | tail -n +2 | awk -F " " '{print $1}' )
for pod in $pods;
do
    kubectl delete pod $pod --force
done

Вот вывод:

pod "xxx-myactivities-79f49cdfb4-nwg22" deleted
pod "xxx-mysearch-55864b5c59-6bnwl" deleted
pod "xxx-mysearch-55864b5c59-rpn48" deleted
pod "xxx-mysearch-6ff9bbb7cb-9qgbb" deleted

После очистки эти капсулы все еще остаются вокруг.

NAME                                                 READY     STATUS        RESTARTS   AGE
xxx-myactivities-79f49cdfb4-nwg22                      1/1       Terminating   0          10h
xxx-mysearch-55864b5c59-6bnwl                          1/1       Terminating   0          1d
xxx-mysearch-55864b5c59-rpn48                          1/1       Terminating   0          13h
xxx-mysearch-6ff9bbb7cb-9qgbb                          1/1       Terminating   0          3d

Как мне очистить эти капсулы?

Ответы [ 4 ]

0 голосов
/ 20 июня 2019
kubectl get pod --all-namespaces | awk '{if ($4 != "Running") system ("kubectl -n " $1 " delete pods " $2  " --grace-period=0 " " --force ")}'

вы можете использовать эту команду

0 голосов
/ 26 января 2019

Для очистки модулей вам нужно удалить их пространство имен развертываний .

Сначала обнаружите, что развертывания существовали:

$ kubectl get deployments --all-namespaces
NAME                               READY     STATUS        RESTARTS   AGE
chetabahana-web-584b95d576-62ccj   1/1       Running       0          20m
tutorial-web-56fbccc56b-wbwjq      1/1       Running       0          1m

Удалить развертывание <NAME>-xxxx следующим образом:

$ kubectl delete deployment <NAME>

Например, чтобы удалить tutorial-web-56fbccc56b-wbwjq, запустите:

$ kubectl delete deployment tutorial

Тогда все соответствующие блоки tutorial-xxxx завершатся сами собой.

NAME                               READY     STATUS        RESTARTS   AGE
chetabahana-web-584b95d576-62ccj   1/1       Running       0          20m
tutorial-web-56fbccc56b-wbwjq      0/1       Terminating   0          1m
0 голосов
/ 09 марта 2019

Чтобы удалить все модули в состоянии завершения одной командой, выполните:

for p in $(kubectl get pods | grep Terminating | awk '{print $1}'); do kubectl delete pod $p --grace-period=0 --force;done
0 голосов
/ 14 мая 2018

У вас есть следующие альтернативы:

kubectl delete pod xxx --now 

Или

SSH в узел, на котором был запланирован застрявший модуль Запуск docker ps | grep {pod name} для получения идентификатора контейнера Docker Бег docker rm -f {container id}

Или

kubectl delete pod NAME --grace-period=0 --force
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...