web-dev-qa-db-ja.com

Azure Load Balancerからサーバーを正常に取り出します(ドレイン停止)

IISによって提供されるAzure IaaS VMにデプロイされたアプリケーションがあります。更新をインストールするには、各マシンをロードバランサーから1つずつ取り出す必要があります。 Azureに移行する前は、新しい接続を送信せず、既存の接続が完了するまで開いたままにして、ノードのドレインを停止する機能を持つMicrosoft NLBを使用していました。 Azure LBで同じことをどのように達成できますか?

7
nulldotzero

これを行うには、負荷分散セットにカスタムヘルスプローブを設定することをお勧めします。たとえば、VMのそれぞれ(たとえばwwwroot内)に単純なhealthcheck.htmlページを作成し、負荷分散セットからこのページにプローブを送信することができます。プローブがそのページ(HTTP 200)を取得できる限り、Azureロードバランサーはユーザー要求をVMに送信し続けます。

VMを更新する必要がある場合は、単にhealthcheck.html_ healthcheck.htmlなどの別の名前に変更できます。これにより、プローブはHTTP 404エラーの受信を開始し、そのマシンはHTTP 200を取得していないため、負荷分散されたローテーションから外れます。既存の接続は引き続き処理されますが、Azure LBは送信を停止しますnewVMへのリクエスト。

VM=の更新が完了したら、_ healthcheck.htmlの名前をhealthcheck.htmlに戻します。AzureLBプローブは取得を開始しますHTTP 200応答とその結果、これにリクエストを送信し始めますVM.

負荷分散セットのVMごとにこれを繰り返します。

13
Rick Rainey

documentation では、セキュリティグループを使用してヘルスプローブを明示的にブロックすることをお勧めします。すべてのAzure Load Balancerヘルスプローブ 168.63.129.16以降

例として、着信NSGルールを使用して、プールから削除するVM NIC)の宛先への168.63.129.16を拒否します。

1
Jeff Miles