Amazon EKS 工作機會 - AWS Batch

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

Amazon EKS 工作機會

工作是中最小的工作單位 AWS Batch。Amazon EKS 上的 AWS Batch 任務具有 one-to-one 對應至Kubernetes網繭的對應。 AWS Batch 工作定義是工 AWS Batch 作的範本。當您送出 AWS Batch 工作時,您會參照工作定義、指定工作佇列的目標,以及提供工作的名稱。在 Amazon EKS 上任務的 AWS Batch 任務定義中,E ksProperties 參數定義了 Amazon EKS 任務 AWS Batch 上支持的一組參數。在SubmitJob要求中,eks PropertiesOverride 參數允許覆寫某些通用參數。如此一來,您就可以使用多個工作的工作定義範本。將任務分派到 Amazon EKS 叢集時,請將任務 AWS Batch 轉換為 podspec (Kind: Pod)。會podspec使用一些額外的 AWS Batch 參數來確保工作已正確調整比例和排程。 AWS Batch 結合標籤和污點,以確保作業僅在 AWS Batch 受管節點上執行,而且其他網繭不會在這些節點上執行。

重要
  • 如果未在 Amazon EKS 任務定義中明確設定hostNetwork參數,則處於主機模式的網繭聯網模式 AWS Batch 預設為主機模式。更具體地說,會套用下列設定:hostNetwork=truednsPolicy=ClusterFirstWithHostNet

  • AWS Batch 在網繭完成其工作後立即清除工作網繭。若要查看網繭應用程式記錄,請為您的叢集設定記錄服務。如需詳細資訊,請參閱 使用 CloudWatch 日誌監控 AWS Batch Amazon EKS 任務

將執行中的工作對應至網繭和節點

正在執行podProperties的工作具有podName為目前作業嘗試設定的nodeName參數。使用 DescribeJobsAPI 作業來檢視這些參數。

下列為範例輸出。

$ 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和都會在 DescribeJobsAPI 作業的 eksAttempts list 參數中。目前執行中嘗試nodeNamepodName和位於podProperties物件中。

如何將執行中的網繭對應回其工作

網繭具有標籤jobIduuid指出其所屬運算環境的和。 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 特定功能:

KubernetesSecretsServiceAccounts

AWS Batch 支援參考KubernetesSecretsServiceAccounts. 您可以將網繭設定為針對服務帳戶使用 Amazon EKS IAM 角色。如需詳細資訊,請參Amazon EKS 使用者指南中的設定網繭以使用Kubernetes服務帳戶。