Создание экземпляров gcloud compute с контейнером не ведется в stackdriver

У меня есть контейнер, который обычно ведет журнал через стандартные драйверы Docker. Теперь я запустил этот контейнер на GCP с помощью команды gcloud compute instances create-with-container и хочу просмотреть журналы в Stackdriver. Прямо сейчас они не появляются.

Насколько я могу судить, объединяя советы здесь и здесь, мне нужно запустить экземпляр хоста, установить драйвер ведения журнала по умолчанию на GCP, отредактируйте docker daemon.json, а затем перезапустите экземпляр хоста.

Действительно ли это самый простой способ заставить эти контейнеры регистрироваться в обычном стандартном облачном решении для ведения журнала Google? Я думаю, что gcloud compute instances create-with-container должен делать это по умолчанию, и что я что-то упускаю.


person dvasdekis    schedule 05.12.2019    source источник
comment
Вот рецепт crica 2017 - cloud.google.com/community/tutorials/docker- gcplogs-driver   -  person Kolban    schedule 05.12.2019
comment
@Kolban - Эта статья не будет работать для ОС GCE Container, так как вы можете запустить только один контейнер с COS. Решение состоит в том, чтобы установить Stackdriver на экземпляр. Это можно сделать с помощью сценария запуска или один раз вручную.   -  person John Hanley    schedule 05.12.2019
comment
Я имел в виду один контейнер автоматически с Compute Engine.   -  person John Hanley    schedule 05.12.2019
comment
@JohnHanley Вы знаете, можно ли установить агент stackdriver прямо в контейнер? Может быть, это не лучший способ ограничить рабочую среду процессом рабочей нагрузки?   -  person guillaume blaquiere    schedule 05.12.2019
comment
Я не думаю, что ты сможешь. Stackdriver работает как служба. В примечаниях к выпуску для Container OS упоминаются исправления ошибок для Stackdriver. Это означает, что у вашей проблемы должно быть решение.   -  person John Hanley    schedule 05.12.2019
comment
Все мои исследования указывают на это решение. Просто установите Stackdriver Logging на экземпляр GCE и перезагрузитесь.   -  person John Hanley    schedule 05.12.2019
comment
Ведение журнала Stackdriver включено, но регистрируются только журналы экземпляра хоста, но не журналы контейнера. Хитрость заключается в том, чтобы заставить встроенный экземпляр Docker регистрироваться в stackdriver по умолчанию после его загрузки. Похоже, нужно написать сценарий запуска.   -  person dvasdekis    schedule 05.12.2019


Ответы (3)


Хорошо, оказывается, регистратор Stackdriver по умолчанию работает нормально при использовании gcloud compute instances create-with-container, поэтому ваши журналы должны появляться автоматически.

Они не для меня, потому что кажется, что у экземпляра f1-micro не хватает ворчания, чтобы развернуть контейнер, который выполняет даже небольшой объем работы поверх накладных расходов Docker - переключение на g1-small исправило это.

person dvasdekis    schedule 05.12.2019

Ваша виртуальная машина работает на Compute Engine, поэтому она не содержит службы ведения журналов Stackdriver, поскольку по умолчанию она включена только в " Виртуальные машины работают в Google Kubernetes Engine или App Engine ".

Я полностью согласен с @JohnHanley. Вам необходимо установить службу Stackdriver Logging на свой экземпляр вручную в соответствии с рекомендациями, которые здесь . Сначала я бы порекомендовал вам проверить список поддерживаемых виртуальных машин на всякий случай. эта служба ведения журнала будет работать на вашем экземпляре должным образом, а затем будет следовать остальным инструкциям. Если после установки служб ведения журнала у вас возникнут проблемы, выполните устранение неполадок. Пожалуйста, предоставьте дополнительную информацию о ваших действиях, если вы не решите проблему таким образом.

ОБНОВЛЕНИЕ, чтобы прояснить мой ответ. По умолчанию Stackdriver может собирать только ограниченные журналы из экземпляра (list < / а>). Итак, если вы хотите получить больше журналов от вашей виртуальной машины, потребуется дополнительная настройка .

person Serhii Rohoza    schedule 05.12.2019
comment
Ведение журнала Stackdriver включено на виртуальные машины, на которых работает Compute Engine. Однако он регистрирует журналы экземпляра хоста, а не журналы контейнера докеров. Я считаю, что мне нужно обновить файл драйвера докеров хоста daemon.json для использования stackdriver через сценарий запуска. Громоздко! - person dvasdekis; 05.12.2019