Я использую самый простой докер из всех:
FROM ubuntu
COPY script.sh /script.sh
CMD /script.sh
Где все, что делает скрипт, это:
#!/bin/bash
function sigterm() {
echo "Got SIGTERM"
exit
}
trap sigterm SIGTERM
i=1
while true; do
echo "$(date +%H:%M:%S) | $((i++)) | $HOSTNAME"
sleep 1
done
Я запускаю этот контейнер в Minikube, , ноЯ не могу заставить его поймать SIGTERM из kubernetes.
Я пытался удалить модуль / развертывание или увеличить или уменьшить его.Ни в коем случае он не получил SIGTERM перед удалением.Он уважает terminationGracePeriodSeconds
, но, похоже, не запускает команду preStop
и не отправляет SIGTERM перед тем, как убить модуль.
Это из-за использования мини-куба?или я что-то не так делаю?
(развертывание не является частью службы, это просто развертывание) (SSH в модуль и вручную kill
- если оно работает как положено)