web-dev-qa-db-ja.com

kubectlポート転送タイムアウトの問題

Kubectl port-forward関数を使用しているときに、ローカルポートをリモートポートにポート転送することに成功しました。ただし、数分後にアイドリングすると接続が切断されるようです。なぜそうなのかわかりません。

以下は、ポートフォワードに使用されるコマンドです。

kubectl --namespace somenamespace port-forward somepodname 50051:50051

エラーメッセージ:

Forwarding from 127.0.0.1:50051 -> 50051
Forwarding from [::1]:50051 -> 50051
E1125 17:18:55.723715    9940 portforward.go:178] lost connection to pod

接続を維持できることを望んでいました

16
Stanley

kubeletパラメーターでオーバーライドできる5分のタイムアウトがあるようです。

https://github.com/kubernetes/kubernetes/issues/19231

5分以上(または無制限)をkubeletsに渡したい場合は、streaming-connection-idle-timeout。例えば。 --streaming-connection-idle-timeout=4hを4時間に設定します。または:--streaming-connection-idle-timeout=0無制限にします。

14
akauppi

Kubeのstreaming-connection-idle-timeoutを0にするのが適切なソリューションですが、何も変更したくない場合は、while-do構造を使用できます

フォーマット: while true; do <<YOUR COMMAND HERE>>; done

したがって、CLIに入力するだけで、while true; do kubectl --namespace somenamespace port-forward somepodname 50051:50051; done接続が失われてもkubectlの再接続を維持する必要があります

7
user2563451