「翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。」
Amazon EKS – AWS マネジメントコンソール および の開始方法 AWS CLI
このガイドでは、 Amazon Elastic Kubernetes Service と を使用してAmazon EKS、 (AWS マネジメントコンソール) の使用を開始するために必要なすべてのリソースを作成する方法について説明しますAWS CLI。このガイドでは、各リソースを手動で作成します。このチュートリアルの最後に、アプリケーションをデプロイできる実行中のAmazon EKSクラスターが作成されます。
このガイドの手順に従うと、各リソースがどのように作成され、リソース間でどのようにやり取りするかを全面的に把握できます。ほとんどのリソースを自動的に作成する場合は、
eksctl
CLI を使用してクラスターとノードを作成します。詳細については、「 」を参照してくださいの開始方法 Amazon EKS – eksctl
Prerequisites
このチュートリアルを開始する前に、 Amazon EKS クラスターを作成および管理するために必要な以下のツールとリソースをインストールして設定する必要があります。
-
AWS CLI – を含む AWS サービスを使用するためのコマンドラインツールAmazon EKS。このガイドでは、 バージョン 2.1.26 以降、または 1.19.7 以降を使用する必要があります。詳細については、の「AWS CLI のインストール、更新、アンインストール」を参照してくださいAWS Command Line Interface ユーザーガイド。をインストールしたらAWS CLI、設定も行うことをお勧めします。詳細については、の「aws 設定を使用したクイック設定」を参照してくださいAWS Command Line Interface ユーザーガイド。
-
kubectl
– Kubernetes クラスターを操作するためのコマンドラインツール。このガイドでは、 バージョン 1.19 以降を使用する必要があります。詳細については、「 」を参照してくださいのインストール kubectl -
必要な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 個のノード」を参照してください。
クラスターを作成するには
-
Amazon VPC 要件を満たすパブリックサブネットとプライベートサブネットAmazon EKSを持つ を作成します。
aws cloudformation create-stack \ --stack-name
my-eks-vpc-stack
\ --template-url https://s3.us-west-2.amazonaws.com/amazon-eks/cloudformation/2020-10-29/amazon-eks-vpc-private-subnets.yaml -
クラスターIAMロールを作成し、必要なAmazon EKSIAM管理ポリシーをアタッチします。Amazon EKS によって管理される Kubernetes クラスターは、ユーザーに代わって他の AWS のサービスを呼び出し、サービスで使用するリソースを管理します。
-
次の内容を という名前のファイル
にコピーします。cluster-role-trust-policy.json
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "eks.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
-
ロールを作成し、
aws iam create-role \ --role-name
myAmazonEKSClusterRole
\ --assume-role-policy-document file://"cluster-role-trust-policy.json
" -
必要な Amazon EKS 管理IAMポリシーをロールにアタッチします。
aws iam attach-role-policy \ --policy-arn arn:aws:iam::aws:policy/AmazonEKSClusterPolicy \ --role-name
myAmazonEKSClusterRole
-
-
Open the Amazon EKS console at https://console.aws.amazon.com/eks/home#/clusters
. コンソールの右上で選択したリージョンが [オレゴン] であることを確認します。そうでない場合は、リージョン名の横にあるドロップダウンを選択し米国西部 (オレゴン)us-west-2] を選択します。Amazon EKS サポートされている任意のリージョンでクラスターを作成できますが、このチュートリアルでは 米国西部 (オレゴン) us-west-2 でクラスターが作成されます。
-
[クラスターの作成] を選択します。このオプションが表示されない場合は、[Create EKS cluster (EKS クラスターの作成)] ボックスにクラスターの名前 ( など) を入力し
my-cluster
、[Next step (次のステップ)] を選択します。 -
[Configure cluster (クラスターの設定)] ページで、クラスターの名前を入力します ( など)。
[] および [] を選択します。my-cluster
myAmazonEKSClusterRole
クラスターサービスロールの 。残りの設定はデフォルト値のままにして、[次へ] を選択します。 -
[Specify networking (ネットワーキングの指定)] ページで、[
vpc-00x0000x000x0x000
|my-eks-vpc-stack-VPC
[VPC] ドロップダウンリストから選択します。残りの設定はデフォルト値のままにして、[次へ] を選択します。 -
[ログ記録の設定] ページで、[次へ] を選択します。
-
[Review and create] ページで、[Create] を選択します。
クラスター名の右側には、クラスターのプロビジョニングプロセスが完了するまで、クラスターのステータスは [Creating (作成中)] で数分間続きます。ステータスが [Active] になるまで次のステップに進まないでください。
注記 リクエスト内のアベイラビリティーゾーンのいずれかに、Amazon EKS クラスターを作成するのに十分なキャパシティーがないというエラーが表示される場合があります。この場合、エラー出力には、新しいクラスターをサポートできるアベイラビリティーゾーンが含まれます。アカウント向けにサポートされているアベイラビリティーゾーンにある 2 つ以上のサブネットを使用して、クラスターを作成します。詳細については、「容量不足」を参照してください。
ステップ 2: クラスターと通信するようにコンピュータを設定する
このセクションでは、クラスターの kubeconfig
ファイルを作成します。このファイルの設定によりkubectl
、CLI はクラスターと通信できるようになります。
クラスターと通信するようにコンピュータを設定するには
-
クラスターの
kubeconfig
ファイルを作成または更新します。必要に応じて、 を置き換えます。
クラスターを作成したリージョンに置き換えます。us-west-2
aws eks update-kubeconfig \ --region
us-west-2
\ --namemy-cluster
デフォルトでは
config
、ファイルは に作成される~/.kube
か、新しいクラスターの設定が の既存のconfig
ファイルに追加されます~/.kube
。 -
設定をテストします。
kubectl get svc
注記 その他の認可またはリソースタイプのエラーが発生した場合は、トラブルシューティングセクションの「許可されていないか、アクセスが拒否されました (kubectl)」を参照してください。
出力
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE svc/kubernetes ClusterIP 10.100.0.1 <none> 443/TCP 1m
ステップ 3: IAM OpenID Connect (OIDC) プロバイダーを作成する
ワークロードで使用される Kubernetes サービスアカウントが IAM リソースにアクセスできるように、クラスターの AWS OpenID Connect (OIDC) プロバイダーを作成します。このステップは、クラスターに対して 1 回のみ完了する必要があります。
-
[設定] タブを選択します。
-
[Details] セクションでOpenID Connect provider URL] の値をコピーします。
-
IAM コンソール (https://console.aws.amazon.com/iam/
) を開きます。 -
ナビゲーションパネルで、[ID プロバイダー] を選択します。
-
[プロバイダーの追加] を選択します。
-
[プロバイダタイプ] でOpenID Connect] を選択します。
-
[Provider URL (プロバイダー URL)] に、ステップ 2 からクラスターの OIDC プロバイダー URL を貼り付け、[Get thumbprint (サムプリントの取得)] を選択します。
-
[対象者] に
sts.amazonaws.com
「」と入力し、[プロバイダーの追加] を選択します。
ステップ 4: ノードを作成する
次のいずれかのノードタイプを使用してクラスターを作成できます。各タイプの詳細については、「」Amazon EKS 個のノードを参照してください。クラスターがデプロイされたら、他のノードタイプを追加できます。
-
Fargate – Linux – で Linux アプリケーションを実行する場合は、このタイプを選択しますAWS Fargate。
-
マネージド型ノード – Linux – インスタンスでAmazon Linuxアプリケーションを実行する場合はAmazon EC2、このタイプを選択します。このガイドでは説明していませんが、Windows のセルフマネージド型ノードと Bottlerocket ノードをクラスターに追加することもできます。すべてのワークロードが Windows であっても、クラスターには少なくとも 1 つの Linux ノードが含まれている必要があります。
作成するノードタイプの名前が付いているタブを選択します。
ステップ 5: リソースを表示する
ノードと Kubernetes ワークロードを表示できます。
ノードを表示するには
-
左側のペインで、[クラスター] を選択し、[クラスター] のリストで、作成したクラスターの名前 ( など) を選択します。
my-cluster
. -
[Overview (概要)] タブに、クラスターにデプロイされたノードのリストが表示されます。ノードの名前を選択すると、そのノードの詳細情報を表示できます。ここで表示される内容の詳細については、「」View ノードを参照してください。
-
クラスターの [Workloads (ワークロード)] タブに、デフォルトで Amazon EKS クラスターにデプロイされるワークロードのリストが表示されます。ワークロードの名前を選択して、詳細を表示できます。ここで表示される内容の詳細については、「」ワークロードの表示を参照してください。
ステップ 6: クラスターとノードを削除する
このチュートリアルで作成したクラスターとノードを使い終わったら、クラスターとノードを削除してクリーンアップする必要があります。このクラスターをクリーンアップする前にさらに操作を実行する場合は、「」次のステップを参照してください。
クラスターとノードを削除するには
-
すべてのノードグループとFargateプロファイルを削除します。
-
Open the Amazon EKS console at https://console.aws.amazon.com/eks/home#/clusters
. -
左側のナビゲーションで [クラスター] を選択し、クラスターのリストで、削除するクラスターの名前を選択します。
-
[設定] タブを選択します。[コンピューティング] タブで、以下を選択します。
-
前のステップで作成したノードグループ。[削除] を選択します。ノードグループの名前を入力し、[Delete (削除)] を選択します。
-
前のステップで作成した Fargate [プロファイル] で、[削除] を選択します。プロファイルの名前を入力し、[Delete (削除)] を選択します。
-
-
-
クラスターを削除します。
-
Open the Amazon EKS console at https://console.aws.amazon.com/eks/home#/clusters
. -
削除するクラスターを選択し、[Delete (削除)] を選択します。
-
クラスターの削除確認画面で、[Delete (削除)] を選択します。
-
-
このガイドで作成した VPC AWS CloudFormation スタックを削除します。
-
で AWS CloudFormation コンソールを開きます。。https://console.aws.amazon.com/cloudformation
-
削除する VPC スタックを選択し、[削除] を選択します。
-
[スタックの削除] 確認画面で、[スタックの削除] を選択します。
-
-
作成したIAMロールを削除します。
-
IAM コンソール (https://console.aws.amazon.com/iam/
) を開きます。 -
左のナビゲーションペインで、[ロール] を選択します。
-
を選択します。
myAmazonEKSClusterRole
リストから 。[ロールの削除] を選択し、[はい、削除する] を選択します。の削除myAmazonEKSFargatePodExecutionRole
、、またはmyAmazonEKSNodeRole
作成した ロールとmyAmazonEKSCNIRole
ロール (作成した場合には )。
-
次のステップ
ノードを使用する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 ノードをテストします。
-
クラスターの管理 – クラスターを管理するための重要なツールの使用方法について説明します。