Kubernetes v1.37、全ノードコンポーネントを非ルートで動かすRootlessモードがBeta昇格

Kubernetes v1.37でKubeletInUserNamespaceがBetaに昇格し、kubeletやCRI等の全コンポーネントを非ルート権限で実行可能になりました。コンテナ突破時のホス…
インフラと運用設定の変化が事業影響を持ちやすいです。 Kubernetes v1.37でKubeletInUserNamespaceがBetaに昇格し、kubeletやCRI等の全コンポーネントを非ルート権限で実行…
Kubernetes v1.37において、ノードコンポーネントをホスト上の非ルートユーザーで実行可能にする「KubeletInUserNamespace(Rootlessモード)」がBeta機能へ昇格しました。これにより、kubeletやCRI、OCIランタイム、CNIプラグイン、kube-proxyといった主要なコンポーネントがLinuxのユーザー名前空間内で動作し、ホスト側の特権を必要としなくなります。2018年の着想から足掛け8年、v1.22でのAlpha実装を経て、本番環境での実用化に向けた大きな進展を遂げました。
従来の構成では、ノードコンポーネントがホストのルート権限で動作していたため、コンテナ突破などの脆弱性を突かれた際にホスト全体の制御権を奪われるリスクがありました。Rootlessモードを有効にすることで、万が一攻撃を受けても被害範囲を特定の非ルートユーザーアカウント内に限定でき、カーネルやブートローダー、ファームウェアといったOS基盤への永続的な侵害を物理的に遮断できます。これは、v1.36でGAとなったPod単位のユーザー名前空間サポートとは異なる機能であり、これらを組み合わせることで多層的な防御が可能です。
導入にあたっては、以前の特権実行前提の構成からLinuxユーザー名前空間を利用した権限管理への移行が必要です。ホストOS側のカーネル要件やランタイム設定の変更が伴うため、既存のクラスタ設計を見直す必要があります。Rootless環境では一部のファイルシステム操作やデバイス制御に制限が生じる可能性があるため、デプロイ前に自身のワークロードとの整合性を検証することが求められます。
Related tools
この記事に関連するおすすめツール
比較検討しやすい導入候補を優先して表示しています。一部リンクは広告・アフィリエイトを含む場合があります。
フェレット記者の用語メモ
cri
KubernetesがPodを起動するためにコンテナランタイムと通信する標準インターフェースだよ。これがあるおかげでランタイムをDockerからcontainerdなどに切り替えられる。通信はgRPCで行われるけど、ソケットの権限設定を間違えるとkubeletがランタイムと話せなくなってノードがNotReadyのまま固まるから注意してね。
比較: Docker Engine
oci
コンテナの実行形式やイメージの標準規格だよ。これがあるおかげで特定のランタイムに縛られずコンテナを動かせる。Rootless対応では、このランタイム層がユーザー名前空間を正しく解釈できるかが鍵になるよ。バージョンが古いと非ルート実行時に特定のリソース制限が効かなくなるバグに遭遇しやすいから注意が必要だね。
比較: Docker独自のイメージ仕様
出典: Kubernetes Blog
要点を短く整理して掲載しています。詳細は出典を確認してください。
