AWS Fargate プロファイル - Amazon EKS

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

AWS Fargate プロファイル

クラスターの Fargate でポッドをスケジュールする前に、起動時に Fargate を使用するポッドを指定する Fargate プロファイルを少なくとも 1 つ定義する必要があります。

Fargate プロファイルにより、管理者はFargate でどのポッドが実行されるかを宣言できます。この宣言は、プロファイルのセレクターを介して行われます。各プロファイルには、名前空間とオプションのラベルを含むセレクターを 5 つまで設定できます。すべてのセレクターに名前空間を定義する必要があります。ラベルフィールドは、複数のオプションのキーと値のペアで構成されます。セレクターと一致するポッド (セレクターの名前空間とセレクターで指定されたすべてのラベルを照合することによって) は、Fargate でスケジュールされます。名前空間セレクターがラベルなしで定義されている場合、Amazon EKS は、プロファイルを使用して、その名前空間で実行されるすべてのポッドを Fargate にスケジュールしようとします。スケジュールされるポッドが Fargate プロファイル内のいずれかのセレクターと一致する場合、そのポッドは Fargate にスケジュールされます。

ポッドが複数の Fargate プロファイルに一致する場合、Amazon EKS は一致するものの 1 つをランダムに選択します。この場合、ポッド仕様に次の Kubernetes ラベルを追加することで、ポッドが使用するプロファイルを指定できます。eks.amazonaws.com/fargate-profile: <profile_name>。 ただし、ポッドを にスケジュールするには、そのプロファイル内のセレクターと一致させる必要がありますFargate。

Fargate プロファイルを作成するときは、プロファイルを使用して Fargate で実行するポッドの、ポッド実行ロールを指定する必要があります。このロールは承認のためにクラスターの Kubernetes ロールベースアクセス制御 (RBAC) に追加され、Fargate インフラストラクチャで実行されている kubelet が Amazon EKS クラスターに登録され、ノードとしてクラスターに表示されるようにします。ポッド実行ロールは、また、Amazon ECR イメージリポジトリへの読み取りアクセスを許可する IAM アクセス権限を Fargate インフラストラクチャに提供します。詳細については、を参照してください ポッド実行ロール

Fargate プロファイルは変更不可能です。ただし、新しい更新されたプロファイルを作成して既存のプロファイルを置き換え、更新されたプロファイルの作成が完了した後に元のプロファイルを削除することはできます。

注記

Fargate プロファイルを使用して実行中のポッドは、プロファイルが削除されると停止され、保留状態になります。

クラスターのいずれかの Fargate プロファイルが DELETING ステータスである場合は、その Fargate プロファイルの削除が完了するのを待ってから、そのクラスターに他のプロファイルを作成する必要があります。

Fargate プロファイルのコンポーネント

Fargate プロファイルには、次のコンポーネントが含まれています。

{ "fargateProfileName": "", "clusterName": "", "podExecutionRoleArn": "", "subnets": [ "" ], "selectors": [ { "namespace": "", "labels": { "KeyName": "" } } ], "clientRequestToken": "", "tags": { "KeyName": "" } }
ポッド実行ロール

クラスターが AWS Fargate でポッドを作成する場合、ポッドはユーザーに代わって を呼び出す必要がありますAWS。たとえば、 からコンテナイメージをプルします。APIsAmazon ECRAmazon EKS ポッド実行ロールは、これを行うための IAM アクセス許可を提供します。

Fargate プロファイルを作成するときは、ポッドで使用するポッド実行ロールを指定する必要があります。このロールは、承認のためにクラスターの Kubernetes ロールベースアクセス制御 (RBAC) に追加され、Fargate インフラストラクチャで実行されている kubelet が Amazon EKS クラスターに登録され、ノードとしてクラスターに表示されるようにします。詳細については、を参照してください ポッド実行ロール

Subnets

このプロファイルを使用するポッドを起動するサブネットIDsの 。現時点では、Fargate で実行されているポッドにはパブリック IP アドレスが割り当てられないため、このパラメータにはプライベートサブネット (インターネットゲートウェイへの直接ルートなし) のみが受け入れられます。

セレクター

この Fargate プロファイルを使用するためにポッドに一致するセレクター。各セレクターには名前空間が関連付けられている必要があります。必要に応じて、名前空間のラベルを指定することもできます。1 つの Fargate プロファイルに最大 5 つのセレクターを指定できます。ポッドは、Fargate プロファイルを使用して実行するセレクターを 1 つのみ一致させる必要があります。

名前空間

セレクターの名前空間を指定する必要があります。セレクターは、この名前空間で作成されたポッドのみに一致しますが、複数のセレクターを作成して複数の名前空間をターゲットにすることができます。

ラベル

オプションで、セレクターに一致する Kubernetes ラベルを指定できます。セレクターは、セレクターで指定されているすべてのラベルを持つポッドのみに一致します。

