Amazon EKS クラスターを設定する - Amazon EMR

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Amazon EKS クラスターを設定する

Amazon EKS は、独自の Kubernetes コントロールプレーンやノードをインストール、運用、 AWS 保守しなくても Kubernetes を簡単に実行できるマネージド型サービスです。以下に概説されている手順に従って、Amazon EKS でノードを持つ新しい Kubernetes クラスターを作成します。

前提条件

重要

Amazon EKS クラスターを作成する場合は、Amazon EKS クラスターが想定どおりに動作してスケールするように、事前に「Amazon EKS ユーザーガイド」に記載されている Amazon EKS VPC とサブネットの要件および考慮事項を満たしてください。

このチュートリアルを開始する前に、Amazon EKS クラスターの作成と管理に必要な次のツールとリソースをインストールおよび設定しておく必要があります。

  • の最新バージョンです。 AWS CLI

  • kubectl バージョン 1.20 以降。

  • eksctl の最新バージョン。

詳細については、「をインストールします。 AWS CLI」、「Installing kubectl」、および「eksctl をインストールする」を参照してください。

eksctl を使用して Amazon EKS クラスターを作成する

次の手順に従って、eksctl を使用して Amazon EKS クラスターを作成します。

重要

素早く開始できるように、デフォルト設定を使用して EKS クラスターとノードを作成できます。ただし、実稼働環境では、特定の要件を満たすようにクラスターとノードの設定をカスタマイズすることをお勧めします。すべての設定とオプションの一覧を表示するには、コマンド eksctl create cluster -h を実行します。詳細については、eksctl ドキュメントの「Creating and Managing Clusters」(クラスターの作成と管理) を参照してください。

  1. Amazon EC2 キーペアを作成します。

    既存のキーペアがない場合、次のコマンドを実行して、新しいキーペアを作成できます。us-west-2 は、クラスターを作成するリージョンに置き換えてください。

    aws ec2 create-key-pair --region us-west-2 --key-name myKeyPair

    返された出力は、ローカルコンピュータ上の任意のファイルに保存してください。詳細については、Linux インスタンス用の Amazon EC2 ユーザーガイド「キーペアの作成またはインポート」を参照してください。

    注記

    EKS クラスターを作成するために、キーペアは必要ありません。しかし、キーペアを指定することで、作成されたノードに SSH でアクセスできるようになります。キーペアは、ノードグループを作成するときにのみ指定できます。

  2. EKS クラスターを作成します。

    次のコマンドを実行して、EKS クラスターとノードを作成します。my-cluster and myKeyPairを独自のクラスター名とkey pair 名に置き換えます。us-west-2 は、クラスターを作成するリージョンに置き換えてください。Amazon EKS でサポートされるリージョンについては、「Amazon Elastic Kubernetes Service エンドポイントとクォータ」を参照してください。

    eksctl create cluster \ --name my-cluster \ --region us-west-2 \ --with-oidc \ --ssh-access \ --ssh-public-key myKeyPair \ --instance-types=m5.xlarge \ --managed
    重要

    EKS クラスターを作成する際は、m5.xlarge をインスタンスタイプとして使用するか、CPU とメモリがそれよりも高いその他のインスタンスタイプを使用してください。CPU またはメモリが m5.xlarge よりも低いインスタンスタイプを使用すると、クラスターで使用可能なリソースが不足することによるジョブの失敗につながる可能性があります。作成されたすべてのリソースを確認するには、AWS Cloud Formation コンソールで、eksctl-my-cluster-cluster という名前のスタックを表示します。

    クラスターとノードの作成処理には数分かかります。クラスターとノードが作成されると、出力にいくつかの行が表示されます。次の例は、出力の最後の行を示しています。

    ... [✓] EKS cluster "my-cluster" in "us-west-2" region is ready

    eksctl により、~/.kubekubectl config ファイルが作成されるか、~/.kube で既存の config ファイル内に新規クラスター設定が追加されました。

  3. リソースを表示して検証します。

    次のコマンドを実行して、クラスターノードを表示します。

    kubectl get nodes -o wide

    出力例を次に示します。

    Amazon EC2 node output NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME ip-192-168-12-49.us-west-2.compute.internal Ready none 6m7s v1.18.9-eks-d1db3c 192.168.12.49 52.35.116.65 Amazon Linux 2 4.14.209-160.335.amzn2.x86_64 docker://19.3.6 ip-192-168-72-129.us-west-2.compute.internal Ready none 6m4s v1.18.9-eks-d1db3c 192.168.72.129 44.242.140.21 Amazon Linux 2 4.14.209-160.335.amzn2.x86_64 docker://19.3.6

    詳細については、「ノードを表示する」を参照してください。

    次のコマンドを使用して、クラスターで実行されているワークロードを表示します。

    kubectl get pods --all-namespaces -o wide

    出力例を次に示します。

    Amazon EC2 output NAMESPACE NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES kube-system aws-node-6ctpm 1/1 Running 0 7m43s 192.168.72.129 ip-192-168-72-129.us-west-2.compute.internal none none kube-system aws-node-cbntg 1/1 Running 0 7m46s 192.168.12.49 ip-192-168-12-49.us-west-2.compute.internal none none kube-system coredns-559b5db75d-26t47 1/1 Running 0 14m 192.168.78.81 ip-192-168-72-129.us-west-2.compute.internal none none kube-system coredns-559b5db75d-9rvnk 1/1 Running 0 14m 192.168.29.248 ip-192-168-12-49.us-west-2.compute.internal none none kube-system kube-proxy-l8pbd 1/1 Running 0 7m46s 192.168.12.49 ip-192-168-12-49.us-west-2.compute.internal none none kube-system kube-proxy-zh85h 1/1 Running 0 7m43s 192.168.72.129 ip-192-168-72-129.us-west-2.compute.internal none none

    ここに表示される内容の詳細については、「ワークロードの表示」を参照してください。

