Kubectl удалить модуль с именем развертывания

Я часто иногда отлаживаю модули с помощью kubectl delete pod, поэтому он обновляет образ контейнера. Но каждый раз, когда я должен искать полное название пода:

kubectl delete pod deployment_name-56fccbbfb8g4rj6

Как я могу просто удалить модуль, не зная хэша?

Вам не нужно ничего вручную удалять, чтобы обновить образ; просто измените тег image: в содержащей спецификации развертывания, и он автоматически заменит модули на новые.

David Maze 10.12.2020 03:22
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Kubernetes - это портативная, расширяемая платформа с открытым исходным кодом для управления контейнерными рабочими нагрузками и сервисами, которая...
3
1
2 106
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

это невозможно, но вы можете удалить их все сразу, используя kubectl здесь:

kubectl delete --all pods --namespace=foo

если вы хотите удалить один модуль, вы должны сделать это вручную. иначе попробуйте это решение.

Ответ принят как подходящий

Вы можете удалить модуль на основе меток. Например, если у вашего модуля есть ярлык app=alpine, вы можете удалить его следующим образом:

kubectl delete pod -l app=alpine

что делает -nxxx?

user1981275 11.12.2020 11:27

Это сокращение от --namespace your_namespace.

Rui 13.12.2020 03:45

В зависимости от вашей оболочки вы можете использовать автодополнение, чтобы система предлагала имя вашего модуля.

  • Bash-дополнение предоставляется многими менеджерами пакетов (см. здесь). Ты можно установить с помощью apt-get install bash-completion или yum install bash-completion и т. д.

  • Для Zsh это можно сгенерировать с помощью команды kubectl completion zsh. Использование скрипта завершения в вашей оболочке позволяет kubectl автодополнение.

    Чтобы сделать это во всех сеансах оболочки, добавьте в файл ~/.zshrc следующее:

    source <(kubectl completion zsh)
    
    

Другое дело, что вам не нужно уничтожать свой модуль, чтобы обновить образ. Вы можете просто использовать kubectl patch или kubectl set image.

Для получения дополнительной информации ознакомьтесь с документом Kubernetes об исправлении объектов API с помощью kubectl.

  • удалить pod'ы / nameapces

kubectl get pod --all-namespaces | grep -viE "compl|работает" | awk 'NR>1{print $2 " -n " ​​$1}' |при чтении строки;сделать kubectl удалить pod $line;готово

Другие вопросы по теме