私はまだ自分でマージ/分割のアプローチを探していますが、Kubernetesのドキュメントで推奨されているこのアプローチは健全な解決策のようです:個別のログごとにサイドカーコンテナを使用してください。
「サイドカー」は、何らかの方法で作業するために別のドッカーコンテナと一緒に使用するドッカーコンテナです。この場合、3つのログのそれぞれに対して、ログをスキャンまたはテールし、stdoutに出力する個別のコンテナーがあります。
このようにして、各log-sidecar-containersには、独自のstdoutから独自のdocker-logがあります。このように分離することで、標準のdocker(およびkubernetesなど)プラクティスを使用して分離または集約できます。Kubernetesページの内容は次のとおりです。
このアプローチにより、アプリケーションのさまざまな部分からいくつかのログストリームを分離することができます。その一部は、stdoutまたはstderrへの書き込みのサポートを欠く可能性があります。ログのリダイレクトの背後にあるロジックは最小限であるため、それほど大きなオーバーヘッドにはなりません。さらに、stdoutとstderrはkubeletによって処理されるため、kubectlログなどの組み込みツールを使用できます。
「個別のログストリーム」は、Dockerがさまざまなコンテナからのログに適用する組み込みのタグ付けに由来します。これについては、Dockerのドキュメントをご覧ください。
タグログオプションは、コンテナのログメッセージを識別するタグのフォーマット方法を指定します。デフォルトでは、システムはコンテナIDの最初の12文字を使用します。この動作をオーバーライドするには、タグオプションを指定します