Fargate プロファイルの作成

このトピックでは、Fargate プロファイルの作成について説明します。クラスターが Fargate をサポートしている必要があります (Kubernetes バージョン 1.14 および プラットフォームバージョン以降eks.5)。また、Fargate プロファイルに使用するポッド実行ロールを作成しておく必要があります。詳細については、を参照してください ポッド実行ロール。Fargate で実行されているポッドは、プライベートサブネットでのみサポートされます (AWS のサービスへの NAT ゲートウェイアクセスがありますが、インターネットゲートウェイへの直接ルートはありません)。そのため、クラスターの VPC にはプライベートサブネットを使用できる必要があります。eksctlまたは を使用してプロファイルを作成できますAWS マネジメントコンソール

eksctl でクラスターの Fargate プロファイルを作成するには

この手順には、eksctl バージョン 0.31.0-rc.0 以降が必要です。お使いのバージョンは、以下のコマンドを使用して確認できます。

eksctl version

eksctl のインストールまたはアップグレードの詳細については、eksctl のインストールまたはアップグレード を参照してください。

  • 次のコマンドを使用してFargateプロファイルを作成します<variable text>。 は独自の値に置き換えます。eksctl名前空間を指定する必要がありますが、labels オプションは必須ではありません。

    eksctl create fargateprofile --cluster <cluster_name> --name <fargate_profile_name> --namespace <kubernetes_namespace> --labels <key=value>

AWS マネジメントコンソール でクラスターの Fargate プロファイルを作成するには

  1. Open the Amazon EKS console at https://console.aws.amazon.com/eks/home#/clusters.

  2. Fargate プロファイルを作成するクラスターを選択します。

  3. [Fargate profiles (Fargate プロファイル)] で、[Add profile (Fargate プロファイルの追加)] を選択します。

  4. [Configure Fargate profile (Fargate プロファイルの設定] ページで、以下の情報を入力し、[Next (次へ)] を選択します。

    1. [Name (名前)] に Fargate プロファイルの一意の名前を入力します。

    2. [Pod execution role (ポッド実行ロール)] で、Fargate プロファイルで使用するポッド実行ロールを選択します。eks-fargate-pods.amazonaws.com サービスプリンシパルを持つ IAM ロールのみが表示されます。ここにロールが表示されない場合は、ロールを作成する必要があります。詳細については、を参照してください ポッド実行ロール

    3. [Subnets (サブネット)] で、ポッドに使用するサブネットを選択します。デフォルトでは、クラスターの VPC 内のすべてのサブネットが選択されます。Fargate で実行されているポッドでは、プライベートサブネットのみがサポートされるため、パブリックサブネットの選択を解除する必要があります。

    4. [Tags (タグ)] では、オプションで Fargate プロファイルにタグを付けることができます。これらのタグは、ポッドなど、プロファイルに関連付けられた他のリソースには伝達されません。

  5. [Configure pods selection (ポッドの設定)] ページで、以下の情報を入力し、[Next (次へ)] を選択します。

    1. [Namespace (名前空間)] に、kube-systemdefault など、ポッドと照合する名前空間を入力します。

    2. (オプション) 指定された名前空間のポッドがセレクタと一致する必要があるセレクタに Kubernetes ラベルを追加します。たとえば、infrastructure: fargate ラベルをセレクタに追加して、指定した名前空間に存在し、なおかつinfrastructure: fargate Kubernetes ラベルを持つポッドのみがセレクタに一致するようにできます。

  6. [Review and create (確認と作成)] ページで、Fargate プロファイルの情報を確認し、[Create (作成)] を選択します。

Fargate プロファイルの削除

このトピックでは、Fargate プロファイルを削除する方法について説明します。

Fargate プロファイルを削除すると、そのプロファイルで Fargate にスケジュールされていたポッドはすべて削除されます。これらのポッドが別の Fargate プロファイルと一致する場合、それらのポッドはそのプロファイルで Fargate にスケジュールされます。Fargate プロファイルがどのプロファイルとも一致しなくなった場合は、Fargate へのスケジュールは行われず、保留中のままになる可能性があります。

一度にクラスター内の 1 つの Fargate プロファイルのみが、 DELETING ステータスになることができます。そのクラスター内の他のプロファイルを削除する前に、Fargate プロファイルの削除が完了するまで待つ必要があります。

クラスターから Fargate プロファイルを削除するには

  1. Open the Amazon EKS console at https://console.aws.amazon.com/eks/home#/clusters.

  2. Fargate プロファイルを削除するクラスターを選択します。

  3. 削除する Fargate プロファイルを選択し、[Delete (削除)] を選択します。

  4. [削除<cluster_name>] ページで、クラスターの名前を入力し、[削除の確認] を選択します。