Fargate の有効化
クラスター内の Fargate で Pod をスケジュールする前に、起動時に Fargate を使用する Pod を指定する Fargate プロファイルを少なくとも 1 つ定義する必要があります。
管理者として、Fargate プロファイルを使用して、どの Pod が Fargate で実行されるかをプロファイルのセレクターを通じて宣言できます。各プロファイルには最大 5 つのセレクターを追加できます。各セレクターには名前空間とオプションのラベルが含まれます。すべてのセレクターに名前空間を定義する必要があります。ラベルフィールドは複数のオプションのキーと値のペアで構成されています。セレクターに一致する Pod は Fargate でスケジュールされます。Pod は名前空間とセレクターで指定されたラベルを使用してマッチングされます。ラベルなしで名前空間セレクターが定義されている場合、Amazon EKS はその名前空間で実行されるすべての Pod をプロファイルを使用して Fargate でスケジュールしようとします。スケジュールされる Pod が Fargate プロファイルのセレクターのいずれかに一致する場合、その Pod は Fargate でスケジュールされます。
Pod が複数の Fargate プロファイルに一致する場合、Pod に次の Kubernetes ラベルを追加することで、Pod が使用するプロファイルを指定できます:eks.amazonaws.com/fargate-profile: my-fargate-profile。Pod がそのプロファイル内のセレクターに一致している必要があり、Fargate 上でスケジュールされます。Kubernetes のアフィニティ/アンチアフィニ ティルールは Amazon EKS Fargate Pod には適用されず、必要ありません。
まず、EKS クラスターに Fargate プロファイルを追加しましょう。以下のコマンドは、次の特性を持つ checkout-profile という名前の Fargate プロファイルを作成します:
checkout名前空間内で、ラベルfargate: yesを持つ Pod をターゲットにする- Pod を VPC のプライベートサブネットに配置する
- IAM ロールを Fargate インフラストラクチャに適用して、ECR からイメージを取得したり、CloudWatch にログを書き込んだりできるようにする
次のコマンドはプロファイルを作成します。これには数分かかります:
次に、Fargate プロファイルを調査できます:
{ "fargateProfile": {"fargateProfileName": "checkout-profile",
"fargateProfileArn": "arn:aws:eks:us-west-2:1234567890:fargateprofile/eks-workshop/checkout-profile/92c4e2e3-50cd-773c-1c32-52e4d44cd0ca",
"clusterName": "eks-workshop",
"createdAt": "2023-08-05T12:57:58.022000+00:00",
"podExecutionRoleArn": "arn:aws:iam::1234567890:role/eks-workshop-fargate",
"subnets": [
"subnet-01c3614cdd385a93c",
"subnet-0e392224ce426565a",
"subnet-07f8a6fda62ec83df"
],
"selectors": [
{"namespace": "checkout",
"labels": {"fargate": "yes"
}
}
],
"status": "ACTIVE",
"tags": {}}
}