GNU/Linux >> Linux の 問題 >  >> Linux

HAProxyサーバーコンテナPodman高速100%簡単

はじめに

HAProxyロードバランサー 。ロードバランサーは、ダウンタイムを回避するために、より多くのWebトラフィックを処理します。インターネットまたは内部ネットワークからトラフィックを受信し、内部サービスの負荷を分散してから、トラフィックをWebに転送します。

複数のサーバーにデプロイされたロードバランサーを使用する利点。ロードバランサーはトラフィックを中継して、各サーバーに直接接続しなくても多数のクライアントにサービスを提供できるように容量を増やすことができます。 HAProxyはトラフィックを受信して​​転送し、バランスをとる ロード サーバー全体。ロードバランサーはサーバーが応答しなくなったかどうかを検出し、トラフィックの送信を自動的に停止するため、この手法はサーバーの障害をヘッジします。 HAProxyは、単一の構成を使用して、任意の数のWebアプリケーションへのトラフィックのバランスを取るために使用されます。

HAProxyは、最も高速で最も広く使用されているロードバランサーおよびアプリケーション配信コントローラーです。 Cで記述され、プロセッサとメモリを効率的に使用します。レイヤー4(TCP)またはレイヤー7(HTTP)のいずれかで実行でき、メッセージの検査、ルーティング、および変更のための追加機能。

これは、エラー率、トラフィック量、および遅延を監視するために使用できるHAProxyStatsページと呼ばれるWebUIにバンドルされています。さらに、ルーティングルール、レート制限、アクセス制御などを定義するための構文を提供する単一の構成ファイルを更新します。

真に信頼できるサービスを保証するには、アクティブ-アクティブまたはアクティブ-スタンバイのセットアップでHAProxyのインスタンスを少なくとも2つ実行します。公式ドキュメントを読んで、HAProxyEnterpriseの使い方を学びましょう。コンテナapacheチュートリアルを確認してください。

HAProxyを設定するときは、通常、次のように開始します。

  • トラフィックを受信するための特定のIPアドレスとポートHAProxy;
  • HAProxyがトラフィックを中継するサーバー;
  • クライアントがサーバーのプールに移動するように要求したとき。

その他の機能は次のとおりです。

  • SSL/TLSターミネーション
  • Gzip圧縮
  • ヘルスチェック
  • HTTP / 2
  • gRPCサポート
  • Luaスクリプト
  • DNSサービス検出
  • 失敗した接続の自動再試行
  • 詳細なログ

これらのコンテナはポート8080でリッスンしますが、これらのポートをホストにマップしなかったため、ルーティングできません。代わりに、HAProxyロードバランサーを介してこれらのコンテナーにトラフィックを中継します。次に、それらの前にHAProxyを追加しましょう。現在のディレクトリにhaproxy.cfgという名前のファイルを作成し、それに次を追加します。

HAProxyイメージを取得する

# podman pull haproxytech/haproxy-alpine:2.4

HAProxy要件のカスタムイメージを作成する

# mkdir -p /haproxy/etc/haproxy/
# cd /haproxy/etc/haproxy/
# ls
Dockerfile haproxy.cfg
要件のニーズに合わせてDockerイメージを作成します
# cat /haproxy/etc/haproxy/Dockerfile
FROM haproxytech/haproxy-alpine:2.4
COPY haproxy.cfg /usr/local/etc/haproxy/haproxy.cfg
選択したhaproxy構成を作成します
# cat /haproxy/etc/haproxy/haproxy.cfg
global
  stats socket /var/run/api.sock user haproxy group haproxy mode 660 level admin expose-fd listeners
  log stdout format raw local0 info

defaults
  mode http
  timeout client 10s
  timeout connect 5s
  timeout server 10s
  timeout http-request 10s
  log global

frontend stats
  bind *:8404
  stats enable
  stats uri /
  stats refresh 10s

frontend myfrontend
  bind :80
  default_backend webservers

backend webservers
  server s1 http-server1:8081 check
  server s2 http-server2:8082 check
  server s3 http-server3:8083 check
haproxyイメージをビルドする
# cd /haproxy/etc/haproxy/
# podman build -t my-haproxy .

HAproxyサーバーを作成する

# podman run --name haproxy-server -p 80:80 -p 8404:8404 -d localhost/my-haproxy
各Webサーバーのポッドを作成 Apacheサーバー
# podman pull centos/httpd-24-centos7

# podman pod create --name httpapp1 -p 8081:8080 --network bridge
# podman run --pod httpapp1 --name http-server1 -v /wwwdata1:/var/www:Z -d centos/httpd-24-centos7

# podman pod create --name httpapp2 -p 8082:8080 --network bridge
# podman run --pod httpapp2 --name http-server2 -v /wwwdata2:/var/www:Z -d centos/httpd-24-centos7


# podman pod create --name httpapp3 -p 8083:8080 --network bridge
# podman run --pod httpapp3 --name http-server3 -v /wwwdata3:/var/www:Z -d centos/httpd-24-centos7
結論

コンテナ内のHAProxyは、そのデプロイメントとライフサイクル管理を簡素化できます。アプリケーションをデプロイするための標準を提供し、プロセスを繰り返し可能でテスト可能にします。実行によるCPUオーバーヘッドはごくわずかであり、余分なネットワークが発生する可能性があり、ユースケースとスループットのニーズによって影響があります。

HAProxy構成ファイルを作成してから、HAProxyイメージの名前を指定してpodmanrunコマンドを呼び出すだけです。 HAProxyTechnologiesは最新の画像を提供しています。

HAProxy Enterpriseは、あらゆる規模および環境で最新のアプリケーションを強化し、重要な支援のために最高のパフォーマンス、可観測性、およびセキュリティを提供します。信頼できる専門家によるサポートと専門的なサービスに裏打ちされた、最先端の機能とエンタープライズスイートのアドオンを利用できます。


Linux
  1. rootなしのPodmanをroot以外のユーザーとして実行する

  2. テクノロジープレビュー:コンテナー内でコンテナーを実行する

  3. コンテナ内でのPodmanの使用方法

  1. HAProxyロードバランサーを設定する方法

  2. KVMサーバーを高速にセットアップする方法

  3. Ubuntu 18.04 に Kodi をインストールする:速くて簡単!

  1. ScanSSH –高速SSHサーバーとオープンプロキシスキャナー

  2. 5ステップNginxには簡単なpodmanが含まれています

  3. リモートVSコードは速くて汚い簡単100%