0

ロードバランサを使用してトラフィックをコンテナバックエンドに誘導しようとしています。コンテナ内のサービスは、Webトラフィックをホストします(port 80)。私の健康チェックはすべて合格です。コンテナのKubernetesホストにsshを接続すると、各コンテナをカールして、port 80以上の正しい応答を得ることができます。ただし、ロードバランサの外部IP経由でアクセスしようとすると、502の応答が返されます。私は130.211.0.0/22からtcp:1-5000とNodePortポートのトラフィックを許可するファイアウォールルールを持っています。また、0.0.0.0/0ポート80と443のファイアウォールルールをそれらのノードに追加しようとしました。Google Load Balancerがバックエンドにトラフィックを渡さない

Kubernetesホストで、tcpdumpでキャプチャすると、自分のコンテナに対するヘルスチェック要求が表示されますが、外部から要求があったときにトラフィックは流れません。

私は完全に動作する1台のCompute Engine VMを指しているのと同じ設定です。これは、問題がロードバランサではなくコンテナの設定にあると考えています。

誰でもこの問題を解決するためのアドバイスはありますか?

+0

入力オブジェクトを使用していますか、ロードバランサを手動で設定しましたか?入力オブジェクトを使用して、生成する構成を現在のものと比較して、明らかに異なるものがあるかどうかを確認することができます。 –

答えて

1

ロードバランサが接続していた名前付きポートを変更することで、この問題を解決できました。デフォルトでは、Load Balancerはポート80を指しているNamed Port "http"に接続されていました。アプリケーションがポート80で機能して以来、これは私の前提でした(常に悪いことです)。私はNodePortを通してコンテナを公開していたので、別のポートが割り当てられました。これは私のヘルスチェックが指していたポートです。グループを選択して "Edit Group"を選択して "Compute Engine - > Instance groups"に移動すると、名前付きポート "http"をNodePort番号に一致させることができました。私がそれをしたら、交通が流れ始めました。

関連する問題