このトピックでは、eBPFを使用したサイドカーアクセラレーションとその制限、使用状況のメモ、変更記録について説明し、よくある質問に対する回答を提供します。
概要
Service Mesh (ASM) インスタンスが実行されるアプリケーションポッドにサイドカープロキシが挿入された後、インバウンドおよびアウトバウンドのリクエストはサイドカープロキシを通過します。 これにより、リクエストの待ち時間がわずかに増加します。 eBPFを使用するサイドカーアクセラレーションは、sockopsを採用して、同じノード内のサイドカープロキシ間の伝送制御プロトコル (TCP) ベースの通信、および同じポッド内のアプリケーションコンテナとサイドカープロキシ間の通信を高速化します。
制限
ASMインスタンスのバージョンは1.10以降である必要があります。
Container Service for Kubernetes (ACK) クラスター内のノードのカーネルバージョンは、5.10以降である必要があります。 Alibaba Cloud Linux 3の使用を推奨します。
説明ACKクラスター内のノードが異なる種類のオペレーティングシステム (OS) を使用している場合、eBPFを使用したSidecar Accelerationは、カーネルバージョンが5.10以降のノードでのみ有効になります。 eBPFを使用したサイドカーアクセラレーションは、カーネルバージョンが5.10より前の仮想ノードを含むノードでは有効になりません。 これは他の悪影響を生じない。
ACKマネージドクラスターとACK専用クラスターのみが、eBPFを使用したサイドカーアクセラレーションをサポートしています。
使用上の注意
eBPFを使用してSidecar Accelerationをインストールするには、次の手順を実行します。
eBPFを使用してSidecar Accelerationをインストールした後、ACKクラスターにサイドカープロキシが挿入されているアプリケーションポッドでは、アプリケーションコンテナーとサイドカープロキシ間の通信用のPSHフラグを持つTCPパケットをループバックデバイスでキャプチャできません。 同じノード内のサイドカープロキシ間の通信のためのPSHフラグを有するTCPパケットも捕捉することができない。
ASMインスタンスを作成します。 詳細については、「ASMインスタンスの作成」をご参照ください。
ASMインスタンスにACKクラスターを追加します。 詳細については、「ASMインスタンスへのクラスターの追加」をご参照ください。
ACKクラスターを作成するときは、Alibaba Cloud Linux 3イメージをノードイメージとして使用することを推奨します。
ACKコンソールにログインします。 目的のクラスターを見つけて、その名前をクリックします。 表示されるページで、 を選択します。 [アドオン] ページで、[ネットワーキング] タブをクリックし、eBPFを使用してSidecar Accelerationを見つけて、eBPFを使用してSidecar Accelerationをインストールします。 詳細については、「コンポーネントの管理」をご参照ください。
eBPFを使用したSidecar Accelerationがインストールされた後は、インストールされているACKクラスターでのみ有効になります。 ASMが複数のACKクラスターを管理する場合、各ACKクラスターにeBPFを使用してSidecar Accelerationをインストールする必要があります。
よくある質問
eBPFを使用したサイドカーアクセラレーションがTCPベースの通信を加速するかどうかを知るにはどうすればよいですか?
eBPFを使用するサイドカーアクセラレーションは、TCPベースの通信を加速するためにeBPF sockopsを採用しています。 TCP接続が確立された後にTCPベースの通信が加速されると、TCP要求はTCP/IPプロトコルスタックによって送信されなくなります。 通信が高速化されているかどうかを確認するには、tcpdumpなどのパケットキャプチャツールを使用して、PSHフラグが付いたパケットがTCP接続を介して送信されているかどうかを確認します。
高速化のパフォーマンスは、実際のビジネスシナリオと展開環境によって異なります。 したがって、このトピックでは、eBPFを使用したSidecar Accelerationのインストール前後のパフォーマンス比較については説明しません。
eBPFを使用したサイドカーアクセラレーションは、サイドカープロキシを注入せずにポッド間で送信されるリクエストを加速しますか?
いいえ。 eBPFを使用したサイドカーアクセラレーションは、アプリケーションとサイドカープロキシ間のTCPリクエストと、同じノード内のサイドカープロキシ間のTCPリクエストのみを高速化します。 したがって、eBPFを使用したサイドカーアクセラレーションは、サイドカープロキシが注入されていないアプリケーションポッド間の要求を加速しません。
eBPFを使用したSidecar Accelerationは、eBPFを使用したSidecar Accelerationがインストールされる前に確立されたTCP接続を高速化しますか?
いいえ。 eBPFを使用したSidecar Accelerationは、eBPFを使用したSidecar Accelerationがインストールされる前に確立されたTCP接続を加速しません。
レコードの変更
9月2023
バージョン | 変更された | 説明 | 影響 |
1.0.15 | 2023年9月20日 | eBPFを使用したサイドカー加速が開始されました。 | 影響なし。 |