ヘルスチェックのトラブルシューティング

IP アドレス範囲をブロックしてヘルスチェックをトラブルシューティングする

特定の状況下では、ヘルスチェックを故意に失敗させることが役立つ場合があります。特定の VM のヘルスチェックをトラブルシューティングの一環として強制的に失敗させたり、シャットダウン手順の一環としてヘルスチェックを失敗させることが必要な場合もあります。

ヘルスチェック IP 範囲へのアクセスを一時的にブロックすることで、ヘルスチェックやレガシー ヘルスチェックを強制的に失敗させることができます。この例では、Linux VM 上で動作する iptables ファイアウォール ソフトウェアを使用してヘルスチェックを失敗させる方法を示します。

新しいヘルスチェックやレガシー ヘルスチェックのプローブをブロックすると、他の新着接続もブロックされる場合があります。このようなことは、ヘルスチェックでサービスと同じポートが使用される場合や、接続が同じヘルスチェック IP 範囲から送られてくる場合に起きます。

VM でヘルスチェックやレガシー ヘルスチェックのプローブが失敗するようにするには、VM に接続し、以下の例のような iptables コマンドを実行して [HEALTH_CHECK_PORT] を適切な TCP ポート番号に置き換えます。VM がシャットダウンする際に故意にプローブを失敗させたい場合は、次のような iptables コマンドをシャットダウン スクリプトに追加し、その後にヘルスチェックのチェック間隔と異常しきい値に基づいて適切な遅延を付け加えます。

$ sudo iptables -I INPUT 1 -m state --state NEW \
-s 35.191.0.0/16 -p tcp --destination-port [HEALTH_CHECK_PORT] \
-j REJECT --reject-with tcp-reset
$ sudo iptables -I INPUT 1 -m state --state NEW \
-s 130.211.0.0/22 -p tcp --destination-port [HEALTH_CHECK_PORT] \
-j REJECT --reject-with tcp-reset
$ sudo iptables -I INPUT 1 -m state --state NEW \
-s 209.85.152.0/22 -p tcp --destination-port [HEALTH_CHECK_PORT] \
-j REJECT --reject-with tcp-reset
$ sudo iptables -I INPUT 1 -m state --state NEW \
-s 209.85.204.0/22 -p tcp --destination-port [HEALTH_CHECK_PORT] \
-j REJECT --reject-with tcp-reset

iptables ルールを削除するには、以下のコマンドを実行して、[HEALTH_CHECK_PORT] をヘルスチェックの TCP ポートに置き換えます。

$ sudo iptables -D INPUT -m state --state NEW \
-s 35.191.0.0/16 -p tcp --destination-port [HEALTH_CHECK_PORT] \
-j REJECT --reject-with tcp-reset
$ sudo iptables -D INPUT -m state --state NEW \
-s 130.211.0.0/22 -p tcp --destination-port [HEALTH_CHECK_PORT] \
-j REJECT --reject-with tcp-reset
$ sudo iptables -D INPUT -m state --state NEW \
-s 209.85.152.0/22 -p tcp --destination-port [HEALTH_CHECK_PORT] \
-j REJECT --reject-with tcp-reset
$ sudo iptables -D INPUT -m state --state NEW \
-s 209.85.204.0/22 -p tcp --destination-port [HEALTH_CHECK_PORT] \
-j REJECT --reject-with tcp-reset
このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...