Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Amazon EKS Auto Mode とノードの終了-⻑期実⾏ワークロードを正しく取り扱う

Avatar for Masatoshi Hayashi Masatoshi Hayashi
May 30, 2025
63

Amazon EKS Auto Mode とノードの終了-⻑期実⾏ワークロードを正しく取り扱う

AWSの公式ウェビナーで利用した資料になります

◆ ウェビナーページ
https://aws-experience.com/apj/smb/event/281dc292-3657-4ab6-9bdd-25081cebb530

◆ ウェビナータイトル
Amazon EKS Auto Mode のノード自動更新を Deep Dive する

Avatar for Masatoshi Hayashi

Masatoshi Hayashi

May 30, 2025
Tweet

Transcript

  1. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. EKS Auto Mode とノードの終了 ⻑期実⾏ワークロードを正しく取り扱う Masatoshi Hayashi Specialist Solutions Architect, Containers AWS Japan
  2. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. ⾃⼰紹介 SIer フリーランス Java/Ruby 開発者 Kubernetesインフラ設計 (Web 企業) Containers SA, Support Engineer (クラウド製品ベンダー) AWS Japan Containers SA 林 政利, @literalice Specialist Solutions Architect, Containers / AWS Japan 2 好きな AWS のサービス Amazon Elastic Kubernetes Service (Amazon EKS) AWS Cloud Development Kit (AWS CDK)
  3. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. E K S A u t o M o d e に お け る 責 任 共 有 モ デ ル を 再 考 す る 3 Amazon EKS Auto Mode と運⽤の⾃動化 EC2 マネージドインスタンス EC2 マネージドインスタンス お客様が管理 AWS が管理
  4. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. ノ ー ド の ⾃ 動 更 新 と 管 理 4 Amazon EKS Auto Mode の動的な性質 ドインスタンス EC2 マネージドインスタンス お客様が管理 AWS によるノードのライフサイクル管理 • AMI の⾃動更新 • 安価なノードへの置き換え • Spot の中断
  5. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. 動 的 な 環 境 に お け る 考 慮 点 を 把 握 す る 5 ワークロード管理と Auto Mode ドインスタンス EC2 マネージドインスタンス AWS によるノードのライフサイクル管理 • AMI の⾃動更新 • 安価なノードへの置き換え • Spot の中断 お客様 によるワークロードの管理 • いつ AWS によりノードが終了するか知る • ワークロードを安全に実⾏できるよう設定する • ⻑期実⾏ワークロードを考慮する
  6. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. • Graceful な終了 § 事前に計画されたノードの終了 • Forceful な終了 § 外部要因によりノードを終了しなければならなくなった際の対応 6 E K S A u t o M o d e は 2 種 類 の ⽅ 法 で ノ ー ド を 終 了 す る Graceful な終了と Forceful な終了
  7. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. • 終了のタイミング、速度を Auto Mode の設定で制御できる § 例: 9時 – 17時に 10% ずつノードを終了する • 発⽣するケース § Consolidation – ノードの統合や安価なインスタンスタイプへ置き換えが可能な時 § Drift – 設定された状態と現在のノードの状態がズレた時 – ノードが利⽤している AMI を置き換えられる時 • パッチが適⽤された新しい AMI がリリースされた • Kubernetes がアップグレードされた 7 事 前 に 計 画 さ れ 、 A u t o M o d e が ⾃ ら ノ ー ド の 終 了 を 選 択 し て 実 施 Graceful な終了
  8. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. • Graceful なノードの終了は、 • 全ノードの 10% ずつ実施する • 夜間帯 (17時 – 9時) は実施しない 8 A u t o M o d e が G r a c e f u l に ノ ー ド を 終 了 さ せ る と き の ⽅ 法 を 設 定 NodePool Disruption Budgets apiVersion: karpenter.sh/v1 kind: NodePool metadata: name: default spec: disruption: … budgets: - nodes: ”10%" - nodes: "0" schedule: "0 0-8,17-23 * * *" duration: 1h
  9. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. • 外部要因により、終了しなければならなくなった際に発⽣ § 終了のタイミング、⽅法を設定できない • 発⽣するケース § Interruption – 外部イベント (EC2 メンテナンス、Spot 中断通知など) が発⽣した時 § Expiration – 時間経過によりノードに設定された期限が切れた時 9 外 的 要 因 に よ る ノ ー ド の 終 了 Forceful な終了
  10. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. • Graceful / Forceful 共通 § ノードの削除が開始されたら、Pod を退避させるプロセスを開始する 10 ワ ー ク ロ ー ド に 中 断 が 発 ⽣ し な い よ う ノ ー ド か ら 退 避 さ せ る Auto Mode がノードを終了させるプロセス time Node 起動 ノード削除開始 • 新しい Pod のデプロイをブロック • ノード上の Pod の排出 (Eviction)を開始 Node 削除 ⼀定期間、ノードの削除を待機 最⼤ 21 ⽇ • 安価なインスタンスの置き換え • AMI の置き換え • ノードの期限切れ • etc.
  11. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. • Graceful § ノードの新規起動を確認してから、ノードの終了を開始する • Forceful の内、Spot Interruption § ノードの新規起動とノードの終了を同時に開始 11 ノ ー ド の 削 除 開 始 の タ イ ミ ン グ は G r a c e f u l と F o r c e f u l で 異 な る Auto Mode がノード終了を開始させるプロセス EC2 マネージドインスタンス EC2 マネージドインスタンス EC2 マネージドインスタンス
  12. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. • Graceful § ノードの新規起動を確認してから、ノードの終了を開始する • Forceful の内、Spot Interruption § ノードの新規起動とノードの終了を同時に開始 12 ノ ー ド の 削 除 開 始 の タ イ ミ ン グ は G r a c e f u l と F o r c e f u l で 異 な る Auto Mode がノード終了を開始させるプロセス EC2 マネージドインスタンス EC2 マネージドインスタンス EC2 マネージドインスタンス
  13. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. • Graceful § ノードの新規起動を確認してから、ノードの終了を開始する • Forceful の内、Spot Interruption § ノードの新規起動とノードの終了を同時に開始 13 ノ ー ド の 削 除 開 始 の タ イ ミ ン グ は G r a c e f u l と F o r c e f u l で 異 な る Auto Mode がノード終了を開始させるプロセス EC2 マネージドインスタンス EC2 マネージドインスタンス EC2 マネージドインスタンス
  14. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. • Forceful (Spot Interruption 以外) § ノードの終了をすぐに開始する 14 ノ ー ド の 削 除 開 始 の タ イ ミ ン グ は G r a c e f u l と F o r c e f u l で 異 な る Auto Mode がノード終了を開始させるプロセス EC2 マネージドインスタンス EC2 マネージドインスタンス
  15. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. • Forceful (Spot Interruption 以外) § ノードの終了をすぐに開始する 15 ノ ー ド の 削 除 開 始 の タ イ ミ ン グ は G r a c e f u l と F o r c e f u l で 異 な る Auto Mode がノード終了を開始させるプロセス EC2 マネージドインスタンス EC2 マネージドインスタンス
  16. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. • Forceful (Spot Interruption 以外) § ノードの終了をすぐに開始する 16 ノ ー ド の 削 除 開 始 の タ イ ミ ン グ は G r a c e f u l と F o r c e f u l で 異 な る Auto Mode がノード終了を開始させるプロセス EC2 マネージドインスタンス EC2 マネージドインスタンス EC2 マネージドインスタンス
  17. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. • Forceful (Spot Interruption 以外) § ノードの終了をすぐに開始する 17 ノ ー ド の 削 除 開 始 の タ イ ミ ン グ は G r a c e f u l と F o r c e f u l で 異 な る Auto Mode がノード終了を開始させるプロセス EC2 マネージドインスタンス EC2 マネージドインスタンス EC2 マネージドインスタンス
  18. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. t e r m i n a t i o n G r a c e P e r i o d = ノ ー ド 終 了 ま で の 待 機 時 間 18 ノード終了に関する Auto Mode の設定
  19. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. t e r m i n a t i o n G r a c e P e r i o d = ノ ー ド 終 了 ま で の 待 機 時 間 19 ノード終了に関する Auto Mode の設定 time Node 起動 ノード削除開始 • 新しい Pod のデプロイをブロック • ノード上の Pod の排出 (Eviction)を開始 Node 削除 ⼀定期間、ノードの削除を待機 • 安価なインスタンスの置き換え • AMI の置き換え • ノードの期限切れ • etc.
  20. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. t e r m i n a t i o n G r a c e P e r i o d = ノ ー ド 終 了 ま で の 待 機 時 間 20 ノード終了に関する Auto Mode の設定 time Node 起動 ノード削除開始 • 新しい Pod のデプロイをブロック • ノード上の Pod の排出 (Eviction)を開始 Node 削除 terminationGracePeriod • 安価なインスタンスの置き換え • AMI の置き換え • ノードの期限切れ • etc.
  21. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. t e r m i n a t i o n G r a c e P e r i o d = ノ ー ド 終 了 ま で の 待 機 時 間 21 ノード終了に関する Auto Mode の設定
  22. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. t e r m i n a t i o n G r a c e P e r i o d = ノ ー ド 終 了 ま で の 待 機 時 間 22 ノード終了に関する Auto Mode の設定 time Node 起動 ノード削除開始 • 新しい Pod のデプロイをブロック • ノード上の Pod の排出 (Eviction)を開始 Node 削除 terminationGracePeriod • 安価なインスタンスの置き換え • AMI の置き換え • ノードの期限切れ • etc.
  23. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. t e r m i n a t i o n G r a c e P e r i o d = ノ ー ド 終 了 ま で の 待 機 時 間 23 ノード終了に関する Auto Mode の設定 time Node 起動 ノード削除開始 • 新しい Pod のデプロイをブロック • ノード上の Pod の排出 (Eviction)を開始 Node 削除 terminationGracePeriod • 安価なインスタンスの置き換え • AMI の置き換え • ノードの期限切れ • etc. expireAfter 最⼤ 21 ⽇
  24. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. • 期間内の終了 § ノードが削除される前に、安全に Pod を終了する • 可⽤性 § 可⽤性が保たれる最低 Pod 数を維持する 24 ノ ー ド の 運 ⽤ を ⾃ 動 化 す る た め の ワ ー ク ロ ー ド の 考 慮 点 ワークロードの安全な終了
  25. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. N o d e が P o d よ り も 早 く 終 了 さ れ な い よ う に す る 25 Pod と Node の終了期間 time Node 起動 ノード削除開始 Pod のデプロイをブロック Node 削除 terminationGracePeriod expireAfter 最⼤ 21 ⽇
  26. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. N o d e が P o d よ り も 早 く 終 了 さ れ な い よ う に す る 26 Pod と Node の終了期間 time Node 起動 ノード削除開始 Pod のデプロイをブロック Node 削除 terminationGracePeriod Pod の起動
  27. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. N o d e が P o d よ り も 早 く 終 了 さ れ な い よ う に す る 27 Pod と Node の終了期間 time Node 起動 ノード削除開始 Pod のデプロイをブロック Node 削除 terminationGracePeriod Pod の起動 Pod 終了処理開始 SIGTERM 送信など
  28. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. N o d e が P o d よ り も 早 く 終 了 さ れ な い よ う に す る 28 Pod と Node の終了期間 time Node 起動 ノード削除開始 Pod のデプロイをブロック Node 削除 terminationGracePeriod Pod の起動 Pod 終了処理開始 SIGTERM 送信など Pod 削除 terminationGracePeriodSeconds
  29. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. P o d D i s r u p t i o n B u d g e t ( P D B ) で 同 時 に 中 断 可 能 な P o d の 数 を 制 限 す る 29 可⽤性を確保できるようにノードを終了させる time Node 起動 ノード削除開始 Pod のデプロイをブロック Node 削除 terminationGracePeriod Pod の起動 Pod 終了処理開始 SIGTERM 送信など Pod 削除 terminationGracePeriodSeconds ︖︖︖
  30. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. P o d D i s r u p t i o n B u d g e t ( P D B ) で 同 時 に 中 断 可 能 な P o d の 数 を 制 限 す る 30 可⽤性を確保できるようにノードを終了させる apiVersion: policy/v1 kind: PodDisruptionBudget metadata: name: sample-pdb spec: maxUnavailable: 1 selector: matchLabels: app: sample-app EC2 マネージドインスタンス sample-app
  31. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. P o d D i s r u p t i o n B u d g e t ( P D B ) で 同 時 に 中 断 可 能 な P o d の 数 を 制 限 す る 31 可⽤性を確保できるようにノードを終了させる apiVersion: policy/v1 kind: PodDisruptionBudget metadata: name: sample-pdb spec: maxUnavailable: 1 selector: matchLabels: app: sample-app EC2 マネージドインスタンス sample-app • 利⽤できない Pod は最⼤ 1つ • 可⽤性を確保 • ノードの終了をブロック
  32. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. P o d D i s r u p t i o n B u d g e t ( P D B ) で 同 時 に 中 断 可 能 な P o d の 数 を 制 限 す る 32 可⽤性を確保できるようにノードを終了させる time Node 起動 ノード削除開始 Pod のデプロイをブロック Node 削除 terminationGracePeriod Pod の起動 Pod 終了処理開始 SIGTERM 送信など Pod 削除 terminationGracePeriodSeconds PDB により Pod の終了開始を ブロック
  33. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. P o d D i s r u p t i o n B u d g e t ( P D B ) に よ り P o d が 退 避 す る た め に 必 要 な 時 間 が ⻑ く な る 33 可⽤性と性能のトレードオフ Node 起動 ノード削除開始 Pod のデプロイをブロック Node 削除 terminationGracePeriod Pod の起動 Pod 強制 削除 terminationGracePeriodSeconds 厳格な PDB (同時に 1つしか終了 できないなど) = ブロックの時間が⻑くなる
  34. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Node と Pod のタイムラインまとめ 34 time Node 起動 ノード削除開始 Pod のデプロイをブロック Node 削除 terminationGracePeriod Pod の起動 Pod 終了処理開始 SIGTERM 送信など Pod 削除 terminationGracePeriodSeconds PDB ブロック expireAfter 最⼤ 21 ⽇
  35. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. t e r m i n a t i o n G r a c e P e r i o d が 2 4 時 間 あ れ ば 問 題 な い こ と が 多 い 35 ステートレスな Web ワークロード time Node 起動 Pod の起動 Pod 削除 10秒 ノード削除開始 Pod のデプロイをブロック expireAfter (2週間) Node 削除 terminationGracePeriod (24 時間) Pod 終了処理開始 SIGTERM 送信など
  36. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. 36 C o n s o l i d a t i o n の 対 象 か ら 除 外 す る Do Not Disrupt EC2 マネージドインスタンス apiVersion: apps/v1 kind: Deployment … annotations: karpenter.sh/do-not-disrupt: true • Consolidation の対象にならない • 以下の対象にはなる • Forceful (Spot 中断など) • Drift (AMI 更新など)
  37. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. S I G T E R M を 無 視 す る プ ロ セ ス の 場 合 37 ステートレスな Web ワークロード time Node 起動 Pod の起動 Pod をなんらかの⼿段で 削除 ノード削除開始 期限切れ、Drift, Forceful expireAfter (2週間) Node 削除 terminationGracePeriod (1週間) Pod 終了処理開始 SIGTERM 無視
  38. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. ノ ー ド の 終 了 が ト リ ガ ー さ れ る 直 前 に バ ッ チ ワ ー ク ロ ー ド が ス ケ ジ ュ ー ル さ れ る 場 合 を 考 慮 す る 38 実⾏に⻑時間を要するバッチワークロード time Node 起動 Pod の起動 Pod 削除 36 時間 ノード削除開始 Pod のデプロイをブロック expireAfter (2週間) Node 削除 terminationGracePeriod (24 時間)
  39. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. ノ ー ド の 終 了 が ト リ ガ ー さ れ る 直 前 に バ ッ チ ワ ー ク ロ ー ド が ス ケ ジ ュ ー ル さ れ る 場 合 を 考 慮 す る 39 実⾏に⻑時間を要するバッチワークロード time Node 起動 Pod の起動 Pod 削除 36 時間 ノード削除開始 Pod のデプロイをブロック expireAfter (2週間) Node 削除 terminationGracePeriod(40 時間)
  40. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. リ ト ラ イ で き な い バ ッ チ 処 理 、 ⽣ 成 A I モ デ ル の ト レ ー ニ ン グ な ど 、 超 ⻑ 期 で 実 ⾏ す る ワ ー ク ロ ー ド の 取 り 扱 い 40 21 ⽇より⻑く実⾏する必要があるワークロード time Node 起動 ノード削除開始 Pod のデプロイをブロック Node 削除 terminationGracePeriod expireAfter 最⼤ 21 ⽇ Pod の起動 30 ⽇ Managed Node Group を併⽤する
  41. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. • Auto Mode では、AWS がノードのライフサイクルを管理する • ライフサイクルを理解することで、幅広いワークロードで運⽤を⾃動化できる § ⻑期で実⾏するバッチ、常時接続ワークロード § 終了処理に時間を要するステートフルワークロード • 21 ⽇以上、実⾏にかかるワークロードは Managed Node Group を併⽤ 41 A u t o M o d e で 幅 広 い タ イ プ の ワ ー ク ロ ー ド を 動 か す こ と で 運 ⽤ ⾃ 動 化 の 幅 を 広 げ る まとめ