本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Slurm REST API 中的常见问题 AWS PCS
本节回答了有关 PCS 中 Slurm REST API 的 AWS 常见问题。
- 什么是 Slurm REST API?
-
Slurm REST API 是一个 HTTP 接口,允许你以编程方式与 Slurm 工作负载管理器进行交互。您可以使用标准 HTTP 方法(如 GET、POST 和 DELETE)来提交作业、监控集群状态和管理资源,而无需命令行访问集群。
- 我可以使用由生成的代币
scontrol token吗? -
不,标准
scontrol token输出与 AWS PCS 不兼容。PCS Slurm REST API 需要丰富的 JWT 令牌,其中包含特定的身份声明,包括用户名 (sun)、POSIX 用户 ID (uid) 和群组 ID ()。gids标准 Slurm 代币缺少这些必需的索赔,将被 API 拒绝。 - 我可以从 VPC 外部访问 API 吗?
-
不可以,只能使用 Slurm 控制器的私有 IP 地址在您的 VPC 内访问 REST API 终端节点。要启用外部访问,请实施诸如带有 VPC 链接的应用程序负载均衡器、API 网关等 AWS 服务,或者建立 VPC 对等或 VPN 连接以实现安全连接。
- 为什么 API 使用 HTTP 而不是 HTTPS?
-
Slurm REST API 旨在成为集群私有网络中的内部终端节点。对于需要加密的生产部署,您可以在架构的更高级别上实现 SSL/TLS 终止,例如通过 API 网关、负载均衡器或反向代理。
- 如何控制对 REST API 的访问权限?
-
配置集群的安全组规则,限制对 Slurm 控制器上的 6820 端口的访问。将入站规则设置为仅允许来自可信 IP 范围或您的 VPC 内特定来源的连接,从而阻止对 API 终端节点的未经授权的访问。
- 如何轮换 JWT 签名密钥?
-
在没有活动实例的情况下将您的集群置于维护模式,然后通过 Secret AWS s Manager 启动密钥轮换。轮换完成后,重新启用队列。所有现有的 JWT 令牌都将失效,必须使用 Secrets Manager 的新签名密钥重新生成。
- 我需要启用 Slurm 记账才能使用 REST API 吗?
-
不,任务提交和监控等基本 REST API 操作不需要 Slurm 记账。但是,整个
/slurmdb端点需要账户才能处于活动状态。 - 哪些第三方工具可用于 AWS PCS REST API?
-
许多现有的 Slurm REST API 客户端都应与 AWS PCS 配合使用,包括适用于 Prometheus 的 Slurm Exporter SlurmWeb,以及遵循标准 Slurm REST API 格式的自定义应用程序。但是,依赖身份验证
scontrol token的工具需要修改才能满足 AWS PCS JWT 要求。 - 使用 REST API 会有任何额外费用吗?
-
不,启用或使用 Slurm REST API 功能不收取额外费用。您只需照常为底层集群资源付费。
- 如何对 REST API 进行故障排除?
-
-
网络连接问题
如果您无法访问 API 终端节点,则在向集群控制器发出 HTTP 请求时会看到连接超时或 “连接被拒绝” 错误。
该怎么做:验证您的客户端位于同一 VPC 中或具有正确的网络路由,并确认您的安全组允许来自源 IP 或子网的端口 6820 上的 HTTP 流量。
-
Slurm REST 身份验证问题
如果您的 JWT 令牌无效、过期或签名不正确,API 请求将在响应的错误字段中返回 “协议身份验证错误”。
错误消息示例:
{ "errors": [ { "description": "Batch job submission failed", "error_number": 1007, "error": "Protocol authentication error", "source": "slurm_submit_batch_job()" } ] }该怎么做:检查您的 JWT 令牌格式是否正确、未过期,并使用密钥管理器的正确密钥进行了签名。验证令牌的格式是否正确且包含所需的声明,以及您使用的身份验证标头格式是否正确。
-
提交后作业无法运行
如果您的 JWT 令牌有效但包含不正确的内部结构或内容,则作业可能已进入带有原因代码的暂停 (
PD) 状态。JobAdminHeadscontrol show job用于检查作业 — 您会看到<job-id>JobState=PENDING, Reason=JobHeldAdmin,以及SystemComment=slurm_cred_create failure, holding job。该怎么做:根本原因可能是 JWT 中的错误值。根据PCS文档,验证代币的结构是否正确,并包含所需的索赔。
-
工作目录权限问题
如果您在 JWT 中指定的用户身份缺少对作业工作目录的写入权限,则该作业将因权限错误而失败,类似于
sbatch --chdir使用不可访问的目录。该怎么做:确保在 JWT 令牌中指定的用户对作业的工作目录具有相应的权限。
-
还在遇到问题吗?
-
查看 SchedMD 关于 REST API 规范的
文档。 -
查看 Slurm 控制器日志,了解有关错误的更多详细信息(更多细节计划程序在 PCS 中 AWS 登录请参见)。
-
-