事象
- GKE環境を構築
- PHP + Apacheのコンテナ(pod)を作成
- Serviceをポート転送(port forwarding)しての動作確認は正常に動く
- Ingressに設定したLB経由だと動かない(タイムアウトする)
- ログには特に何も出ない
- LBとPHPの間に、プロキシのservice(今回はnginx)を挟んだ場合は動く
原因
php.iniのxDebugの設定が原因でした。
具体的には
xdebug.remote_connect_back=1
これが原因でした。
1 にするとPHPにアクセスした側の IP アドレスに自動的につなぎにいってくれる
とのことで、LB->PHPのpod の場合、LBに対してつなぎに行こうとして、LB側はそんな接続は許可していないのでタイムアウトしていた、と思われます。
ローカルで動いていた設定をとりあえず、GKE環境に持っていったのですが、ログに情報が何も出ないため、原因にたどり着くのに時間がかかりました。(怪しそうな設定をコメントアウトしてたどり着きました)