尝试更新集群 - AWS ParallelCluster

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

尝试更新集群

下一节提供在尝试更新集群时可能发生的问题的问题排查解决方案。

pcluster update-cluster 命令无法在本地运行

检查本地文件系统中的 ~/.parallelcluster/pcluster-cli.log 以查看失败详细信息。

使用 pcluster describe-cluster 命令时看到 clusterStatusUPDATE_FAILED

根本原因

要确定故障的根本原因,首先要查看集群堆栈事件和/var/log/chef-client.log头节点。

可能的原因是至少有一个群集节点未应用更新。您可以通过在日志中查找来检索/var/log/chef-client.log在头节点中更新失败的Check cluster readiness节点列表。

查看在 “GitHub 已知问题” 中是否提到了您的问题 GitHub。 AWS ParallelCluster

预防

如果集群中至少有一个节点未成功应用更新,则集群更新可能会失败。为了降低集群更新失败的风险,我们建议在启动更新之前终止损坏的节点。可能损坏的节点的一个例子是计算节点停滞COMPLETING状态的时间超过预期的 epilog 持续时间。要检测这些节点,您可以运行以下命令,根据需要调整该threshold值(该值必须大于 epilogs 预期的最大持续时间)。

$ scontrol show nodes --json | jq -r --argjson threshold 60 ' .nodes[] | select(.state | index("COMPLETING")) | select((now - .last_busy.number) > $threshold) | .name '

正在恢复

如果更新失败,则回滚是恢复集群状态的预期机制。

如果回滚失败,则集群状态不确定。在这种情况下,可能是为了防止故障放大clustermgtd而停止的。我们建议通过在头节点上运行以下命令来启动它。将 Python 版本与你的 AWS ParallelCluster 版本一起提供的版本进行调整:

$ /opt/parallelcluster/pyenv/versions/3.12.11/envs/cookbook_virtualenv/bin/supervisorctl start clustermgtd

集群更新超时

这可能是与 cfn-hup 未运行有关的问题。如果 cfn-hup 进程守护程序因外部原因终止,它不会自动重启。如果cfn-hup未运行,则在集群更新期间, CloudFormation 堆栈会按预期启动更新过程,但更新过程未在头节点上激活,堆栈部署最终会超时。有关更多信息,请参阅排查 cfn-hup 未运行时的集群更新超时问题以排除故障并从问题中恢复。