の開始方法 Amazon EKS – eksctl - Amazon EKS

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

の開始方法 Amazon EKS – eksctl

このガイドでは、 で Kubernetes クラスターを作成および管理するためのシンプルなコマンドラインユーティリティである を使用してAmazon Elastic Kubernetes Service、 Amazon EKS (eksctl) の使用を開始するために必要なすべてのリソースを作成する方法について説明しますAmazon EKS。このチュートリアルの最後に、アプリケーションをデプロイできる実行中のAmazon EKSクラスターが作成されます。

このガイドの手順では、 を使用してクラスターを作成するときに手動で作成する必要がある複数のリソースを自動的に作成しますAWS マネジメントコンソール。ほとんどのリソースを手動で作成して、リソース間のやり取りの方法をよりよく理解する場合は、 を使用してクラスターとコンピューティングAWS マネジメントコンソールを作成します。詳細については、「 」を参照してください。Amazon EKS – AWS マネジメントコンソール および の開始方法 AWS CLI.

Prerequisites

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

  • kubectl – Kubernetes クラスターを操作するためのコマンドラインツール。このガイドでは、 バージョン 1.19 以降を使用する必要があります。詳細については、「 」を参照してください。のインストール kubectl.

  • eksctl – 多数の個々のタスクを自動化する EKS クラスターを操作するためのコマンドラインツール。このガイドでは、 バージョン 0.43.0 以降を使用する必要があります。詳細については、「 」を参照してください。eksctl コマンドラインユーティリティ.

  • 必要なIAMアクセス許可 – 使用しているIAMセキュリティプリンシパルには、 Amazon EKS IAM ロールとサービスにリンクされたロールAWS CloudFormation、、および VPC および関連リソースを操作するためのアクセス許可が必要です。詳細については、の Amazon Elastic Container Service for Kubernetesアクション、リソース、および条件キー」および「サービスにリンクされたロールhttps://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.htmlの使用」を参照してくださいIAM ユーザーガイド。このガイドのすべてのステップを同じユーザーとして完了する必要があります。

ステップ 1: Amazon EKS クラスターとノードを作成する

クラスターとノードを作成します。

重要

できるだけシンプルで迅速に開始できるように、このトピックには、デフォルト設定でクラスターとノードを作成するステップが含まれています。本稼働環境で使用するクラスターとノードを作成する前に、すべての設定に精通し、要件に合った設定でクラスターとノードをデプロイすることをお勧めします。詳細については、「Amazon EKS クラスターの作成」および「Amazon EKS 個のノード.」を参照してください。

次のいずれかのノードタイプを使用してクラスターを作成できます。各タイプの詳細については、「」Amazon EKS 個のノードを参照してください。クラスターがデプロイされたら、他のノードタイプを追加できます。

  • Fargate – Linux で Linux アプリケーションを実行する場合は、このタイプのノード–を選択しますAWS Fargate。

  • マネージド型ノード – Linux – インスタンスでAmazon Linuxアプリケーションを実行する場合は、このタイプのノードAmazon EC2を選択します。このガイドでは説明しませんが、Windows のセルフマネージド型ノードと Bottlerocket ノードをクラスターに追加することもできます。すべてのワークロードが Windows であっても、クラスターには少なくとも 1 つの Linux ノードが含まれている必要があります。

クラスターを作成するノードタイプの名前が付いているタブを選択します。

Fargate – Linux

Fargate Linux ノードを使用してクラスターを作成するには

  1. 次のコマンドを使用して、 Amazon EKS と AWS Fargate プロファイルポッド実行ロールクラスターを作成します。を独自の値my-clusterに置き換えます。Amazon EKS サポートされている任意のリージョンでクラスターを作成できますが、このチュートリアルでは 米国西部 (オレゴン) us-west-2 でクラスターが作成されます。

    eksctl create cluster \ --name my-cluster \ --region us-west-2 \ --fargate

    前のコマンドは、主にデフォルト設定を使用してクラスターとFargateプロファイルを作成します。作成が完了したら、 eksctl-<my-cluster>-cluster コンソールAWS CloudFormationで という名前のスタックを表示して、作成されたすべてのリソースを確認します。すべての設定とオプションのリストを表示するには、「」と入力しますeksctl create cluster -h。 すべての設定とオプションに関するドキュメントについては、 ドキュメントのhttps://eksctl.io/usage/creating-and-managing-clusters/「クラスターの作成と管理eksctl」を参照してください。

    出力

    クラスターとFargateプロファイルが作成されると、数行の出力が表示されます。作成には数分かかります。出力の最後の行は、次のサンプル行のようになります。

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

    ノードがクラスターに参加できない場合は、トラブルシューティングガイドの「ノードがクラスターに参加できない」を参照してください。

    eksctlkubectlconfigファイルを作成~/.kube、または の既存のconfigファイル内に新しいクラスターの設定を追加~/.kube

  2. 設定をテストします。

    kubectl get svc

    出力

    NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE svc/kubernetes ClusterIP 10.100.0.1 <none> 443/TCP 1m
Managed nodes – Linux

