IISによって提供されるAzure IaaS VMにデプロイされたアプリケーションがあります。更新をインストールするには、各マシンをロードバランサーから1つずつ取り出す必要があります。 Azureに移行する前は、新しい接続を送信せず、既存の接続が完了するまで開いたままにして、ノードのドレインを停止する機能を持つMicrosoft NLBを使用していました。 Azure LBで同じことをどのように達成できますか?
これを行うには、負荷分散セットにカスタムヘルスプローブを設定することをお勧めします。たとえば、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ごとにこれを繰り返します。
documentation では、セキュリティグループを使用してヘルスプローブを明示的にブロックすることをお勧めします。すべてのAzure Load Balancerヘルスプローブ 168.63.129.16以降 。
例として、着信NSGルールを使用して、プールから削除するVM NIC)の宛先への168.63.129.16を拒否します。