rights reserved. 6 EKS Auto Mode への移⾏ (1) 対 象 の E K S ク ラ ス タ ー で E K S A u t o M o d e が 有 効 に な っ て い る • EKS Auto Mode が有効になっている = Managed Capabilities が利⽤可能になる • EKS Auto Mode を有効にしただけでは、既存のワークロードに影響はない Managed Capabilities Compute Storage Load Balancing EKS Auto Mode ⽤の StorageClass EKS Auto Mode ⽤の NodeClass EKS Auto Mode ⽤の IngressClass 反映 反映 反映 セルフマネージド Karpenter ⽤の NodeClass セルフマネージド ALBC ※ ⽤の IngressClass セルフマネージド / EKS アドオン EBS CSI Driver ⽤の StorageClass ※ ALBC: AWS Load Balancer Controller 反映しない 反映しない 反映しない
rights reserved. 7 EKS Auto Mode への移⾏ (2) 対 象 の ワ ー ク ロ ー ド が E K S A u t o M o d e が 管 理 す る N o d e 上 で 稼 働 し て い る • EKS Auto Mode を有効にしただけでは、EKS Auto Mode が管理する Node は起動しない • EKS Auto Mode が管理する Node と他の⽅法で管理する Node は 共存可能 Amazon EKS cluster (EKS Auto Mode が有効) マネージド型ノードグループが 管理する Node セルフマネージド Karpenter が 管理する Node EKS on Fargate EKS Auto Mode が管理する Node
rights reserved. 30 移⾏ステップ (2) F a r g a t e プ ロ フ ァ イ ル を 削 除 す る Amazon EKS cluster EKS クラスター (EKS Auto Mode が有効) EKS Auto Mode が管理する Node 2. Fargate プロファイルを削除する • 該当の Fargate プロファイルを利⽤する Pod が 存在しないことを確認しておく EKS on Fargate Fargate Profile Node deleted terminated terminated
rights reserved. 34 移⾏ステップ (1) T a i n t を 設 定 し た E K S A u t o M o d e ⽤ の N o d e P o o l を 作 成 す る Amazon EKS cluster EKS クラスター (EKS Auto Mode が有効) EKS Auto Mode が管理する Node 1. Taint を設定した NodePool を作成する • 既存の Pod が Auto Mode の Node に スケジューリングされないように制御 apiVersion: karpenter.sh/v1 kind: NodePool metadata: name: eks-auto-mode spec: template: spec: requirements: - key: "eks.amazonaws.com/instance-category" operator: In values: ["c", "m", "r"] nodeClassRef: group: eks.amazonaws.com kind: NodeClass name: default taints: - key: "eks-auto-mode" effect: "NoSchedule" NodePool (Karpenter) セルフマネージド Karpenter が管理する Node Node Node Node NodePool (Auto Mode) + Taints
rights reserved. 35 移⾏ステップ (2) ワ ー ク ロ ー ド の マ ニ フ ェ ス ト に N o d e S e l e c t o r と T o l e r a t i o n を 追 加 す る Amazon EKS cluster EKS クラスター (EKS Auto Mode が有効) EKS Auto Mode が管理する Node 2. ワークロードのマニフェストを修正する • Auto Mode の Node でスケジューリング されるように apiVersion: apps/v1 kind: Deployment spec: template: spec: tolerations: - key: "eks-auto-mode" effect: "NoSchedule" nodeSelector: eks.amazonaws.com/compute-type: auto セルフマネージド Karpenter が管理する Node Node Node Node Pending terminated NodePool (Karpenter) NodePool (Auto Mode) + Taints
rights reserved. 36 移⾏ステップ (2) ワ ー ク ロ ー ド の マ ニ フ ェ ス ト に N o d e S e l e c t o r と T o l e r a t i o n を 追 加 す る Amazon EKS cluster EKS クラスター (EKS Auto Mode が有効) EKS Auto Mode が管理する Node 2. ワークロードのマニフェストを修正する • Auto Mode の Node でスケジューリング されるように Ø Unschedulable (Pending) Pod を検知して EKS Auto Mode が Node を起動する • Pending Pod が EKS Auto Mode が管理する Node に スケジューリングされる セルフマネージド Karpenter が管理する Node Node Node Node terminated Node Pending NodePool (Karpenter) NodePool (Auto Mode) + Taints
rights reserved. 37 移⾏ステップ (2) ワ ー ク ロ ー ド の マ ニ フ ェ ス ト に N o d e S e l e c t o r と T o l e r a t i o n を 追 加 す る Amazon EKS cluster EKS クラスター (EKS Auto Mode が有効) EKS Auto Mode が管理する Node 2. ワークロードのマニフェストを修正する • Auto Mode の Node でスケジューリング されるように Ø Unschedulable (Pending) Pod を検知して EKS Auto Mode が Node を起動する • Pending Pod が EKS Auto Mode が管理する Node に スケジューリングされる Ø PDB を尊重する形で残りの Pod の削除と 新規 Pod の作成が⾏われる セルフマネージド Karpenter が管理する Node Node Node Node terminated Node terminated Pending NodePool (Karpenter) NodePool (Auto Mode) + Taints
rights reserved. 38 移⾏ステップ (3) セ ル フ マ ネ ー ジ ド K a r p e n t e r ⽤ の N o d e P o o l を 削 除 す る Amazon EKS cluster EKS クラスター (EKS Auto Mode が有効) EKS Auto Mode が管理する Node 3. Karpenter ⽤の NodePool を削除する • セルフマネージド Karpenter が管理する Node 上の Pod は Eviction される • 実⾏中のワークロードが残っている場合は注意 セルフマネージド Karpenter が管理する Node Node Node Node Node NodePool (Karpenter) NodePool (Auto Mode) + Taints deleted
rights reserved. 39 移⾏ステップ (4) T a i n t / T o l e r a t i o n / N o d e S e l e c t o r を 削 除 す る Amazon EKS cluster EKS クラスター (EKS Auto Mode が有効) EKS Auto Mode が管理する Node 4. EKS Auto Mode ⽤の NodePool から Taint を削除 5. ワークロードのマニフェストを修正する • NodeSelector と Toleration を削除 => Drift が発⽣するため Node の置き換えが発⽣する 可能性に注意 セルフマネージド Karpenter が管理する Node Node Node Node Node NodePool (Karpenter) NodePool (Auto Mode) deleted