Kubelet のカーネル設定保護の確認

起動前にカーネル設定を管理し、kubelet による自動調整の要否を確認してください。

説明

--protect-kernel-defaults=false の場合、kubelet は期待値と異なる一部のカーネル設定を調整しようとします。true の場合は変更せず、不一致時にエラーを返します。すべてのカーネル設定やワークロードによる sysctl 変更を保護する機能ではありません。

カーネルパラメーターはノード全体に影響する場合があるため、承認された基準で管理する必要があります。自動調整を防ぐ場合は、必要な値を事前に設定してから保護を有効にしてください。

想定される影響

  • 自動調整が運用者の管理するノード設定と競合する場合があります。
  • 準備せずに保護を有効にすると、設定の不一致で kubelet が起動できない場合があります。

対処方法

  • ノードの kubelet バージョンが要求するカーネル値を確認し、承認された設定管理手順で適用してください。
  • 自動調整を防ぐ必要がある場合は、protectKernelDefaults: true または従来の --protect-kernel-defaults=true を設定してください。
  • 変更後に kubelet の起動とノードの状態を確認し、ワークロードの sysctl 権限は別途制限してください。

例

コマンド引数を比較する抜粋です。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: ["--protect-kernel-defaults=false"]

変更後

yaml
apiVersion: v1
kind: Pod
metadata:
  name: command-demo
spec:
  containers:
    - name: command-demo-container
      image: foo/bar
      command: ["kubelet"]
      args: ["--protect-kernel-defaults=true"]

補足:

  • 変更前: kubelet が期待値と異なる設定を調整しようとします。これだけでワークロードに任意のカーネル変更を許可するわけではありません。
  • 変更後: 不一致時にエラーを返します。必要なカーネル値を事前に設定する必要があります。

参考資料