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
接続を維持できることを望んでいました
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
無制限にします。
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の再接続を維持する必要があります