eBPF Summit、Verizon-Mediaが利用するKatranのセッションを紹介
eBPF Summit 2021から、日本以外でYahoo!ブランドのサービスを展開するVerizon-Mediaのセッションを紹介する。これはFacebookが開発し、オープンソースソフトウェアとして公開するeBPFをベースにしたL4ロードバランサーであるKatranに関するユースケースだ。
以下の動画の53分46秒から開始するセッションとなる。セッションを担当したのはKarthikeyan Thangaraji氏だ。
Katranそのものについては、開発したFacebookが公開しているブログ記事を参照されたい。
参考:Open-sourcing Katran, a scalable network load balancer
FacebookはKatranの前にもソフトウェアベースのロードバランサーを開発、利用していた。しかしパケット処理のCPU負担が高く、そのためにロードバランサーをバックエンドサーバーと共存させることが難しかった。その結果として急なアクセスピークに対応できなかったという。このことが、新しくXDP(eXpress Data Path)とeBPFを使ったロードバランサーをゼロから開発した理由だ。
またKatranが高速に処理が行えるという点に関しても、Facebookのブログでは以下の図を使って解説を行っている。
ここではロードバランサーとバックエンドのプロセスが並存するサーバーにおいて、そのサーバーローカルに実行されているプロセスと通信する時のみ、カーネルスペースからユーザースペースにパケットが渡される形になる。他のサーバーにルートさせる場合は、カーネルで実行されるeBPFのプログラムだけで処理が完了することになり、高速であるという。
ここからVerizon-Mediaのセッションに戻ろう。
ハードウェアベースのロードバランサーではダイナミックな構成変更ができず、バックエンドサーバーの構成も固定されており、オートスケールするできなかったという点を挙げて、ハードウェアベースのロードバランサーではYahoo!の求める運用ができなかったことを説明した。
またYahoo!のバックエンドはKubernetesベースであるため、デフォルトのロードバランサーKube-Proxyも検討された。しかしKube-Proxyは台数が少ない場合には問題ないが、iptablesベースであるためにサーバー台数が増えた場合の性能劣化が激しかったことを解説した。
CiliumがL4ロードバランサーとして選ばれた理由は、主にFacebookが挙げた内容と同じで、コモディティハードウェアにロードバランサーとアプリケーションを共存させることができたこと、XDPによってハードウェアベースのロードバランサーと性能面で劣らなかったこと、Kubernetesとの共存がスムーズだったことなどを挙げた。
ここではVerizon-Mediaが利用するYahoo!のためのネットワーク構成を解説。スパイン、リーフ、トップオブラックのスイッチ、そしてサーバーで構成されている。
このスライドではPodに直接パケットを送信した場合とCiliumを利用した場合のオーバーヘッドについて解説している。Ciliumを使った場合でもオーバーヘッドは非常に小さかったという。
最後に今後の予定を紹介。
現在はまだ2つのデータセンターでのみ実装され、アプリケーションとしてもまだ1つでしか本番稼働していないが、FY2020の第3四半期、第4四半期にはすべてのワークロードをCiliumベースのロードバランサーで処理するようになるだろうと語った。
日本のYahoo! Japanとは名称以外何も共通するものがないと思われるシステムを運用するVerizon-Mediaだが、Facebookの経験を自社に上手く展開したユースケースと言えるだろう。
基本的なテクノロジーであるeBPFを普及するための非営利団体であるeBPF FoudationにはFacebook、Google、Microsoft、Isovalentがプラチナムメンバー、Netflixがゴールドメンバーとなっている。今後、利用が拡がるに従って、メンバーシップやエコシステムも拡がっていくと思われる。2021年9月9日にAWSがEKSをオンプレミスでも実装するEKS Anywhereにおいて、Ciliumを標準のネットワークスタックとして採用することをIsovalentがブログで発表した。3大パブリッククラウドベンダーがCiliumをサポートしていることは大きな意味がある。
参考:AWS picks Cilium for Networking&Security on EKS Anywhere
eBPFとは何か?については以下の公式サイトを参照されたい。
参考:What is eBPF
ロードバランサーのKatranの公式GitHubは以下の通り。
Katranの公式GitHub:https://github.com/facebookincubator/katran
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- eBPF Summit、eBPFとKubernetesでコアネットワーク構築? Bell Canadaのセッションを紹介
- CNDT2021、HPEのアーキテクトが解説するKubernetesネットワークの最新情報
- eBPF FoundationとLF Researchがクラウドネイティブで注目される「eBPF」に関する調査レポートを公開
- CNSC 2022、eBPFをベースにしたコンテナランタイムセキュリティのツールを紹介
- KubeCon EU、欠点から逆算するKubernetesのネットワークに関するセッションを紹介
- eBPF Summit開催 IsovalentのCEOなどによるDay 1のキーノートを紹介
- CNDT 2022、IsovalentのアドボケイトがeBPFを解説
- KubeCon EU開幕、前日に行われたプレカンファレンスからeBPFとTetragonを紹介
- eBPF Foundation&LF ResearchがeBPF技術の進化とオープンソースエコシステムへの影響を調査したレポート「eBPFの現状」日本語版を公開
- OpenStack Summit 2018、Yahoo!ジャパンが共同開発するGimbalとは?