Стерен, большое спасибо за ваш ответ!
Позвольте мне поделиться некоторыми подробностями об этой проблеме
Недавно Stackdriver по умолчанию сделал исключение для быстрого приема популярных языков в GKE. Он будет включен в следующем выпуске GKE, а исключения, выгруженные в stdout
/stderr
контейнера, будут отображаться в отчетах об ошибках.
Есть ли способ добраться до этого fluentd с помощью библиотеки fluent-logger-node?
Агент ведения журнала в GCE и в GKE работает по-разному. В GCE вы устанавливаете агент непосредственно на виртуальную машину и можете получить к нему доступ с той же виртуальной машины, используя localhost
. Однако GKE работает с модулями, ничего не устанавливается непосредственно на узел. У каждого модуля есть свой сетевой стек, поэтому, когда вы вызываете localhost
из контейнера, вы обращаетесь не к виртуальной машине, а к этому конкретному модулю.
Это правда, что Fluent развертывается на каждом узле, если вы включаете ведение журнала Stackdriver. Однако он работает внутри контейнера, и из-за этого вы в настоящее время не можете легко получить к нему доступ из своего приложения.
В будущем команды Stackdriver и GKE будут работать над предоставлением доступного порта fluentd для всего узла из коробки, но сейчас, к сожалению, вам придется делать это самостоятельно.
Как уже упоминалось, может быть проще развернуть другой агент Fluent в качестве контейнера sidecar в модуле приложения и настроить его вручную, вот пример, как это сделать с наименьшими усилиями. В этом случае вы сможете получить доступ к агенту, используя localhost
, как если бы он был на GCE.
person
Mik Vyatskov
schedule
26.01.2017