翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon EKS ジョブ
ジョブは、 における作業の最小単位です AWS Batch。Amazon EKS の AWS Batch ジョブには、Kubernetesポッドへの one-to-one マッピングがあります。 AWS Batch ジョブ定義は、 AWS Batch ジョブのテンプレートです。 AWS Batch ジョブを送信するときは、ジョブ定義を参照し、ジョブキューをターゲットにして、ジョブの名前を指定します。Amazon EKS での AWS Batch ジョブのジョブ定義では、eksProperties パラメータは、Amazon EKS AWS Batch ジョブで がサポートするパラメータのセットを定義します。SubmitJob リクエストでは、eksPropertiesOverride パラメータはいくつかの一般的なパラメータの上書きを許可します。これにより、複数のジョブにジョブ定義のテンプレートを使用できます。ジョブが Amazon EKS クラスターにディスパッチされると、 はジョブ AWS Batch を podspec
() に変換しますKind: Pod
。は、いくつかの追加 AWS Batch パラメータpodspec
を使用して、ジョブが正しくスケーリングおよびスケジュールされるようにします。 AWS Batch はラベルとテイントを組み合わせて、ジョブが AWS Batch マネージドノードでのみ実行され、他のポッドがそれらのノードで実行されないようにします。
重要
-
Amazon EKS ジョブ定義で
hostNetwork
パラメータが明示的に設定されていない場合、 のポッドネットワークモードは AWS Batch デフォルトでホストモードになります。具体的には、hostNetwork=true
とdnsPolicy=ClusterFirstWithHostNet
という設定が適用されます。 -
AWS Batch は、ポッドがジョブを完了するとすぐにジョブポッドをクリーンアップします。ポッドアプリケーションログを表示するには、クラスターのロギングサービスを設定します。詳細については、CloudWatch Logs を使用して Amazon EKS ジョブにおける AWS Batch をモニタリングするを参照してください。
実行中のジョブをポッドとノードにマップします。
podProperties
実行中のジョブには podName
、nodeName
現在のジョブ試行用のパラメータが設定されています。DescribeJobs API オペレーションを使用して、これらのパラメータを表示します。
以下は出力例です。
$
aws batch describe-jobs --job 2d044787-c663-4ce6-a6fe-f2baf7e51b04
{ "jobs": [ { "status": "RUNNING", "jobArn": "arn:aws:batch:us-east-1:123456789012:job/2d044787-c663-4ce6-a6fe-f2baf7e51b04", "jobDefinition": "arn:aws:batch:us-east-1:123456789012:job-definition/MyJobOnEks_SleepWithRequestsOnly:1", "jobQueue": "arn:aws:batch:us-east-1:123456789012:job-queue/My-Eks-JQ1", "jobId": "2d044787-c663-4ce6-a6fe-f2baf7e51b04", "eksProperties": { "podProperties": { "nodeName": "ip-192-168-55-175.ec2.internal", "containers": [ { "image": "public.ecr.aws/amazonlinux/amazonlinux:2", "resources": { "requests": { "cpu": "1", "memory": "1024Mi" } } } ], "podName": "aws-batch.b0aca953-ba8f-3791-83e2-ed13af39428c" } } } ] }
再試行が有効になっているジョブの場合、完了したすべての試行nodeName
の podName
と は DescribeJobs API オペレーションのリストeksAttempts
パラメータにあります。現在実行中の podName
、nodeName
の試行の終了は podProperties
オブジェクト内にあります。
実行中のポッドをそのジョブにマップし直す方法
ポッドには、それが属するコンピューティング環境uuid
の jobId
と を示すラベルがあります。 AWS Batch は、ジョブのランタイムがジョブ情報を参照できるように環境変数を挿入します。詳細については、「AWS Batch ジョブ環境変数」を参照してください。以下のコマンドを実行すれば、この情報を見ることができる。出力は次のとおりです。
$
kubectl describe pod aws-batch.
14638eb9-d218-372d-ba5c-1c9ab9c7f2a1
-nmy-aws-batch-namespace
Name: aws-batch.14638eb9-d218-372d-ba5c-1c9ab9c7f2a1 Namespace: my-aws-batch-namespace Priority: 0 Node: ip-192-168-45-88.ec2.internal/192.168.45.88 Start Time: Wed, 26 Oct 2022 00:30:48 +0000 Labels: batch.amazonaws.com/compute-environment-uuid=5c19160b-d450-31c9-8454-86cf5b30548f batch.amazonaws.com/job-id=f980f2cf-6309-4c77-a2b2-d83fbba0e9f0 batch.amazonaws.com/node-uid=a4be5c1d-9881-4524-b967-587789094647 ... Status: Running IP: 192.168.45.88 IPs: IP: 192.168.45.88 Containers: default: Image: public.ecr.aws/amazonlinux/amazonlinux:2 ... Environment: AWS_BATCH_JOB_KUBERNETES_NODE_UID: a4be5c1d-9881-4524-b967-587789094647 AWS_BATCH_JOB_ID: f980f2cf-6309-4c77-a2b2-d83fbba0e9f0 AWS_BATCH_JQ_NAME: My-Eks-JQ1 AWS_BATCH_JOB_ATTEMPT: 1 AWS_BATCH_CE_NAME: My-Eks-CE1 ...
AWS Batch Amazon EKS ジョブがサポートする機能
これらは、Amazon EKS で実行されるKubernetesジョブにも共通する AWS Batch 特定の機能です。
KubernetesSecrets
および ServiceAccounts
AWS Batch は、 KubernetesSecrets
および の参照をサポートしていますServiceAccounts
。サービスアカウントの Amazon EKS IAM ロールを使用するようにポッドを設定できます。詳細については、Amazon EKSユーザーガイド のKubernetes サービスアカウントを使用するポッドの設定 を参照してください。