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

EKS Auto Mode

EKS Auto Mode

AWS re:Invent 2024 Recap in ZOZO にて登壇した EKS Auto Mode に関するスライドです。
https://zozotech-inc.connpass.com/event/336730/

More Decks by kashinoki38 - Yasuhiro Horiuchi

Transcript

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

    rights reserved. A W S R E : I N V E N T 2 0 2 4 R E C A P I N Z O Z O EKS Auto Mode ! 堀内 保⼤ AWS Japan G.K. Sr, Solutions Architect 1
  2. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. ⾃⼰紹介 堀内 保⼤ (Yasuhiro Horiuchi) • AWS Japan シニアソリューションアーキテクト • 前部署︓Web系 EC企業様を横断的に⽀援 バックグラウンド • 前職︓SIerで多岐にわたるシステムへの性能関連の技術⽀援 好きなAWSサービス • Amazon Elastic Kubernetes Service (EKS) 趣味 • スノーボード、旅⾏ 2 @ka_shino_ki [email protected]
  3. © 2025, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. ACK Project Price reduced to $0.10 per hour Secrets Encryption SLA raised to 99.95% EKS CIS Benchmark K8s Resources in EKS console EKS on AWS Local zones EKS Add-ons Load balancer controller 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 0 マネージド Kubernetes on AWS の歩み 2018 Launch Counter // 2020 2021 2022 2023 2019 EKS Generally Available Managed Cluster Version Updates GPU Support HIPAA eligible ISO, PCI, and SOC Compliance Expansion to 15 AWS regions CSI drivers for EBS, EFS, FSx for Lustre Pod security policies Managed Node Groups EKS Fargate EKS on AWS Outposts IPv6 clusters available Local clusters on Outposts Trainium instances Add-ons from AWS marketplace PrivateLink support Nitro enclaves Launch time reductions Expansion to 32 AWS regions Kubernetes Network Policy enforcement Extended version support Version launch acceleration Pod Identity S3 Mountpoints CSI Driver Upgrade Insights OIDC access authentication Cluster creation reduced by 40% EFA, P4d instance support EKS Anywhere GA EKS Connector FedRamp High Compliance Control plane scaling Karpenter project Amazon Linux 2023 2024 Automatic Version Upgrades Zonal Shift Full IPv6 support Auto Mode Hybrid Nodes Multi-cluster dashboard Node health & auto-repair 3
  4. © 2025, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. お客様の声: Kubernetes の運⽤には多くの “投資” が必要 4 クラスター / アプリケーションを実⾏するためにインフラの管理が必要 ⾼度な専⾨知識と、 継続的な時間 (⼈的リソース)の 投資が必要 リソース使⽤率やコストを最適化するために、 適切な EC2 インスタンスを選定・実⾏する 本番環境の Kubernetes に必要なプラグインや アドオンをインストール・管理する クラスターのアップグレードや Node の更新を⾏い インフラストラクチャを最新のセキュアな状態にする
  5. © 2025, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Auto Mode Kubernetes クラスターの インフラストラクチャ全体を⾃動化
  6. © 2025, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. EKS Auto Mode が登場する以前の Amazon EKS の活⽤ 6 コントロール プレーンの作成 コンピューティング 環境の⽤意 プラグインの インストール アプリケーションの デプロイ モニタリング ⼿動での最適化と アップグレード
  7. © 2025, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Auto Mode 1 クラスター 作成 本番環境クラスターに 必要なコア機能の提供 クラスターの インフラストラクチャを⾃動的に作成 ノードとコア機能の ⾃動アップグレード リソースの動的なスケール 継続的なコスト最適化
  8. © 2025, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. EKS Auto Mode 以前の EKS クラスターアーキテクチャ Amazon EKS cluster EKS account Managed Control Plane Etcd Instances API Server instances Karpenter Amazon EBS CSI Driver AWS Load Balancer Controller Amazon EKS Add-Ons kube-proxy EKS Pod Identity EC2 Instances Supporting AWS Services EBS Volumes Application Load Balancer Network Load Balancer Customer account
  9. © 2025, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. EKS Auto Mode の EKS クラスターアーキテクチャ EKS account Customer account Supporting AWS Services EBS Volumes Application Load Balancer Network Load Balancer EC2 Managed Instances Compute Storage Load Balancing Managed Capabilities Amazon EKS cluster Managed Control Plane API Server instances Etcd Instances
  10. © 2025, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Amazon EC2 マネージドインスタンス 10 • ⾃⾝の AWS アカウントで EC2 インスタンスを実⾏しつつ、管理を AWS にオフロードできる Ø 例)プロビジョニング、スケーリング、ソフトウェアの構成、インスタンス障害の対処 • ⾮マネージドインスタンスと同様に、購⼊オプション(例: Savings Plans)を適⽤可能 AWS アカウント(ユーザー) サービスプロバイダー EC2 マネージドインスタンス ユーザー • マネジメントコンソールなどから EC2 マネージドインスタンスを確認可能 • インスタンスの変更や削除は不可能 Amazon EKS (EKS Auto Mode) インスタンスの管理(例: プロビジョニング)を⾏う
  11. © 2025, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. EKS Auto Mode における EC2 マネージドインスタンス 11 Auto Mode Managed AMI Amazon EC2 Managed Instance (Agents running on a node) CSI Node Node Monitoring K8s service load balancing K8s service discovery Pod Identity
  12. © 2025, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. EKS Auto Mode 以前の責任共有モデル AWS グローバル インフラストラクチャ 基盤となるサービス EKS クラスター コントロールプレーン クラスターの機能 クラスター EC2 インスタンス Storage Networking Monitoring Compute Regions Local Zones Edge Locations K8s API Server X-ENIs K8s Etcd Database Pod Networking / Network Policy Elastic Load Balancing Storage Drivers Compute Autoscaling エージェント, kubelet, コンテナランタイム Application containers: Availability, security, monitoring VPC infrastructure, cluster configuration, add-ons © 2024, Amazon Web Services, Inc. or its affiliates. All rights reserved. お客様が管理 AWS が管理 Patching Monitoring Health and Repair Operating System Lifecycle
  13. © 2025, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. EKS Auto Mode の責任共有モデル Storage Networking Monitoring Compute Regions Local Zones Edge Locations K8s API Server X-ENIs K8s Etcd Database Pod Networking / Network Policy Elastic Load Balancing Storage Drivers Compute Autoscaling Patching Monitoring Health and Repair Operating System Lifecycle Application containers: Availability, security, monitoring VPC infrastructure, cluster configuration, add-ons IAM © 2024, Amazon Web Services, Inc. or its affiliates. All rights reserved. お客様が管理 AWS が管理 Customer IAM AWS グローバル インフラストラクチャ 基盤となるサービス EKS クラスター コントロールプレーン クラスターの機能 クラスター EC2 インスタンス エージェント, kubelet, コンテナランタイム
  14. © 2025, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Amazon EKS Auto Mode クラスターの機能 14 Compute Networking Storage Security
  15. © 2025, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Amazon EKS Auto Mode クラスターの機能 15 Networking Security Storage Compute
  16. © 2025, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Amazon EKS Auto Mode クラスターインフラストラクチャ 16 ク ラ ス タ ー イ ン フ ラ ス ト ラ ク チ ャ の プ ロ ビ ジ ョ ニ ン グ 、 ス ケ ー リ ン グ 、 管 理 を ⾃ 動 化 多種多様なインスタンス タイプを利⽤可能。 ワークロードに応じた コンピューティング環境を 柔軟に選択。 多様なワークロードの サポート Amazon EC2 インスタンス EC2 インスタンスを ユーザーアカウントで 実⾏しつつ、 フルマネージドな コンピューティング環境を 提供 適切なリソース サイズの選定 適切なサイズの コンピューティング リソースを作成。 需要に応じた動的な スケーリングも実施。 リソース使⽤率の低い Node を削除し、 置き換え可能な Node をより⼩さな インスタンスに置換。 また、Node を効率的に 使⽤可能となるように ワークロードの統合も実施。 コスト最適化
  17. © 2025, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. General purpose Burstable Compute intensive Memory intensive Storage (high I/O) Dense storage GPU compute Graphic intensive カテゴリ 機能 Choice of processor (AWS, Intel, AMD, Apple) High memory footprint (up to 24 TiB) Accelerated computing (GPUs and FPGA) Instance storage (HDD and NVMe) Size (up to 112x large) Networking (up to 800 Gbps) Powered by AWS Nitro System AWS Graviton Processors best price performance for cloud workloads シリコンイノベーション O N - D E M A N D I N S T A N C E S S A V I N G S P L A N S S P O T I N S T A N C E S 購⼊オプション 800+ インスタンスタイプ あらゆる ワークロードに対応 17
  18. © 2025, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. EKS Auto Mode の Node プロビジョニングの仕組み 18 Pending pods 既存のキャパシティ 必要に応じて追加される キャパシティ Unschedulable pods • EKS Auto Mode が提供するマネージドな Karpenter により Node をプロビジョニング • Pod の要求に応じて、EKS Auto Mod (Karpenter) が 適切な EC2 マネージドインスタンスをユーザーの AWS アカウントで実⾏ • マネージド NodePool (および NodeClass) を 有効にすることで、すぐに利⽤可能に Ø カスタム NodePool / NodeClass の設定も可能 • EC2 マネージドインスタンスには Bottlerocket OS を利⽤
  19. © 2025, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Simplify Kubernetes workloads with Karpenter & Amazon EKS Auto Mode (KUB312) 19 https://www.youtube.com/watch?v=JwzP8I8tdaY
  20. © 2025, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. マネージド NodePool 20 • EKS Auto Mode では、すぐに利⽤可能なマネージド NodePool(および NodeClass)を提供 Ø general-purpose: さまざまなワークロード向け Ø system: クリティカル Pod をワークロード Pod が稼働する Node から隔離 • カスタム NodePool / NodeClass を追加することで、柔軟な設定も可能 karpenter.sh/v1 NodePool eks.amazonaws.com/v1 NodeClass ユーザー Amazon EKS general-purpose system default my-default my-default EKS managed Customer managed
  21. © 2025, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Bottlerocket 21 E C 2 マ ネ ー ジ ド イ ン ス タ ン ス は B o t t l e r o c k e t A M I を ベ ー ス に 提 供 コンテナを実⾏するために構築された新しいオープンソース Linux ベースオペレーティングシステムである Bottlerocket の⼀般提供の開始を発表 https://aws.amazon.com/jp/about-aws/whats-new/2020/08/announcing-general-availability-of-bottlerocket/ • コンテナをホスティングするために特別に設計された Linux ベースのオペレーティングシステム • コンテナを安全かつ確実に実⾏するために必要な ソフトウェアコンポーネントのみが含まれる • ホスト上で稼働する部品やプロセスが少ないため、⼀般的な 汎⽤ホスト OS に⽐べて管理の⼿間が省け、攻撃対象も⼩さい
  22. © 2025, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Node のトラブルシューティング 22 • EKS Auto Mode が管理するインスタンスには SSH や Session Manager でのログインができない • S3 バケットなど、HTTP Put 操作が可能な 「ログ保管先」に Node ログの出⼒が可能 1. S3 署名付き URL の作成 2. NodeDiagnostic カスタムリソースの作成 3. .tar.gz 形式のログが S3 バケットに出⼒ 4. S3 からログファイルを取得 apiVersion: eks.amazonaws.com/v1alpha1 kind: NodeDiagnostic metadata: name: <node-name> spec: logCapture: destination: <http-put-destination> AWS アカウント(ユーザー) EC2 マネージド インスタンス Amazon S3 logs1.tar.gz
  23. © 2025, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Amazon EKS Auto Mode クラスターの機能 23 Networking Security Storage Compute
  24. © 2025, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. マネージドなネットワーキング機能 24 マネージドな kube-proxy を iptables モードで実⾏ マネージドな Amazon VPC CNI Plugin を実⾏ Pod ネットワーキングや Network Policy の適⽤を管理 マネージドな CoreDNS を 各 Node 上で実⾏ 各 Node 上で systemd サービスとして実⾏されている
  25. © 2025, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Amazon VPC CNI Plugin の振る舞い 25 Prefix Delegation - デフォルトで有効 • IPv4 /28 (16) または IPv6 /80 (2^42) の prefix が利⽤される • 有効 / 無効を切り替えることはできない Secondary IP モードへの fall back • prefix が取得できない場合、ENI の secondary IP から Pod に IP をアサインする Amazon EC2 CNI Binary ipamd (node-local thin client) kubelet
  26. © 2025, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Amazon VPC CNI Plugin と EKS Auto Mode 26 現時点(2024.12.11)で、⼀部の Amazon VPC CNI Plugin 機能が未サポート • Security Groups for Pod • Custom Networking Ø Pod と Node の IP アドレスが同じ CIDR ブロックから割り当てられる必要がある • Warm IP、Warm prefix、Warm ENI • Minimum IP target • Prefix delegation モードの有効 / 無効 • NodeClass で公開されていない設定値 • など また、CNI Plugin ⾃体を Amazon VPC CNI 以外に置き換えることはできない
  27. © 2025, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. マネージドなロードバランサーのプロビジョニング機能 27 • EKS Auto Mode マネージドなロードバランサー コントローラーを提供 Ø Ingress: ALB Ø Service: NLB • EKS Auto Mode ⽤の設定を追加することで ALB / NLB のプロビジョニングが可能に Ø ALB: IngressClass の作成 Ø NLB: loadBalancerClass の指定 apiVersion: networking.k8s.io/v1 kind: IngressClass metadata: name: alb annotations: ingressclass.kubernetes.io/is-default-class: "true" spec: controller: eks.amazonaws.com/alb parameters: apiGroup: eks.amazonaws.com kind: IngressClassParams name: alb
  28. © 2025, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Amazon EKS Auto Mode クラスターの機能 28 Networking Security Storage Compute
  29. © 2025, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. マネージドな EBS CSI ドライバーを提供 29 StorageClass gp3 io1 sc1 encrypted io1 st1 • Amazon EBS CSI controller は EKS が 管理する AWS アカウント上で実⾏ • Amazon EBS CSI node agent は systemd サービスとして各 Node 上で実⾏ • EKS Auto Mode は ebs.csi.eks.amazonaws.com Provisioner をサポート • 上記の Provisioner を参照する StorageClass を作成することで利⽤可能 Amazon EBS CSI Driver apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: auto-ebs-sc annotations: storageclass.kubernetes.io/is-default-class: "true" provisioner: ebs.csi.eks.amazonaws.com volumeBindingMode: WaitForFirstConsumer parameters: type: gp3 encrypted: "true"
  30. © 2025, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. その他の CSI ドライバーの利⽤ 30 CSI drivers for EFS and Mountpoint for Amazon S3 CSI ドライバーを EKS add-on でインストール可能 • マネージド Node Pool (system) にインストール • コントローラー / Agent が EKS Auto Mode Node で 実⾏ § EKS add-on でインストールしたアドオンは EKS Auto Mode の⾃動アップグレード対象外のため、 ⼿動でアップグレードを実施 セルフマネージドな CSI ドライバーも インストール可能 • Amazon FSx for Lustre CSI Driver • Amazon FSx for NetApp ONTAP • Amazon FSx for OpenZFS
  31. © 2025, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Amazon EKS Auto Mode クラスターの機能 31 Networking Security Storage Compute
  32. © 2025, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. EKS Pod Identity を利⽤した Pod の権限管理 32 • EKS Auto Mode では、各 Node に EKS Pod Identity Agent がインストール済み • Pod Identity Association を作成して、IAM ロールと Service Account を関連付け aws eks create-pod-identity-association ¥ --clusterName <my-cluster> ¥ --namespace <my-namespace> ¥ --serviceAccount <my-service-account> ¥ --roleARN <my-iam-role-arn>
  33. © 2025, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. EKS Auto Mode Node の⾃動更新 33 コ ン ポ ー ネ ン ト の パ ッ チ 当 て を 含 む N o d e A M I の 更 新 は ⾃ 動 で 適 ⽤ さ れ る EKS Control Plane K8s Data plane v1.30 ami-13021 ami-13021 ami-13033 ami-13033 AMI ami-13033 Disruption Budget を尊重しながら Node AMI の置き換えを順次適⽤ 2 起動から 21 ⽇が経過した Node は 強制的に置き換えを実施 3 AWS が Auto Mode ⽤の AMI をリリース 1
  34. © 2025, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Kubernetes バージョンアップグレード 35 K8s Control Plane K8s バージョンの アップグレードを 開始 Auto Mode Cluster Components コンポーネントの ⾃動アップグレード Node の段階的な アップグレード Inf2 C6i C6i C6i P4 M6g M6g C6i R7g Amazon EC2 Managed Instances • アプリケーション等の互換性を確認後、ユーザーが K8s バージョンアップグレードを開始 • EKS Auto Mode では、コントロールプレーンのアップグレード後、EKS Auto Mode マネージドなコンポーネントの⾃動アップグレードも順次開始 • データプレーンについては、Node Disruption Budget や Pod Disruption Budget を 尊重しながら graceful update が実⾏され、AMI の更新が⾏われる
  35. © 2025, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. EKS Auto Mode の料⾦ (1) 36 • ⾮ EC2 マネージドインスタンスと同じ基本料⾦に加えて、EKS Auto Mode の料⾦が発⽣する Ø EKS クラスターに所属する「EKS Auto Mode が管理する Node」に対して追加料⾦が発⽣ • 基本料⾦の部分には、リザーブドインスタンスや Savings Plans などの購⼊オプションを適⽤可能 ⾮ EC2 マネージドインスタンス EKS Auto Mode が管理する Node (オンデマンドインスタンス) EKS Auto Mode が管理する Node (Savings Plans) EC2 インスタンス料⾦ EKS Auto Mode 料⾦
  36. © 2025, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. 料⾦試算 37 スペック 料⾦計算 合計 EC2 m6i.large 2vcpu/8GiB $0.124 (Instance) + $0.01488 (Auto Mode 12%) $0.13988 Fargate 2vcpu/8GiB $0.05056 * 2 (vCPU) + 0.00553 * 8 (Memory) $0.14536 https://aws.amazon.com/jp/eks/pricing/
  37. © 2025, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. EKS Auto Mode の料⾦ (2) 38 • EKS クラスター内の 「EKS Auto Mode が管理する Node」にのみ EKS Auto Mode の料⾦が発⽣ EKS cluster (Auto Mode が有効) Managed Node Group が管理する Node EKS Auto Mode が管理する Node 料⾦ EC2 インスタンス料⾦ EKS Auto Mode 料⾦
  38. © 2025, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. 既存 Karpenter からの移⾏ ステップ 1. EKS Auto Mode の有効化 2. Auto Mode ⽤のカスタム NodePool を作成、taints を付与 3. 既存のワークロードに tolerations と nodeSelector を付与し、上記 NodePool に 移⾏する 4. ワークロードの移⾏が終われば、既存の NodePool を削除する ※EKS Auto Mode でプロビジョンされる以外の Node や NodePool がなければ、 taints, nodeSelector を削除しても良い 39 https://docs.aws.amazon.com/eks/latest/userguide/auto-migrate-karpenter.html
  39. © 2025, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. その他の考慮事項 40 • 現時点(2024.12.11)で Kubernetes version 1.29 以降の EKS クラスターのみサポート • 新規 EKS クラスター、既存 EKS クラスターのどちらでも有効化が可能 • 既存の EKS クラスターで Auto Mode を有効にする場合: Ø 既存の EBS CSI ドライバーが管理するボリュームを EKS Auto Mode managed に 移⾏はできない Ø 既存の AWS Load Balancer Controller が管理する ALB/NLB を EKS Auto Mode managed に 移⾏はできない • EKS Auto Mode Node に利⽤する AMI を持ち込むことはできない Ø DaemonSet は利⽤可能なため、エージェント類は Pod で実⾏する⽅式に変更する
  40. © 2025, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. 42 触ってみよう︕
  41. © 2025, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. 既存クラスタでも有効化可能 43
  42. © 2025, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. 以下のラベルがつくので、nodeSelectorやtaints/tolerations でAutoModeへのデプロイを制御可能 nodeSelector: eks.amazonaws.com/compute-type: auto 44
  43. © 2025, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. apiVersion: apps/v1 kind: Deployment metadata: name: inflate namespace: auto-mode spec: replicas: 2 selector: matchLabels: app: inflate template: metadata: labels: app: inflate spec: terminationGracePeriodSeconds: 0 nodeSelector: eks.amazonaws.com/compute-type: auto eks.amazonaws.com/instance-family: m6a securityContext: runAsUser: 1000 runAsGroup: 3000 fsGroup: 2000 containers: - name: inflate image: public.ecr.aws/eks-distro/kubernetes/pause:3.7 resources: requests: cpu: 2 securityContext: allowPrivilegeEscalation: false 45
  44. © 2025, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. マネージドインスタンス 47
  45. © 2025, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. 消そうとしてみる 48