説明
有効なアイドルタイムアウトがない場合、exec、attach、port-forward などの接続が必要以上に長く維持されるおそれがあります。アイドル制限はリソース保護とセッション管理に役立ちます。
--streaming-connection-idle-timeout=0 は、この設定が機能する旧バージョンでアイドル制限を無効にする値でした。現在の streamingConnectionIdleTimeout は非推奨で、効果がありません。実際に接続を処理するコンテナーランタイムや関連構成要素の対応する制限を確認する必要があります。
想定される影響
- 不要なアイドル接続がリソースを消費し続ける場合があります。
- 不要なアクセスセッションが長く残り、運用管理が難しくなるおそれがあります。
対処方法
- 実際の Kubernetes バージョンとコンテナーランタイムで適用されるストリーミング時間制限を確認してください。
- 対応する構成要素の設定で運用要件に合うアイドル制限を適用してください。効果のない kubelet オプションの変更だけで解決したと判断しないでください。
- 必要なデバッグが動作し、アイドル接続が設定時間で終了することを確認してください。
例
コマンド引数を比較する抜粋です。foo/bar は仮のイメージであり、この Pod をデプロイしてもノードの kubelet は再設定されません。実際のノードのバージョンに対応する設定方法で適用してください。
変更前
yaml
apiVersion: v1
kind: Pod
metadata:
name: command-demo
spec:
containers:
- name: command-demo-container
image: foo/bar
command: ["kubelet"]
args: ["--streaming-connection-idle-timeout=0"]
変更後
yaml
apiVersion: v1
kind: Pod
metadata:
name: command-demo
spec:
containers:
- name: command-demo-container
image: foo/bar
command: ["kubelet"]
args: []
補足:
- 変更前: 従来の kubelet のアイドル制限にゼロを指定します。現在のバージョンでは、この値だけで実際の接続時間を判断できません。
- 変更後: 空文字列の引数を空の引数リストに置き換え、従来の設定を省略します。実効タイムアウトはランタイムなどで別途確認する必要があります。