現在、負荷分散のニーズにHAプロキシを使用しています。 LVSをHAプロキシと統合して、L4からL7への負荷分散とHAを処理できる負荷分散ソリューションを作成することを計画しています。
LVSを選択する理由は次のとおりです。
現在、HA Proxyを使用すると、バックアップロードバランサーはバックエンドサーバーへの新しいセッションの負荷分散のみを処理し、アクティブなロードバランサーによってサービスされていた既存の接続は失われます。 LVSはカーネル空間で動作するため、既存のセッションでもフェイルオーバーできることを期待しています。
ここで誰かがLVSとHAプロキシの両方を組み合わせて使用しましたか?
もしそうなら、両方を統合するためのいくつかのポインタを提供できますか?すべてのパケットがLVSによってピックアップされてから、L7リクエストがHAプロキシに送信されますか?
ハイブリッドIPVS/HAProxyセットアップを展開しました。 HAProxyは、かなり重いL7意思決定を行うために使用されたため、比較的少ないトラフィック量でスケールアウトする必要がありました。 IPVSを前面に配置することで、HAProxyノードのスケールアウトを実行できるようになり、そのレイヤーでフェイルオーバーを管理する必要がなくなりました。私が必要とした特定のユースケースでは、問題なく機能しました。
私はあなたの述べられた状況のためにこのセットアップをお勧めしません。両方を組み合わせることで、最初にIPVSを使用する理由を取り除くことができます。これは、HAProxyがスタックのどこかにある限り、現在と同じように動作するためです。 HAProxyが長寿命のTCP接続は引き続き存在します(TCP接続はまだHAProxyインスタンスを通過しているため))で問題が発生した場合は、 HAProxyボックスからインターネットへのDSRを実行でき、HAProxyボックスがダウンしても、そのインスタンスを経由していたすべての接続が失われます。
need HAProxyが提供する特定の機能(L7インテリジェンス)を使用しない場合は、IPVSを使用してください(必要に応じて)。 do HAProxyが提供する特定の機能が必要な場合は、IPVSの代わりにそれを使用してください。はい、それはトレードオフです。どちらがより重要で、不足している機能のどのセットをより簡単に設計できるかを決定する必要があります(たとえば、インテリジェンスをバックエンドに移動したり、接続の切断に対処して再確立することなく、より良い仕事をしたりすることによって)ユーザーに見える影響)。
HAProxyの機能が必要な場合のみ、および単一のHAProxyボックスが機能しない状況があるため、HAProxyをスケールアウトする必要がありますしかし単一のIPVS DSRボックスは、必要に応じてその後両方を組み合わせて使用します。