Amazon EKS の開始方法 – eksctl
このガイドでは、Amazon EKS 上に Kubernetes クラスターを作成および管理するためのシンプルなコマンドラインユーティリティである eksctl
を使用して、Amazon Elastic Kubernetes Service (Amazon EKS) の開始に必要なリソースのすべてを作成する方法を解説していきます。このチュートリアルの終わりには、アプリケーションのデプロイが可能な、実行状態の Amazon EKS クラスターが完成します。
AWS Management Console からクラスターを作成する場合には手動で作成する必要のあるリソースのいくつかが、このガイドの手順に従うことで自動的に作成されます。リソース間での連携方法について良く理解するために、大半のリソースを手動で作成する場合には、クラスターと計算機能の作成に AWS Management Console を使用します。詳細については、「Amazon EKS の開始方法 – AWS Management Console と AWS CLI」を参照してください。
前提条件
このチュートリアルを開始する前に、Amazon EKS クラスターの作成と管理に必要な次のツールとリソースを、インストールおよび設定しておく必要があります。
-
kubectl
- Kubernetes クラスターを操作するためのコマンドラインツール。このガイドでは、バージョン1.26
以降の使用を想定しています。詳細については、「kubectl のインストールまたは更新」を参照してください。 -
eksctl
– EKS クラスターで多くの個別のタスクを自動化するために使用するコマンドラインツール。このガイドでは、バージョン0.138.0
以降の使用を想定しています。詳細については、「eksctl のインストールまたは更新」を参照してください。 -
必要な IAM 許可 – 使用している IAM セキュリティプリンシパルには、Amazon EKS の IAM ロール、サービスにリンクされたロール、AWS CloudFormation、VPC、その関連リソースを操作するための権限が必要になります。詳細については、「IAM ユーザーガイド」の「Amazon Elastic Container Service for Kubernetes のアクション、リソース、および条件キー」、および「サービスにリンクされたロールの使用」を参照してください。このガイドのすべての手順は、1 つのユーザーとして実行する必要があります。現在のユーザーを確認するには、次のコマンドを実行します。
aws sts get-caller-identity
ステップ 1: Amazon EKS クラスターとノードを作成する
重要
可能な限りシンプルかつ迅速に使用を開始するため、このトピックでは、クラスターとノードをデフォルト設定で作成する手順について説明します。実稼働で使用するクラスターとノードを作成する際には、すべての設定内容に習熟した上で、ご自身の要件を満たす設定でクラスターとノードをデプロイし直すことをお勧めします。詳細については、Amazon EKS クラスターの作成 および Amazon EKS ノード を参照してください。一部の設定は、クラスターとノードの作成時にのみ有効にできます。
クラスターの作成には、次のいずれかのノードタイプが使用できます。各タイプの詳細については、「Amazon EKS ノード」を参照してください。クラスターをデプロイした後に、他のノードタイプを追加できます。
-
Fargate - Linux - AWS Fargate で Linux アプリケーションを実行する場合は、このタイプのノードを選択します。Fargate は、Amazon EC2 インスタンスを管理せずに Kubernetes pods をデプロイできるサーバーレスコンピューティングエンジンです。
-
マネージド型ノード - Linux - Amazon EC2 インスタンスで Amazon Linux アプリケーションを実行する場合は、このタイプのノードを選択します。このガイドでは説明しませんが、Windows セルフマネージド型ノードと Bottlerocket ノードをクラスターに追加することもできます。
次のコマンドを使用して、Amazon EKS クラスターを作成します。
は独自の値に置き換えることができます。この名前には、英数字 (大文字と小文字が区別されます) とハイフンのみを使用できます。先頭の文字はアルファベット文字である必要があります。また、100 文字より長くすることはできません。my-cluster
を Amazon EKS でサポートされている AWS リージョン に置き換えます。AWS リージョン の一覧については、AWS 全般的なリファレンスガイドの Amazon EKS エンドポイントとクォータ を参照してください。region-code
クラスターの作成には数分かかります。作成中に、数行の出力が表示されます。出力の最後の行は、次のサンプル行のようになります。
...
[✓] EKS cluster "my-cluster" in "region-code
" region is ready
eksctl
により、~/.kube
内に kubectl
の config
ファイルが作成されるか、コンピュータ上の ~/.kube
内に既存の config
ファイルの中に新しいクラスター設定が追加されます。
クラスターの作成が完了したら、AWS CloudFormation コンソール (https://console.aws.amazon.com/cloudformationeksctl-
という名前の AWS CloudFormation スタックを表示して、作成されたすべてのリソースを確認します。my-cluster
-cluster
ステップ 2: Kubernetes リソースの表示
-
クラスターノードを表示します。
kubectl get nodes -o wide
出力例を次に示します。
出力に表示される内容の詳細については、「Kubernetes リソースを表示する」を参照してください。
-
クラスターで実行されているワークロードを表示します。
kubectl get pods -A -o wide
出力例を次に示します。
出力に表示される内容の詳細については、「Kubernetes リソースを表示する」を参照してください。
ステップ 3: クラスターとノードを削除する
このチュートリアルのために作成したクラスターとノードの使用が終了したら、クリーンアップのために、次のコマンドを使用してそれらのクラスターとノードを削除する必要があります。クリーンアップせずに、他の目的でこのクラスターを使用する場合は、「次のステップ」を参照してください。
eksctl delete cluster --name
my-cluster
--regionregion-code
次のステップ
以下のトピックは、クラスターの機能を拡張するのに役立ちます。
サンプルアプリケーションをクラスターにデプロイします。
クラスターを作成した IAM プリンシパルは、
kubectl
または AWS Management Console を使用して Kubernetes API サーバーを呼び出すことができる唯一のプリンシパルです。他の IAM プリンシパルがクラスターにアクセスできるようにする場合は、それらを追加する必要があります。詳細については、クラスターに対する IAM プリンシパルのアクセスの有効化 および 必要なアクセス許可 を参照してください。本番用にクラスターをデプロイする前に、クラスターとノードのすべての設定を理解しておくことをお勧めします。Amazon EC2 ノードへの SSH アクセスの有効化など一部の設定は、クラスターの作成時に行う必要があります。
クラスターのセキュリティを強化するには、サービスアカウントの IAM ロールを使用する Amazon VPC コンテナネットワークインターフェイスプラグインの設定を行ってください。