NetflixがeBPFフローログを正確に属性付ける方法
Netflixは、ネットワークの洞察を高めるために、大規模なTCPフロー ログをeBPFでキャプチャしています。しかし、フローIPアドレスをワークロードIDに正確に帰属させることは大きな課題でした。初期の帰属付けアプローチは、内部のIPアドレス追跡サービスであるSonarに依存していましたが、分散システムでの遅延や障害により誤った帰属付けが発生しました。誤った帰属付けにより、フロー データは意思決定に信頼できないものとなり、受信フローを15分間保持してから帰属付けするという回避策も問題を解決しませんでした。この問題を解決するために、Netflixは、新しい帰属付け方法を開発しました。この方法では、ローカルのIPアドレスをワークロードIDに帰属させるために、環境からローカルのワークロードIDを決定します。コンテナーワークロードの場合、Netflixは、コンテナIPアドレス割り当てサービスであるIPManを利用して、ローカルのIPアドレスを帰属させました。ローカルのIPアドレスが帰属付けられると、各ワークロードが特定のIPアドレスを所有する時間範囲を学習することで、リモートIPアドレスを帰属させることができます。FlowCollectorは、この知識を表すためにメモリ内ハッシュマップを維持し、Kafkaを使用して他のノードと学習した時間範囲を共有します。この新しい方法は、正確な帰属付けを実現し、一時的な問題に対して優雅に処理します。また、シンプルさとメモリ内検索によりコスト効率も高いです。この方法は、フローを対応するリージョンのノードに転送することで、リージョン間のIPアドレスを帰属させるように拡張されています。最後に、この方法は、Netflixのコンテンツ配信ネットワークに属するものなど、ワークロード以外のIPアドレスを帰属させるようにさらに拡張されています。