Amazon EC2 Linux マネージド型ノードでクラスターを作成するには

  • クラスターと Linux マネージド型ノードグループを作成します。を独自の値my-clusterに、 をus-west-2Amazon EKSサポートされている任意のリージョンhttps://docs.aws.amazon.com/general/latest/gr/eks.html#eks_regionに置き換えます。アフリカ (ケープタウン)、、、アジアパシフィック (香港)ヨーロッパ (ミラノ)または 中東 (バーレーン) リージョンにデプロイする場合は、 アカウントに対してエンドポイントを有効にする必要があります。詳細については、「AWS STS リージョンでの AWS のアクティブ化と非アクティブ化.」を参照してください。エンドポイントは、他のすべてのリージョンでデフォルトで有効になっています。

    を置き換える <your-key> ( を含む) <>) を選択します。キーペアがない場合は、次のコマンドを使用してキーペアを作成できます。必要に応じて、クラスターを作成するus-west-2リージョンに変更します。戻り出力は、ローカルコンピュータのファイルに保存します。詳細については、「 でのキーペアhttps://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html#prepare-key-pairの作成またはインポート」を参照してくださいLinux インスタンス用 Amazon EC2 ユーザーガイド。

    このガイドではキーは必須ではありませんが、指定できるのはノードグループの作成時に使用するキーのみです。キーを指定すると、作成後にノードに SSH 接続できます。コマンドを実行するには、 AWS CLI バージョン 2.1.26 以降 1.19.7 以降が必要です。詳細については、の「AWS CLI のインストール、更新、アンインストール」を参照してくださいAWS Command Line Interface ユーザーガイド。

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

    次のコマンドを使用して、クラスターとノードを作成します。Amazon EKS サポートされている任意のリージョンでクラスターを作成できますが、このチュートリアルでは 米国西部 (オレゴン) us-west-2 でクラスターが作成されます。

    eksctl create cluster \ --name my-cluster \ --region us-west-2 \ --with-oidc \ --ssh-access \ --ssh-public-key <your-key> \ --managed

    前のコマンドは、主にデフォルト設定を使用してノードを含むクラスターを作成しますAmazon EKS。作成されたすべてのリソースを表示するには、 eksctl-<my-cluster>-cluster コンソール () AWS CloudFormation で という名前のスタックを表示しますhttps://console.aws.amazon.com/cloudformation。すべての設定とオプションのリストを表示するには、「」と入力しますeksctl create cluster -h。 すべての設定とオプションに関するドキュメントについては、 ドキュメントのhttps://eksctl.io/usage/creating-and-managing-clusters/「クラスターの作成と管理eksctl」を参照してください。

    出力

    クラスターとノードが作成されると、数行の出力が表示されます。クラスターとノードの作成には数分かかります。出力の最後の行は、次のサンプル行のようになります。

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

    eksctl が にkubectlconfigファイルを作成する~/.kubeか、 の既存のconfigファイル内に新しいクラスターの設定を追加しました~/.kube

ステップ 2: リソースを表示する

  1. クラスターノードを表示します。

    kubectl get nodes -o wide

    Amazon EC2 ノード出力

    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

    Fargate ノード出力

    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

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

  2. クラスターで実行されているワークロードを表示します。

    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>

    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>

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

ステップ 3: クラスターとノードを削除する

このチュートリアル用に作成したクラスターとノードを使い終わったら、クラスターとノードを削除してクリーンアップする必要があります。このクラスターをクリーンアップする前にさらに操作を実行する場合は、「」次のステップを参照してください。

クラスターとノードを削除します。

eksctl delete cluster --name my-cluster --region us-west-2

次のステップ

ノードを含むAmazon EKSクラスターが機能するようになったので、Kubernetes アドオンのインストールとクラスターへのアプリケーションのデプロイを開始できます。以下のトピックは、クラスターの機能を拡張するのに役立ちます。

  • クラスターを作成した IAM エンティティ (ユーザーまたはロール) は、管理者 (system:masters アクセス許可を持つ) として Kubernetes RBAC 認証テーブルに追加されます。最初は、その IAM ユーザーのみが kubectl を使用して Kubernetes API サーバーを呼び出すことができます。他のユーザーにクラスターへのアクセスを許可する場合は、そのユーザーを aws-auth ConfigMap に追加する必要があります。詳細については、「クラスターのユーザーまたは IAM ロールの管理」を参照してください。

  • IMDS へのアクセスを制限する – すべての Kubernetes サービスアカウントに IAM ロールを割り当てて、ポッドが必要最小限のアクセス許可のみを持つようにする計画の場合、クラスター内のいずれのポッドにも、Amazon EC2 インスタンスメタデータサービス (IMDS) へのアクセスを必要とする他の理由 (現在のリージョンを取得するなど) がなければ、IMDS へのポッドアクセスをブロックすることをお勧めします。詳細については、「IAMサービスアカウントの ロール」および「IMDS および Amazon EC2 インスタンスプロファイルの認証情報へのアクセスの制限」を参照してください。

  • Cluster Autoscaler – ノードグループ内のノード数を自動的に調整するように Kubernetes Cluster Autoscaler を設定します。

  • Linux ワークロードのサンプルをデプロイする – サンプルの Linux アプリケーションをデプロイして、クラスターと Linux ノードをテストします。

  • クラスターの管理 – クラスターを管理するための重要なツールの使用方法について説明します。