とを使用して EKS クラスターを作成します。 AWS Management ConsoleAWS CLI

AWS Management Console AWS CLI およびを使用して EKS クラスターを作成することもできます。「Amazon EKS の使用を開始する」の手順に従ってください — AWS Management Console と AWS CLI. この手順に従うことで、EKS クラスター用に各リソースがどのように作成され、リソース間でどのようなやり取りが行われるかを把握できます。

重要

EKS クラスターのノードを作成する際は、m5.xlarge をインスタンスタイプとして使用するか、CPU とメモリがそれよりも高いその他のインスタンスタイプを使用してください。

AWS Fargateを使用して EKS クラスターを作成する

AWS Fargateでポッドが実行されている EKS クラスターを作成することもできます。

  1. Fargate で実行されるポッドで EKS クラスターを作成するには、「Amazon EKS AWS Fargate の使用開始」で説明されている手順に従ってください。

    注記

    Amazon EMR on EKS では、EKS クラスターでジョブを実行するために CoreDNS が必要です。Fargate でのみポッドを実行する場合は、「Updating CoreDNS」の手順に従う必要があります。

  2. 次のコマンドを実行して、クラスターノードを表示します。

    kubectl get nodes -o wide

    Fargate の出力例を次に示します。

    Fargate node output NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME fargate-ip-192-168-141-147.us-west-2.compute.internal Ready none 8m3s v1.18.8-eks-7c9bda 192.168.141.147 none Amazon Linux 2 4.14.209-160.335.amzn2.x86_64 containerd://1.3.2 fargate-ip-192-168-164-53.us-west-2.compute.internal Ready none 7m30s v1.18.8-eks-7c9bda 192.168.164.53 none Amazon Linux 2 4.14.209-160.335.amzn2.x86_64 containerd://1.3.2

    詳細については、「ノードを表示する」を参照してください。

  3. 次のコマンドを実行して、クラスターで実行されているワークロードを表示します。

    kubectl get pods --all-namespaces -o wide

    Fargate の出力例を次に示します。

    Fargate output NAMESPACE NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES kube-system coredns-69dfb8f894-9z95l 1/1 Running 0 18m 192.168.164.53 fargate-ip-192-168-164-53.us-west-2.compute.internal none none kube-system coredns-69dfb8f894-c8v66 1/1 Running 0 18m 192.168.141.147 fargate-ip-192-168-141-147.us-west-2.compute.internal none none

    詳細については、「ワークロードの表示」を参照してください。