#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>
, и как только вы удалите пространство имен, оно удалит весь модуль, службу развертывания и т.д. Из этого пространства имен