バックエンドサーバーのIPが変更されている間にhaproxyをリロードすることは可能ですか?もし、どう?異なるバックエンドサーバーIPを使用するハプロキシリロード
ドッキングスタックには必須です。すべてのデプロイ時に、異なるIPを持つ新しいコンテナが古いコンテナを置き換えます。
私たちの実装では、古いハプロキシプロセスが終了せず依然としてリクエストを受け入れるため、サービスは503回も戻ってくることがありますが、バックエンドサーバーはすでに消えています。 httplogは、いくつかの要求がなくなったバックエンドを転送することを示しています。
# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 893 0.0 0.0 0 0 ? Zs 19:39 0:01 [haproxy] <defunct>
root 898 0.3 0.0 49416 9640 ? Ss 19:49 0:13 /usr/local/sbin/haproxy -D -f /app/haproxy.cfg -p /var/run/haproxy.pid
root 915 0.2 0.0 0 0 ? Zs 19:49 0:12 [haproxy] <defunct>
root 920 0.2 0.0 49308 10196 ? Ss 20:57 0:01 /usr/local/sbin/haproxy -D -f /app/haproxy.cfg -p /var/run/haproxy.pid
root 937 0.0 0.0 0 0 ? Zs 20:57 0:00 [haproxy] <defunct>
root 942 0.3 0.0 49296 9880 ? Ss 20:58 0:01 /usr/local/sbin/haproxy -D -f /app/haproxy.cfg -p /var/run/haproxy.pid
root 959 0.2 0.0 49296 9852 ? Ss 20:58 0:01 /usr/local/sbin/haproxy -D -f /app/haproxy.cfg -p /var/run/haproxy.pid
[編集] 私はドッカースターンモードを使用しています。私はパブリッシュサービスのポートをホストに試みました。しかし、スウォームの内部ロードバランサのパフォーマンスは悪く、私は回避しようとします。
おかげのようになります。ドッカースタックについては、私はドッカースターンモードを使用しています。ポート転送は本当にオプションではありません。私はホストにポートを公開しようとしました。しかし、スウォームの内部ロードバランサのパフォーマンスは非常に悪いです。静的IPはこれの解決策ですか? – benjah1
@ benjah1私はドッカー集団の経験はあまりありませんが、[このページはあなたの状況を正確に記述しているようです](https://docs.docker.com/engine/swarm/ingress/#configure-an-external-load-バランサー)?それは、あなたがスウォームモードでコンテナのポートを公開すべきではないようだ。代わりに[サービスのポートを公開する](https://docs.docker.com/engine/swarm/ingress/#publish-a-port-for-a-service)を参照してください。 –