Назад | Перейти на главную страницу

Некрасиво завершающие стручки

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

По практическим соображениям мне нужно провести тестирование в меньшей среде, в которой нет отдельного узла для каждого модуля, поэтому я не могу тестировать, выключая машины, но вместо этого мне нужно убить процессы. Я могу убить их docker kill, но для этого требуется войти в узел и найти идентификатор докера контейнера. Есть ли способ добиться подобного эффекта с помощью exec kill, но отправка SIGKILL обрабатывать ID 1 не допускается.

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

Могу ли я принудительно отключить поды, не давая им возможности очистить через API kubernetes /kubectl?

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

kubectl delete pods <pod> --grace-period=0 --force

Ключ --grace-period=<seconds> Это время, которое Kubernetes ждет для корректного завершения работы Pod'а. Если он равен 0, SIGKILL будет немедленно отправлен любому процессу в модуле. Ключ --force необходимо указать для такой операции в версиях Kubernetes 1.5 и выше.

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