任务治理设置 - Amazon SageMaker AI

任务治理设置

此部分包括有关如何设置 Amazon SageMaker HyperPod 任务治理 EKS 加载项的信息。这包括授予权限,以允许您设置任务优先级、团队的计算资源分配、空闲计算资源的共享方式以及团队的任务抢占。

如果您在设置时遇到问题,请参阅故障排除以获取已知的故障排除解决方案。

Kueue 设置

HyperPod 任务治理 EKS 加载项安装适用于 HyperPod EKS 集群的 Kueue。Kueue 是一个 kubernetes 原生系统,用于管理配额以及作业对配额的使用方式。

EKS HyperPod 任务治理加载项版本 作为加载项的一部分安装的 Kueue 版本

v1.1.3

v0.12.0

注意

Kueue v.012.0 及更高版本的安装不包含 kueue-rbac-proxy。早期版本的安装可能包含 kueue-rbac-proxy。例如,如果您使用的是 Kueue v0.8.1,则您可能已安装 kueue-rbac-proxy v0.18.1。

HyperPod 任务治理利用 Kueue 执行 Kubernetes 原生作业排队、调度和配额管理,并且随 HyperPod 任务治理 EKS 加载项一同安装。安装后,HyperPod 会创建和修改 SageMaker AI 管理的 Kubernetes 资源,例如 KueueManagerConfigClusterQueuesLocalQueuesWorkloadPriorityClassesResourceFlavorsValidatingAdmissionPolicies。虽然 Kubernetes 管理员可以灵活地修改这些资源的状态,但对 SageMaker AI 管理的资源所做的所有更改都可能被该服务更新和覆盖。

以下信息概述了 HyperPod 任务治理加载项用来设置 Kueue 的配置设置。

apiVersion: config.kueue.x-k8s.io/v1beta1 kind: Configuration health: healthProbeBindAddress: :8081 metrics: bindAddress: :8443 enableClusterQueueResources: true webhook: port: 9443 manageJobsWithoutQueueName: false leaderElection: leaderElect: true resourceName: c1f6bfd2.kueue.x-k8s.io controller: groupKindConcurrency: Job.batch: 5 Pod: 5 Workload.kueue.x-k8s.io: 5 LocalQueue.kueue.x-k8s.io: 1 ClusterQueue.kueue.x-k8s.io: 1 ResourceFlavor.kueue.x-k8s.io: 1 clientConnection: qps: 50 burst: 100 integrations: frameworks: - "batch/job" - "kubeflow.org/mpijob" - "ray.io/rayjob" - "ray.io/raycluster" - "jobset.x-k8s.io/jobset" - "kubeflow.org/mxjob" - "kubeflow.org/paddlejob" - "kubeflow.org/pytorchjob" - "kubeflow.org/tfjob" - "kubeflow.org/xgboostjob" - "pod" - "deployment" - "statefulset" - "leaderworkerset.x-k8s.io/leaderworkerset" podOptions: namespaceSelector: matchExpressions: - key: kubernetes.io/metadata.name operator: NotIn values: [ kube-system, kueue-system ] fairSharing: enable: true preemptionStrategies: [LessThanOrEqualToFinalShare, LessThanInitialShare] resources: excludeResourcePrefixes: []

有关每个配置条目的更多信息,请参阅 Kueue 文档中的配置

HyperPod 任务治理先决条件

HyperPod 任务治理设置

下文提供了有关如何设置 HyperPod 任务治理的信息。

Setup using the SageMaker AI console

下文提供了有关如何使用 SageMaker HyperPod 控制台设置 HyperPod 任务治理的信息。

如果您已在HyperPod Amazon CloudWatch 可观测性 EKS 加载项设置中获得相关权限,能够通过 SageMaker AI 控制台管理 Amazon CloudWatch 可观测性 EKS 和查看 HyperPod 集群控制面板,则您已附加以下所有权限。如果您尚未进行此设置,请使用以下示例策略来授予相关权限,以便通过 SageMaker AI 控制台管理 HyperPod 任务治理加载项和查看 HyperPod 集群控制面板。

JSON
JSON
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "eks:ListAddons", "eks:CreateAddon", "eks:UpdateAddon", "eks:DescribeAddon", "eks:DescribeAddonVersions", "sagemaker:DescribeCluster", "sagemaker:DescribeClusterNode", "sagemaker:ListClusterNodes", "sagemaker:ListClusters", "eks:DescribeCluster", "eks:AccessKubernetesApi" ], "Resource": "*" } ] }

导航到 SageMaker HyperPod 控制台中的控制面板选项卡,安装 Amazon SageMaker HyperPod 任务治理加载项。

Setup using the Amazon EKS AWS CLI

使用示例 create-addon EKS AWS CLI 命令,通过 AWS CLI 设置 HyperPod 任务治理 Amazon EKS API 和控制台用户界面:

aws eks create-addon --region region --cluster-name cluster-name --addon-name amazon-sagemaker-hyperpod-taskgovernance

如果安装成功完成,您可以在 HyperPod SageMaker AI 控制台中查看策略选项卡。您也可以使用以下示例 describe-addon EKS AWS CLI 命令来检查状态。

aws eks describe-addon --region region --cluster-name cluster-name --addon-name amazon-sagemaker-hyperpod-taskgovernance