По сути, это проблемы администрирования при сливе узлов, настроенных с помощью PDB (бюджет прерывания работы подсистемы)
Это связано с тем, что выселения вынуждены уважать указанную вами PDB
.два варианта:
Либо заставить руку:
kubectl drain foo --force --grace-period=0
Вы можете проверить другие варианты из документа -> https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#drain
или использовать API для выселения:
{
"apiVersion": "policy/v1beta1",
"kind": "Eviction",
"metadata": {
"name": "quux",
"namespace": "default"
}
}
Во всяком случае, API-интерфейс стока или вытеснения пытается удалить на модуле, чтобы они могли быть запланированы в другом месте, прежде чем полностью опустошить узел
Как указано в документации:
APIможет ответить одним из трех способов:
- Если выселение разрешено, то модуль удаляется так же, как если бы вы отправили запрос DELETE на URL-адрес модуля, и вы получили обратно 200 OK.
- Если текущее положение дел не позволит выселить по правилам, изложенным в бюджете, вы получите 429 Too Many Requests.Обычно это используется для общего ограничения скорости любых запросов
- Если есть какая-то неверная конфигурация, например, несколько бюджетов, указывающих на один модуль, вы получите 500 Internal Server Error.
Для данного запроса на выселение существует два случая:
Нет бюджета, соответствующего этому модулю.В этом случае сервер всегда возвращает 200 OK.
Существует как минимум один бюджет.В этом случае может подойти любой из трех приведенных выше ответов.
Если он застрянет, возможно, вам придется сделать это вручную
Вы можете прочитать меня здесь или здесь