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

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

注記

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

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

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

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

  • ポッド実行ロール – クラスターが にポッドを作成するときAWS Fargate、 kubelet インフラストラクチャで実行されている Fargate は、ユーザーに代わって AWS APIs を呼び出す必要があります (たとえば、 からコンテナイメージをプルするなどAmazon ECR)。Amazon EKS ポッド実行ロールは、これを行うための IAM アクセス許可を提供します。

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

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

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

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

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

Fargate プロファイルの作成

このトピックでは、Fargate プロファイルの作成について説明します。。AWS Fargate with Amazon EKSは、中国 (北京)、中国 (寧夏)、AWS GovCloud (米国東部)、AWS GovCloud (US-West) を除くすべての Amazon EKS リージョンで使用できます。また、Fargate プロファイルに使用するポッド実行ロールを作成しておく必要があります。詳細については、「 」を参照してくださいポッド実行ロール Fargate で実行されているポッドは、プライベートサブネットでのみサポートされます (AWS のサービスへの NAT ゲートウェイアクセスがありますが、インターネットゲートウェイへの直接ルートはありません)。そのため、クラスターの VPC にはプライベートサブネットを使用できる必要があります。eksctl または を使用してプロファイルを作成できますAWS マネジメントコンソール。Fargate プロファイルを作成するツールの名前が付いているタブを選択します。

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

eksctl version

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

eksctl

を使用してFargateプロファイルを作成するには eksctl

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

eksctl create fargateprofile --cluster <cluster_name> --name <fargate_profile_name> --namespace <kubernetes_namespace> --labels <key=value>
AWS マネジメントコンソール

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

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

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

  3. [設定] タブの [コンピューティング] タブをクリックします。

  4. [ Fargate プロファイル] で、[プロファイルFargateの追加] を選択します。

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

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

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

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

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

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

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

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

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

Fargate プロファイルの削除

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

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

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

eksctl、、AWS マネジメントコンソールまたは を使用してプロファイルを削除できますAWS CLI。プロファイルの削除に使用するツールの名前が付いているタブを選択します。

eksctl

次のコマンドを使用して、クラスターからプロファイルを削除します。の置き換え <example values> ( を含む <>) を選択します。

eksctl delete fargateprofile --name <my-profile> --cluster <my-cluster>
AWS マネジメントコンソール

を使用してクラスターからFargateプロファイルを削除するには AWS マネジメントコンソール

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

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

  3. [設定] タブを選択し、[コンピューティング] タブを選択します。

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

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

AWS CLI

次のコマンドを使用して、クラスターからプロファイルを削除します。の置き換え <example values> ( を含む <>) を選択します。

aws eks delete fargateprofile --faragate-profile-name <my-profile> --cluster-name <my-cluster>