EKS Auto Modeでサンプルアプリのデプロイを試してみた

184 Views

February 22, 25

スライド概要

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

EKS Auto Modeでサンプルアプリの デプロイを試してみた 2025/02/20 Kubernetes Novice Tokyo #36 髙寺香次

2.

自己紹介 Profile 髙寺香次 NECソリューションイノベータ株式会社 3年目 - AWS と 少しGoogle Cloud - Kubernetesはほぼ触ったこと無いです 趣味:カラオケ、ドライブ、ブログ(食べログVIP会員) 社外コミュニティ登壇は2回目 #これだけの規模は初めてです よろしくお願いします! 各種SNS

3.

発表の背景 Amazon EKS 「Kubernetes(k8s)」と聞くと無意識に耳を塞いでしまう… 「EKS Auto Mode」で簡単になるらしい…k8s初心者向けイベントがあるらしい…

4.

Amazon Elastic Kubernetes Service (EKS)とは AWSが提供するKubernetesコントロールプレーンのマネージドサービス Amazon EC2 AWS Fargate マネージドなコントロールプレーン ・k8sのAPIサーバーやetcdなどはAWS管理 ・マルチAZ構成による冗長性、高可用性 複数のデータプレーンが選択可能 ・EC2ベース (マネージド型ノードグループ/セルフマネージド) ・AWS Fargate (AWS管理のデータプレーン) 引用:https://pages.awscloud.com/rs/112-TZM-766/images/AWS-Black-Belt_2024_Amazon-EKS-Introduction_1010_v1.pdf

5.

EKS Auto Modeとは k8sクラスターのコンピューティング、ストレージ、ネットワーク管理を自動化 引用:https://speakerdeck.com/kashinoki38/eks-auto-mode?slide=12

6.

従来のEKSとの違い アーキテクチャ・責任共有モデル Before 引用:https://speakerdeck.com/kashinoki38/eks-auto-mode?slide=12 After

7.

EKS Auto Modeでサンプルアプリのデプロイを試してみた 実施手順 Step1 EKSクラスターの作成 サンプルアプリのデプロイ Step2 EKS Auto Modeを有効にしてEKSクラスターを作成し、サンプルアプリをデプロイ 引用:https://aws.amazon.com/jp/blogs/news/getting-started-with-amazon-eks-auto-mode/

8.

EKSクラスターの作成 ClusterConfigの定義 クラスター名 クラスターをデプロイするリージョン EKSバージョン1.31 (≧ 1.29) EKSのdefaultのaddonを自動的にインストールしない Auto Modeを有効化し、2つのノードプールを作成 cluster.yamlに基づいてクラスタ―を作成

9.

EKSクラスターの作成 ClusterConfigの定義 引用:https://speakerdeck.com/kashinoki38/eks-auto-mode?slide=12

10.

EKSクラスタ―の作成 裏ではCloud Fromationが動いている

11.

EKSクラスターの作成 クラスタ―作成完了(Pod、Nodeはまだ存在しない)

12.

サンプルアプリのデプロイ サンプルアプリのデプロイ

13.

サンプルアプリのデプロイ IngressClassParams / IngressClassの定義 ALBに対するAWS固有の設定オプションを指定 インターネット向け(外部公開) IngressClassParamsの設定値を参照する IngressClass ALBをコントローラーとして使用 参考:https://docs.aws.amazon.com/ja_jp/eks/latest/userguide/auto-configure-alb.html#_step_1_create_ingressclassparams https://docs.aws.amazon.com/ja_jp/eks/latest/userguide/auto-configure-alb.html

14.

サンプルアプリのデプロイ StorageClassの定義 StorageClassをデフォルトに設定するためのもの EBS CSIドライバーを使用してストレージをプロビジョニング PVC作成時、PV作成を遅らせる。Podのスケジューリング先に EBSボリュームタイプを PVが作成され、リソースの無駄を防ぐ gp3に指定 参考:https://docs.aws.amazon.com/ja_jp/eks/latest/userguide/create-storage-class.html

15.

サンプルアプリのデプロイ アプリ要件を定義 Secret機能(機密情報を管理する仕組み) PVの設定 定義したStorageClassを指定 UIのエンドポイントを設定

16.

サンプルアプリのデプロイ アプリ要件を定義 HPA(Horizontal Pod Autoscaler)の設定 CPU使用率が80%超えた際にスケールアップ Podの分散配置 異なるAZにPodを分散配置 異なるノード(ホスト)にPodを分散配置 maxSkewを満たさない場合、skewを減らすようにスケジュール

17.

サンプルアプリのデプロイ アプリ要件を定義 Ingressの設定 eks-auto-albをコントローラーとして定義

18.

サンプルアプリのデプロイ サンプルアプリのデプロイ helm install -f values.yaml retail-store-app oci://public.ecr.aws/awscontainers/retail-store-sample-chart --version 0.8.3

19.

サンプルアプリのデプロイ サンプルアプリのデプロイ

20.

まとめと所感 今回のLT準備を通して 今回の収穫 触ってみて 今後の展望 ・実際に操作することでk8sやEKS の基本的な概念について理解が深 まった(Ingress、Service、 Deployment、ReplicaSet、 Pod…) ・クラスタ―の作成からデプロイまで が非常に簡単 ・従来のアーキテクチャEKS on Fargate/EC2も試してみたい ・ブラックボックス的な要素が多い ・EKS Auto Modeのメリデ メをより深く理解できるように ・k8sと聞いて耳を塞がなくなった むしろ気になって調べるように