Karpenter
Spot Workload Placement
Webhook注入によるゼロタッチspot/on-demand分割 — spotインスタンスはon-demand比60-90%低コスト、デプロイメント別の細かい制御
概要
Spot Workload Placementは、設定可能なPod Spot Thresholdに基づいて、Podレプリカをspotインスタンスとon-demandインスタンスに自動的に分割します。YAMLの変更は不要 — MutatingWebhookConfigurationがPod作成をインターセプトし、nodeAffinityルールを注入します。
デプロイメント別にしきい値を設定:しきい値未満のpodはon-demandノードに、しきい値以上のpodはspotノードに配置(PreferまたはRequire戦略)。可用性保証を維持しながら大幅なコスト削減を実現。EKS専用機能。
手動Spot管理より優れている理由
| 手動YAML Affinityルール | Wave Spot Placement | |
|---|---|---|
| 設定 | すべてのデプロイメントでYAMLを編集 | WAコンソール経由で一度しきい値を設定 |
| リスク管理 | オールオアナッシングのspot戦略 | フォールバック付きのデプロイメント別細かいしきい値 |
| 開発者エクスペリエンス | Kubernetesアフィニティの専門知識が必要 | ゼロタッチWebhook注入 |
主な成果とメリット
60-90%
Spotインスタンス割引
SpotインスタンスはOn-demand比60-90%低コスト — spot比率に応じて節約効果が拡大
ゼロタッチ
Webhook注入
YAMLの変更なし — MutatingWebhookConfigurationがアフィニティを処理
デプロイメント別
細かい制御
デプロイメント別の独立したしきい値と戦略
動作原理
しきい値設定
WAコンソール経由でデプロイメント別のPod Spot Thresholdを設定
Webhookインターセプト
MutatingWebhookConfigurationがPod作成イベントをインターセプト
アフィニティ注入
しきい値と戦略に基づいてnodeAffinityルールを自動注入
インテリジェント配置
しきい値未満のPod → on-demand、しきい値以上のPod → spot(PreferまたはRequire)