プロファイル適用性: レベル1
ストリーミング接続のタイムアウトを無効にしないでください。
アイドルタイムアウトを設定することで、サービス拒否攻撃、非アクティブな接続、一時ポートの枯渇から保護されます。
注意デフォルトでは、
--streaming-connection-idle-timeoutは4時間に設定されていますが、これはお客様の環境にとって高すぎるかもしれません。適切に設定することで、正当な使用ケースに対応した後にそのようなストリーミング接続がタイムアウトすることをさらに保証します。 |
注意デフォルトでは、
streamingConnectionIdleTimeoutは4時間に設定されています。 |
影響
長時間接続が中断される可能性があります。
監査
OpenShiftは、
streaming-connection-idle-timeout引数に対してkubernetesのデフォルトである4時間を使用します。クラスタ管理者がノード設定に値を追加していない限り、デフォルトが使用されます。この値は、ポートフォワード、exec、またはアタッチポッド操作のように、kubeletを通じて行われるHTTPストリーミングセッションのタイムアウトです。streaming-connection-idle-timeoutをゼロに設定して無効にするべきではありませんが、値を下げることは可能です。
注意値が低く設定されすぎている場合、それらの機能を使用しているユーザはタイムアウトによるサービス中断を経験する可能性があります。
|
kubeletの設定は現在、イグニッション設定としてシリアル化されているため、直接編集することができます。しかし、Machine Config Controllerに新しい
kubelet-config-controllerも追加されています。これにより、KubeletConfigカスタムリソースを作成してkubeletのパラメータを編集することができます。各ノードのストリーミング接続タイムアウトを表示するには、次のコマンドを実行してください。
for node in $(oc get nodes -ojsonpath='{.items[*].metadata.name}'); do
oc get --raw /api/v1/nodes/$node/proxy/configz | jq
'.kubeletconfig.streamingConnectionIdleTimeout'
done
各ノードに対して返される値が0でないことを確認してください。
修復
OpenShift documentationの指示に従って、
kubeletconfigカスタムリソースを作成し、streamingConnectionIdleTimeoutを希望の値に設定してください。値を0に設定しないでください。
