web-dev-qa-db-ja.com

google cloud http(s)ロードバランサーが正常なバックエンドサービスにもかかわらず502を返す

トラフィックを2つのバックエンドに転送するように構成されたGCE http(s)ロードバランサーを使用しています。-デフォルトのバックエンド-個別のホスト/パスルールを持つ2番目のバックエンド(<Host>:/*

両方のバックエンドが同じインスタンスグループ(異なるNodePortを公開する2つのkubernetesサービスを実行するコンテナークラスター)に存在します。

インスタンスグループには、2つの名前付きポートがあり、それぞれが公開されたNodePortに対応しています。

両方のバックエンドが正常であると報告しているにもかかわらず、2番目のバックエンドへのすべてのリクエストは502を返します。

サービス自体は問題ではありません-2番目のバックエンドの背後にあるサービスをデフォルトに切り替えると、正常に動作します。

[〜#〜] note [〜#〜]:この説明は、最初に投稿されてから大幅に更新/簡略化しました。これは、より単純な構成で問題を再現できるためです。

11
hawkett

ロードバランサーからインスタンスへのトラフィックは、デフォルトでは有効になっていません。残念ながら、これは十分に文書化されていません。実際、ロードバランサーを作成すると、これは自動的に行われるはずです。

ロードバランサーとVMが存在するネットワークにこのファイアウォールルールを追加してみてください。

130.211.0.0/22   tcp:1-5000   Apply to all targets
4
Tyguy7