Karpenter
Node Warmup
並列イメージ事前キャッシングによる事前ノードプロビジョニング — 最初のPod起動を31秒から3秒に短縮(10倍高速)
概要
Node Warmupは、ワークロード需要が到着する前にスタンバイノードを事前にプロビジョニングします。既存のノードがNodePool内の最大Podに適合できない場合、Waveはウォームアップpodをトリガーして新しいノードを作成し、並列でコンテナイメージを事前プルします。
これによりコールドスタートの遅延が解消されます:実際のワークロードが到着する時点で、新しいノードはすでに実行中でイメージがキャッシュされています。早期統合を防ぐためにdo-not-disruptアノテーションで保護されています。EKS専用機能。
リアクティブノードプロビジョニングより優れている理由
| バニラKarpenter | Wave Node Warmup | |
|---|---|---|
| 起動時間 | コールドスタート:ノード + イメージプルで31秒 | 事前ウォームアップ:実際のpodで3秒(10倍高速) |
| イメージ準備 | ノード準備後にシリアルイメージプル | ウォームアップされたノードで並列イメージ事前プル |
| ノード保護 | ウォームアップされたノードが早期に統合される可能性 | do-not-disruptアノテーションが早期終了を防止 |
主な成果とメリット
10倍高速
最初のPod起動
需要前にスタンバイノードが準備完了 — 31秒から3秒へ
プル時間ゼロ
イメージ事前キャッシング
ウォームアップされたノードでコンテナイメージを並列事前プル
保護
ノード統合ガード
do-not-disruptアノテーションが早期統合を防止
動作原理
容量監視
各NodePool内の最大podと利用可能なノード容量を継続的に追跡
事前プロビジョニング
どのノードも最大podに適合できない場合、最大 + バッファにサイズ設定されたウォームアップpodをトリガー
イメージ事前プル
ウォームアップされたノードでコンテナイメージを事前プルするための並列podを作成
ノード保護
ワークロードが到着するまで統合を防ぐためにdo-not-disruptでウォームアップされたノードにアノテーション