Предотвращение регистрации от стручков Kubernetes, останавливаемых - PullRequest
0 голосов
/ 24 августа 2018

Рассмотрите обновленное развертывание Kubernetes, когда старые модули останавливаются, а новые запускаются. У нас есть модули с запущенным tomcat, подключенные к базе данных MySQL.

Как только кот получает команду остановки, он начинает останавливать приложение. Однако все еще выполняются задачи, и потеря подключения к базе данных приводит к большому количеству исключений. Это нормально, так как приложение больше ничего не делает. Моя проблема в том, что это «спамит» наши журналы с фатальными ошибками, и трудно определить, какие исключения актуальны, а какие просто вызваны остановкой приложения.

Одним из таких исключений является:

java.lang.IllegalStateException: незаконный доступ: это веб-приложение Экземпляр уже остановлен. Не мог загрузить [Sun.reflect.NativeMethodAccessorImpl]. Следующая трассировка стека брошен для целей отладки, а также для попытки прекратить поток, вызвавший несанкционированный доступ.

Есть ли способ предотвратить регистрацию таких исключений? Можно ли остановить запись в момент отправки сигнала остановки?

Ответы [ 2 ]

0 голосов
/ 26 августа 2018

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

apiVersion: v1
kind: Pod
metadata:
  name: lifecycle-demo
spec:
  containers:
  - name: lifecycle-demo-container
    image: nginx
    lifecycle:
      preStop:
        exec:
          command: [" your custom command to delete log entries"]
0 голосов
/ 24 августа 2018

Вы должны управлять своим журналом с помощью что-то вроде fluentd, а затем использовать исключить фильтр для журналов исключений.Kubernetes или контейнерный движок не могут отфильтровать то, что отображается на stdout.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...