0

stdout ログが Google Logs Viewer に表示されない、または を使用している場合kubectl logs <pod>。クラスタでは Cloud Logging が有効になっており、各ノードで fluentd コンテナが実行されています。

Python コードの例:

logger = logging.getLogger()
logger.setLevel(logging.INFO)
handler = logging.StreamHandler(sys.stdout)
handler.setLevel(logging.INFO)
logger.addHandler(handler)
logger.info("test log")

ドキュメントの「counter-pod」の例は私のクラスターで機能するため、fluentd コンテナーは stdout を取得して Logs Viewer に送信しています。

私が試すべきことについて何か提案はありますか?前もって感謝します。

4

2 に答える 2

5

ログは間違いなく stdout に送られますが、実行時に表示されないだけkubectl logs <pod_name>です。また、Google Logs Viewer にも表示されません。

これは、stdout に送信されるログは、Docker コンテナーのエントリ ポイントであるプロセスからのものである場合にのみキャプチャされるためです。シェルまたは cron ジョブを介して実行されたものは表示されません。

私の場合、スクリプトを呼び出す cron ジョブがありました。コンテナのエントリ ポイントとしてスクリプトを実行すると、ログが正常に表示されました。

于 2016-06-21T23:32:49.343 に答える
0

を実行してもログが表示されない場合、kubectl logs podアプリケーションからのログが stdout または stderr に出力されないことが問題であることはほぼ確実であるため、その点に注意する必要があります。

アプリケーションをローカルで使用するとどうなりますdocker runか? docker logsその後、期待するログが表示されますか? 少なくとも、それを修正するためのさまざまなアプローチを試すための反復サイクルが高速化されるはずです。

于 2016-06-21T02:35:43.120 に答える