このページの改善にご協力ください
本ユーザーガイドの改善にご協力いただけませんか? すべてのページの右側のペインにある GitHub リンクで、このページの編集を選択してください。皆さまにご協力いただくことで、あらゆる人々に使いやすいユーザーガイドになります。
Amazon EKS Auto Mode クラスターにサンプルの拡張ワークロードをデプロイする
このチュートリアルでは、サンプルワークロードを EKS Auto Mode クラスターにデプロイする方法と、必要なコンピューティングリソースがどのように自動的にプロビジョニングされるか説明します。kubectl
コマンドを使用してクラスターの動作を監視し、Auto Mode により AWS での Kubernetes オペレーションがどのように簡素化されるかを直接確認します。このチュートリアルを終了すると、基盤となるコンピューティングリソースを自動的に管理することで、ノードグループを手動で設定する必要なく、EKS Auto Mode がワークロードのデプロイにどのように対応するかがわかります。
前提条件
-
コンピューティング機能が有効になっている Amazon EKS Auto Mode クラスター。クラスターの名前と AWS リージョンをメモします。
-
ネットワーキング、コンピューティング、および EKS リソースを管理するのに十分なアクセス許可を持つ、ユーザーやロールなどの IAM プリンシパル。
-
詳細については、「IAM ユーザーガイド」の「Creating roles and attaching policies in the IAM User Guide」を参照してください。
-
-
IAM ID で
aws
CLI がインストールおよび設定されている。 -
kubectl
CLI がインストールされ、クラスターに接続されている。-
詳細については、「Amazon EKS を使用するようにセットアップする」を参照してください。
-
ステップ 1: 既存のコンピューティングリソースを確認する (任意)
まず、kubectl
を使用してクラスターのノードプールを一覧表示します。
kubectl get nodepools
サンプル出力:
general-purpose
このチュートリアルでは、general-purpose
ノードプールを使用するように設定されたワークロードをデプロイします。このノードプールは EKS Auto Mode に組み込まれ、マイクロサービスやウェブアプリケーションなどの一般的なワークロードに適したデフォルトが含まれます。独自のノードプールを作成できます。詳細については、「EKS 自動モードl 用のノードプールを作成する」を参照してください。
次に、kubectl
を使用してクラスターに接続されているノードを一覧表示します。
kubectl get nodes
EKS Auto Mode クラスターを作成したばかりの場合は、ノードはありません。
このチュートリアルでは、サンプルワークロードをデプロイします。ノードがない場合、またはワークロードが既存のノードに収まらない場合、EKS Auto Mode は新しいノードをプロビジョニングします。
ステップ 2: サンプルアプリケーションをクラスターにデプロイする
次の Kubernetes デプロイを確認し、inflate.yaml
として保存します
apiVersion: apps/v1 kind: Deployment metadata: name: inflate spec: replicas: 1 selector: matchLabels: app: inflate template: metadata: labels: app: inflate spec: terminationGracePeriodSeconds: 0 nodeSelector: eks.amazonaws.com/compute-type: auto securityContext: runAsUser: 1000 runAsGroup: 3000 fsGroup: 2000 containers: - name: inflate image: public.ecr.aws/eks-distro/kubernetes/pause:3.7 resources: requests: cpu: 1 securityContext: allowPrivilegeEscalation: false
eks.amazonaws.com/compute-type: auto
セレクターでは、ワークロードを Amazon EKS Auto Mode ノードにデプロイする必要があることに注意してください。
デプロイをクラスターに適用します。
kubectl apply -f inflate.yaml
ステップ 3: Kubernetes イベントを監視する
次のコマンドを使用して、新しいノードの作成などの Kubernetes イベントを監視します。ctrl+c
を使用してイベントの監視を停止します。
kubectl get events -w --sort-by '.lastTimestamp'
kubectl
を使用して、クラスターに接続されているノードを再度一覧表示します。新しく作成されたノードをメモします。
kubectl get nodes
ステップ 4: AWS コンソールでノードとインスタンスを表示する
EKS Auto Mode ノードは EKS コンソールで表示でき、関連付けられた EC2 インスタンスは EC2 コンソールで表示できます。
EKS Auto Mode によってデプロイされた EC2 インスタンスは制限されています。EKS Auto Mode ノードで任意のコマンドを実行することはできません。
ステップ 5: デプロイを削除する
kubectl
を使用してサンプルデプロイを削除します
kubectl delete -f inflate.yaml
クラスターに他のワークロードがデプロイされていない場合、EKS Auto Mode によって作成されたノードは空になります。
デフォルト設定では、EKS Auto Mode は空のノードを 30 秒間検出し、そのノードを終了します。
kubectl
または EC2 コンソールを使用して、関連付けられたインスタンスが削除されたことを確認します。