Сохраняются ли логи в Google Kubernetes? - PullRequest
0 голосов
/ 03 ноября 2018

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

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

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

1 Ответ

0 голосов
/ 03 ноября 2018

Приложения запускаются в контейнерах, как правило, в Docker, и журналы stdout / stderr сохраняются в течение всего времени существования контейнера в графическом каталоге (обычно /var/lib/docker)

Вы можете просмотреть журналы с помощью:

$ kubectl logs <pod-name> -c <container-in-pod>

Или:

$ ssh <node>
$ docker logs <container>

Если вы хотите узнать больше, где они хранятся, вы можете перейти в каталог /var/lib/docker и просмотреть журналы, хранящиеся в формате JSON:

$ cd /var/lib/docker/containers
$ find . | grep json.log
./3454a0681100986248fd81856fadfe7cd95a1a6467eba32adb33da74c2c5443d/3454a0681100986248fd81856fadfe7cd95a1a6467eba32adb33da74c2c5443d-json.log
./80a87a9529a55f8d3fb9b814f0158dc91686704222e252b256455bcde48f56a5/80a87a9529a55f8d3fb9b814f0158dc91686704222e252b256455bcde48f56a5-json.log
...

Если вы хотите выполнить сборку мусора в контейнерах «Exited», вы можете прочитать больше об этом здесь .

Другим способом является создание задания cron, которое периодически запускается на ваших узлах, которое делает это:

$ docker system prune -a --force
...