Kubectl удаляет, но игнорирует файлы с ошибкой

#jenkins #kubernetes #kubectl

#дженкинс #kubernetes #kubectl

Вопрос:

У меня есть список пространств имен, и я хочу их удалить, но некоторые из них выдают ошибку, и я хочу пропустить эти и продолжить другие удаления. Как я могу это сделать?

 kubectl delete services,deployments -n ${namespace} --all  --grace-period=10
  

Комментарии:

1. описанная вами проблема выглядит довольно странно. Невозможно понять, возникает ли у вас одна и та же ошибка (нет маршрута к хосту.) каждый раз или при удалении только выбранных пространств имен? Можете ли вы увеличить детализацию журналов и предоставлять ошибки, которые вы получаете (путем редактирования первоначального сообщения). Детализация вывода Kubectl и отладка

Ответ №1:

Вы можете попробовать использовать --ignore-not-found=true флаг в команде

 kubectl delete deployments --ignore-not-found=true -n ${namespace} --all  --grace-period=10
  

Комментарии:

1. в моем пространстве имен возникает ошибка, подобная этой: Не удается подключиться к серверу: наберите tcp …: getsockopt: нет маршрута к хосту. и мой jenkinsjob застрял там, после этого пространства имен он не будет продолжать удалять другие.

2. Вы хотите удалить пространство имен или развертывания? Потому что вы упоминаете пространство имен, поэтому я в замешательстве?

3. моя ошибка. В моей тестовой среде существует более одного пространства имен. На самом деле я удаляю развертывания и службы в пространствах имен, но в этом конкретном пространстве имен я получаю ошибку, и код в моем вопросе находится в цикле for.

4. кстати, когда я смотрю на kubectl get pods —all-namespaces, это пространство имен, похоже, не выполняется

5. сначала перечислите пространство имен с помощью kubectl get ns и удалите пространство имен, которое вы хотите удалить с помощью kubectl delete ns <yournaespacename> , и как только вы удалите пространство имен, оно удалит весь модуль, службу развертывания и т.д. Из этого пространства имен