Amazon EKS ジョブ - AWS Batch

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

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=truednsPolicy=ClusterFirstWithHostNet という設定が適用されます。

  • AWS Batch は、ポッドがジョブを完了するとすぐにジョブポッドをクリーンアップします。ポッドアプリケーションログを表示するには、クラスターのロギングサービスを設定します。詳細については、CloudWatch Logs を使用して Amazon EKS ジョブにおける AWS Batch をモニタリングするを参照してください。

実行中のジョブをポッドとノードにマップします。

podProperties 実行中のジョブには podNamenodeName 現在のジョブ試行用のパラメータが設定されています。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" } } } ] }

再試行が有効になっているジョブの場合、完了したすべての試行nodeNamepodNameと は DescribeJobs API オペレーションのリストeksAttemptsパラメータにあります。現在実行中の podNamenodeName の試行の終了は podProperties オブジェクト内にあります。

実行中のポッドをそのジョブにマップし直す方法

ポッドには、それが属するコンピューティング環境uuidjobIdと を示すラベルがあります。 AWS Batch は、ジョブのランタイムがジョブ情報を参照できるように環境変数を挿入します。詳細については、「AWS Batch ジョブ環境変数」を参照してください。以下のコマンドを実行すれば、この情報を見ることができる。出力は次のとおりです。

$ kubectl describe pod aws-batch.14638eb9-d218-372d-ba5c-1c9ab9c7f2a1 -n my-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 サービスアカウントを使用するポッドの設定 を参照してください。