プロファイルの適用範囲: レベル 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 ドキュメントの指示に従って、
kubeletconfig
カスタムリソースを作成し、streamingConnectionIdleTimeout
を希望の値に設定します。値を 0 に設定しないでください。