主机自动缩放策略 (HAP) 运算符 - Amazon SageMaker
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

主机自动缩放策略 (HAP) 运算符

主机自动扩展策略 (HAP) 运算符将资源 ID 列表作为输入,并将相同的策略应用于每个资源 ID。每个资源 ID 都是终端节点名称和变体名称的组合。HAP 运算符执行两个步骤:注册资源 ID,然后将扩展策略应用于每个资源 ID。Delete撤消这两个操作。您可以将 HAP 应用到现有 SageMaker 终端节点,也可以使用托管部署运算符. 有关 SageMaker 自动缩放的更多信息,请参阅应用程序自动扩展策略文档.

注意

在您的kubectl命令,您可以使用短格式hap,代替hostingautoscalingpolicy.

使用 YAML 文件创建主机自动缩放策略

使用 YAML 文件创建主机自动缩放策略 (HAP),该策略将预定义或自定义衡量指标应用于一个或多个 SageMaker 终端节点。

Amazon SageMaker 需要特定的值才能将自动缩放应用于您的变体。如果 YAML 规范中未指定这些值,HAP 运算符将应用以下默认值。

# Do not change Namespace = "sagemaker" # Do not change ScalableDimension = "sagemaker:variant:DesiredInstanceCount" # Only one supported PolicyType = "TargetTrackingScaling" # This is the default policy name but can be changed to apply a custom policy DefaultAutoscalingPolicyName = "SageMakerEndpointInvocationScalingPolicy"

使用以下示例创建将预定义或自定义量度应用于一个或多个终端节点的 HAP。

样本 1:将预定义指标应用于单个终端节点变体

  1. 使用以下命令下载预定义指标的示例 YAML 文件:

    wget https://raw.githubusercontent.com/aws/amazon-sagemaker-operator-for-k8s/master/samples/hap-predefined-metric.yaml
  2. 编辑 YAML 文件以指定endpointNamevariantName, 和region.

  3. 使用以下命令之一将预定义指标应用于单个资源 ID(终端节点名称和变体名称组合)。

    对于群集范围的安装:

    kubectl apply -f hap-predefined-metric.yaml

    对于命名空间范围的安装:

    kubectl apply -f hap-predefined-metric.yaml -n <NAMESPACE>

样本 2:将自定义衡量指标应用于单个端点变体

  1. 使用以下命令下载自定义指标的示例 YAML 文件:

    wget https://raw.githubusercontent.com/aws/amazon-sagemaker-operator-for-k8s/master/samples/hap-custom-metric.yaml
  2. 编辑 YAML 文件以指定endpointNamevariantName, 和region.

  3. 使用以下命令之一将自定义指标应用于单个资源 ID(终端节点名称和变体名称组合),而不是推荐的SageMakerVariantInvocationsPerInstance.

    注意

    Amazon SageMaker 不检查 YAML 规范的有效性。

    对于群集范围的安装:

    kubectl apply -f hap-custom-metric.yaml

    对于命名空间范围的安装:

    kubectl apply -f hap-custom-metric.yaml -n <NAMESPACE>

样本 3:将扩展策略应用于多个终端节点和变体

您可以使用 HAP 运算符将相同的扩展策略应用于多个资源 ID。单独的scaling_policy请求为每个资源 ID(终端节点名称和变体名称组合)创建。

  1. 使用以下命令下载预定义指标的示例 YAML 文件:

    wget https://raw.githubusercontent.com/aws/amazon-sagemaker-operator-for-k8s/master/samples/hap-predefined-metric.yaml
  2. 编辑 YAML 文件以指定region和多个endpointNamevariantName有效值。

  3. 使用以下命令之一将预定义的衡量指标应用于多个资源 ID(终端节点名称和变体名称组合)。

    对于群集范围的安装:

    kubectl apply -f hap-predefined-metric.yaml

    对于命名空间范围的安装:

    kubectl apply -f hap-predefined-metric.yaml -n <NAMESPACE>

托管多个端点和变体的自动扩展策略的注意事项

当您使用多个资源 ID 时,请注意以下几点:

  • 如果跨多个资源 ID 应用单个策略,则为每个资源 ID 创建一个策略 ARN。五个端点具有五个策略 ARN。当您运行describe命令时,响应将显示为一个作业并包含单个作业状态。

  • 如果将自定义量度应用于多个资源 ID,则对所有资源 ID(变体)值使用相同的维度或值。例如,如果您对实例 1-5 应用客户指标,并且终端节点变体维度映射到变体 1,则当变体 1 超出指标时,所有终端节点都会放大或缩小。

  • HAP 运算符支持更新资源 ID 列表。如果修改、添加或删除规范的资源 ID,则自动扩展策略将从上一个变体列表中删除,并应用于新指定的资源 ID 组合。使用describe命令以列出策略当前应用到的资源 ID。

列出主机自动缩放策略

使用以下命令之一列出使用 HAP 运算符创建的所有主机自动扩展策略 (HAP)。

对于群集范围的安装:

kubectl get hap

对于命名空间范围的安装:

kubectl get hap -n <NAMESPACE>

您的输出应类似于以下内容:

NAME STATUS CREATION-TIME hap-predefined Created 2021-07-13T21:32:21Z

使用以下命令可以检查您的主机自动扩展策略 (HAP) 的状态。

kubectl get hap <job-name>

返回以下任一值:

  • Reconciling— 某些类型的错误将状态显示为Reconciling不是Error. 一些示例包括服务器端错误和Creating或者Updating状态。检查Additional字段获取更多详细信息。

  • Created

  • Error

查看应用策略的自动扩展终端节点

  1. 打开位于 https://console.aws.amazon.com/sagemaker/ 的 Amazon SageMaker 控制台。

  2. 在左侧面板中,展开推理.

  3. 选择终端节点.

  4. 选择所需终端节点的名称。

  5. 滚动到终端节点运行时间部分。

描述主机自动扩展策略

使用以下命令可获取有关主机自动扩展策略 (HAP) 的更多详细信息。这些命令通常用于调试问题或检查 HAP 的资源 ID(终端节点名称和变体名称组合)。

kubectl describe hap <job-name>

更新主机自动缩放策略

主机自动扩展策略 (HAP) 运算符支持更新。您可以编辑 YAML 规范以更改值,然后重新应用策略。HAP 运算符删除现有策略并应用新策略。

删除主机自动扩展策略

使用以下命令之一删除主机自动扩展策略 (HAP) 策略。

对于群集范围的安装:

kubectl delete hap hap-predefined

对于命名空间范围的安装:

kubectl delete hap hap-predefined -n <NAMESPACE>

此命令将删除扩展策略并从 Kubernetes 取消注册扩展目标。此命令将返回以下输出:

hostingautoscalingpolicies.sagemaker.aws.amazon.com "hap-predefined" deleted

使用主机自动扩展策略更新或删除端点

要更新具有主机自动扩展策略 (HAP) 的终端节点,请使用kubectl delete命令删除 HAP、更新终端节点,然后重新应用 HAP。

要删除具有 HAP 的终端节点,请使用kubectl delete命令在删除终端节点之前删除 HAP。