fluentd-sidecar-gcp と Kubernetes Volumes で Cloud Logging ログ転送
こんにちは @jedipunkz です。 今回は Kubernetes を使った構成で Google-Fluentd をどのコンテナに載せるか?ってことを考えてみたので書きたいと思います。 Kubernetes は Docker を利用したソフトウェアなので Docker と同じく “1コンテナ, 1プロセス” というポリシがあります。つまり、コンテナ上のプロセスが停止したら Kubernetes がそれを検知してコンテナを起動しなおしてくれます。ですが、複数プロセスを1コンテナに稼働させると、それが出来ません。そうは言っても中には複数のプロセスを稼働させたい場面があります。その場面として考えられる具体的な例として HTTPD サーバのログを Google-Fluentd を使って GCP Cloud Logging に転送したい場合があります。 今回は上記の例を fluentd-sidecar-gcp と kubernetes volumes を使って解決する方法を記したいと思います。 構成のシナリオ シナリオとしては下記のとおりです。 マルチコンテナポッドを扱う 1つの Kubernetes Volumes を複数コンテナで共有する HTTPD ログをその Volume に出力 隣接する Google-Fluentd コンテナでその Volume に出力されたログを読み込みログ転送 fluentd-sidecar-gcp とは 次に説明するのは fluentd-sidecar-gcp の概略です。これは Kubernetes が contrib で扱っているコンテナです。下記の URL にあります。 https://github.com/kubernetes/contrib/tree/master/logging/fluentd-sidecar-gcp Google-Fluentd を稼働させる Dockerfile が用意されているのですが、下記の記述を確認するとこのコンテナに環境変数 $FILES_TO_COLLECT を渡すと Google Fluentd でログを取得してくれることが分かります。 ...