概要

Kubernetesプロジェクトは8月20日、v1.36.4、v1.35.8、v1.34.11の3系列にわたるパッチリリースを公開した。当初予定されていたリリース日はGitHub側の障害により延期されており、今回はその影響を受けた分もまとめて反映された形となる。今回のリリースはDynamic Resource Allocation(DRA)スケジューリング、kubelet、Podのプリエンプション処理に関する複数の不具合修正に加え、Go関連ライブラリのセキュリティアップデートを含んでいる。

技術的な詳細

最新系列のv1.36.4では、DRAスケジューリングまわりで2件のバグが修正された。1つは、構造化アロケータがプール名のみをキーとして共有カウンターキャッシュを管理していたため、同名のプールを公開する複数のドライバーが互いのカウンター定義を誤って参照し、デバイス割り当てが不正に許可・拒否される可能性があった問題(PR #140504)。もう1つは、PrepareResourcesが部分的に失敗した際、再試行時にCRIランタイムへ重複したCDIデバイスIDが渡され、コンテナ起動エラーを引き起こす問題(PR #140955)である。

スケジューリング領域では、プリエンプター(退避を実行する側)のPodが競合状態によりスケジュール不可能な状態のまま固着してしまう不具合が解消されている(PR #140685)。この修正はv1.35.8にも同様に取り込まれている。このほか、client-goのFakeCustomStoreが新しいcache.Storeインターフェースのメソッドを実装し、互換性が復旧された(PR #141001)。

依存関係とセキュリティ更新

v1.36系ではgolang.org/x/crypto(v0.47.0→v0.53.0)、golang.org/x/net(v0.49.0→v0.56.0)、golang.org/x/text(v0.33.0→v0.39.0)といったGo関連ライブラリがセキュリティアップデートとして更新された(PR #141226)。v1.35.8とv1.34.11についても、Go 1.26でのビルドへの切り替えとあわせて同様のx/crypto・x/net・x/text系ライブラリの更新が反映されており、いずれも機能追加よりも安定性とセキュリティ強化を優先した保守的なリリースとなっている。

今後の対応

DRAスケジューリングやプリエンプションの競合状態といった問題は、大規模クラスタや多数のカスタムリソースドライバーを運用する環境で顕在化しやすい種類の不具合であり、該当する3系列(v1.36、v1.35、v1.34)を利用しているユーザーは早めのアップグレードが推奨される。詳細な変更点はKubernetes公式リポジトリのCHANGELOGで確認できる。