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