Получить журналы для убитого докера контейнера в Куберне - PullRequest
0 голосов
/ 21 февраля 2019

Упрощенная версия кода

trap 'rm /tmp/not_done; echo "trap command got executed"; sleep 10' SIGTERM

wait_sigterm() {

  touch /tmp/not_done
  while [ -f /tmp/not_done ]
  do
      sleep 60 &
      wait $!  
  done
}

wait_sigterm

Как я могу убедиться, что команда trap выполнена?

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

Я попытался получить журналы (kubectl -n namespace-name logs имя-контейнера имя-контейнера) в цикле while, чтобы я мог выбрать последние записанные журналыпока контейнер не будет жив.

Но эхо-сообщения не было.Я предполагаю, что журналы не пишутся, когда мы убиваем контейнер или что-то еще.Можно ли как-нибудь получить журналы убитого контейнера или проверить описанный выше сценарий?

1 Ответ

0 голосов
/ 21 февраля 2019

Подход 1

Если вы хотите проверить журналы ранее завершенного контейнера из pod_NAME.Вы можете использовать следующую команду с -p flag

kubectl logs POD_NAME -c CONTAINER_NAME -p

Вы можете получить дополнительную информацию, такую ​​как опции и флаги , с помощью следующей команды

kubectl logs --help

Подход 2

другой подход для определения сообщения о завершении находится в поле Status объекта Pod.

kubectl get pod $POD_NAME -o yaml

проверьте поле lastState из containerStatuses :

status:
  conditions:

  containerStatuses:
  - containerID: 
    image: registry.access.redhat.com/rhel7:latest
    imageID:
    lastState: {}

    state:
      running:

Подробнее см. чтение-а-терминации-сообщение

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