

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

# 更新 SageMaker HyperPod 集群配置
<a name="sagemaker-hyperpod-eks-operate-cli-command-update-cluster"></a>

运行 [update-cluster](https://docs.amazonaws.cn/cli/latest/reference/sagemaker/update-cluster.html) 更新集群配置。

**注意**  
重要注意事项：  
创建集群后，您无法更改 HyperPod 集群关联的 EKS 集群信息。
如果集群上正在运行深度运行状况检查，此 API 将无法按预期运行。您可能会遇到一条错误信息，提示正在进行深度运行状况检查。要更新集群，应等待深度运行状况检查结束。

1. 创建 JSON 格式的 [https://docs.amazonaws.cn/sagemaker/latest/APIReference/API_UpdateCluster.html](https://docs.amazonaws.cn/sagemaker/latest/APIReference/API_UpdateCluster.html) API 请求文件。确保指定正确的集群名称和实例组名称进行更新。对于每个实例组，您可以更改实例类型、实例数量、生命周期配置入口点脚本以及脚本的路径。
**注意**  
您可以使用缩小规模或从 SageMaker HyperPod 集群中移除整个实例组。`UpdateCluster`有关如何缩减或删除实例组的更多说明，请参阅[缩小 SageMaker HyperPod 集群规模](smcluster-scale-down.md)。

   1. 对于 `ClusterName`，指定要更新的集群名称。

   1. 对于 `InstanceGroupName`

      1. 要更新现有实例组，请指定要更新的实例组名称。

      1. 要添加新的实例组，请指定一个集群中不存在的新名称。

   1. 对于 `InstanceType`

      1. 要更新现有实例组，必须将最初指定的实例类型与组匹配。

      1. 要添加新实例组，请指定要配置该组的实例类型。

      对于使用`InstanceRequirements`代替的实例组`InstanceType`，您可以在`InstanceTypes`列表中添加或删除实例类型。但是，您无法移除在其上运行活动节点的实例类型。更新现有实例组`InstanceRequirements`时`InstanceType`，您也无法在和之间切换。 `InstanceType`并且`InstanceRequirements`是相互排斥的。

   1. 对于 `InstanceCount`

      1. 要更新现有实例组，请指定与所需的实例数对应的整数。您可以提供更高或更低的值（最低可至 0）以纵向扩展或缩减实例组。

      1. 要添加新的实例组，请指定一个大于或等于 1 的整数。

   1. 对于 `LifeCycleConfig`，您可以更改 `SourceS3Uri` 和 `OnCreate` 的值，以更新实例组。

   1. 对于 `ExecutionRole`

      1. 要更新现有实例组，请继续使用创建集群时附加的相同 IAM 角色。

      1. 要添加新的实例组，请指定要附加的 IAM 角色。

   1. 对于 `ThreadsPerCore`

      1. 更新现有实例组时，请继续使用创建集群时指定的相同值。

      1. 添加新实例组时，您可以从每个实例类型允许的选项中选择任意值。如需了解更多信息，请搜索实例类型，并查看**《Amazon EC2 用户指南》**中 [CPU 内核和线程/CPU 内核/实例类型](https://docs.amazonaws.cn/AWSEC2/latest/UserGuide/cpu-options-supported-instances-values.html)参考表中的*每个内核的有效线程*列。

   1. 对于 `OnStartDeepHealthChecks`，添加 `InstanceStress` 和 `InstanceConnectivity`，以启用 [深度运行状况检查](sagemaker-hyperpod-eks-resiliency-deep-health-checks.md)。

   1. 对于`NodeRecovery`，`Automatic`请指定启用自动节点恢复。 SageMaker HyperPod 当运行状况监控代理发现问题时，替换或重启实例（节点）。

   下面的代码片段是您可以使用的 JSON 请求文件模板。有关此 API 的请求语法和参数的更多信息，请参阅 [UpdateCluster](https://docs.amazonaws.cn/sagemaker/latest/APIReference/API_UpdateCluster.html)API 参考。

   ```
   // update_cluster.json
   {
       // Required
       "ClusterName": "name-of-cluster-to-update",
       // Required
       "InstanceGroups": [{
           "InstanceGroupName": "string",
           "InstanceType": "string",
           "InstanceCount": number,
           "LifeCycleConfig": {
               "SourceS3Uri": "string",
               "OnCreate": "string"
           },
           "ExecutionRole": "string",
           "ThreadsPerCore": number,
           "OnStartDeepHealthChecks": [
               "InstanceStress", "InstanceConnectivity"
           ]
       }],
       "NodeRecovery": "Automatic"
   }
   ```

1. 运行以下 `update-cluster` 命令提交请求。

   ```
   aws sagemaker update-cluster \
       --cli-input-json file://complete/path/to/update_cluster.json
   ```