赛尔校园公共服务平台 Logo
平台使用
阿里云
百度云
移动云
智算服务
教育生态
登录 →
赛尔校园公共服务平台 Logo
平台使用 阿里云 百度云 移动云 智算服务 教育生态
登录
  1. 首页
  2. 阿里云
  3. Serverless应用引擎(新版)
  4. 开发参考
  5. saectl工具
  6. 使用saectl工具管理弹性规则HPA

使用saectl工具管理弹性规则HPA

  • saectl工具
  • 发布于 2025-04-17
  • 0 次阅读
文档编辑
文档编辑

SAE应用的弹性规则对应于Kubernetes的HPA(HorizontalPodAutoscaler)资源类型。本文介绍如何使用saectl工具管理弹性规则,并提供相关的K8s YAML配置文件示例。

前提条件

已安装saectl工具,并配置AccessKey ID、AccessKey Secret、应用部署地域,详见安装与配置saectl工具。

管理弹性规则

saectl工具支持创建、查看、更新、删除弹性规则。

为应用创建弹性规则

  1. 编写文件名为hpa.yaml的文件,其中包含弹性规则的配置信息。配置文件的示例如下,各配置项的详细信息请参考K8s YAML配置项说明。

    apiVersion: autoscaling/v2
    kind: HorizontalPodAutoscaler
    metadata:
      annotations:
        sae.aliyun.com/alias: test-app # 弹性策略昵称,选填
        sae.aliyun.com/enabled: "true" # 是否启用该弹性策略,选填
      name: metric-test-app # 固定格式:metric-${应用名}
      namespace: default
    spec:
      behavior: # 选填
        scaleDown: # 缩容配置
          policies:
          - periodSeconds: 15
            type: Pods
            value: 10
          stabilizationWindowSeconds: 200
        scaleUp: # 扩容配置
          policies:
          - periodSeconds: 15
            type: Pods
            value: 5
          stabilizationWindowSeconds: 100
      maxReplicas: 8
      metrics:
      - resource:
          name: cpu
          target:
            averageUtilization: 80
            type: Utilization
        type: Resource
      - resource:
          name: memory
          target:
            averageUtilization: 80
            type: Utilization
        type: Resource
      - pods:
          metric:
            name: tcpActiveConn
          target:
            averageValue: "100"
            type: AverageValue
        type: Pods
      - pods:
          metric:
            name: tcpTotalConn
          target:
            averageValue: "100"
            type: AverageValue
        type: Pods
      - external:
          metric:
            name: qps
          target:
            averageValue: "100"
            type: AverageValue
        type: External
      - external:
          metric:
            name: rt
          target:
            averageValue: 100k
            type: AverageValue
        type: External
      minReplicas: 1
      scaleTargetRef:
        apiVersion: apps/v1
        kind: Deployment
        name: test-app # 固定格式:${应用名}
  2. 在hpa.yaml文件所在路径执行以下命令,实现为应用创建弹性规则。

    saectl apply -f hpa.yaml

查看弹性规则列表

saectl get hpa -l sae.aliyun.com/app-name=${deployment-name} -n ${namespace}
# ${deployment-name}为应用的名称,如果不通过-l参数指定应用名称,则默认显示范围内所有应用绑定的HPA列表
# ${namespace}为命名空间ID,如果不通过-n参数指定命名空间,则默认使用default命名空间

输出结果字段说明如下:

字段

说明

NAME

弹性规则名称,格式为metric-${应用名}。

REFERENCEKIND

关联类型。

REFERENCENAME

关联应用名。

MINPODS

最小实例数。

MAXPODS

最大实例数。

CURRENTREPLICAS

当前实例数。

DESIREDREPLICAS

期望实例数。

ENABLED

弹性规则是否启用。

查看弹性规则详情

saectl工具支持使用get或describe命令查看弹性规则详情。返回结果中包含弹性规则的配置项,详情请参考K8s YAML配置项说明。

通过get命令查看弹性规则详情

saectl get hpa ${hpa-name} -o {yaml | json} -n ${namespace}
# ${hpa-name}为HPA名称
# -o参数指定返回结果的格式
# ${namespace}为命名空间ID,如果不通过-n参数指定命名空间,则默认使用default命名空间

通过describe命令查看弹性规则详情

saectl describe hpa ${hpa-name} -n ${namespace}
# ${hpa-name}为HPA名称
# ${namespace}为命名空间ID,如果不通过-n参数指定命名空间,则默认使用default命名空间

更新弹性规则

saectl工具支持使用edit或apply命令更新弹性规则。

通过edit命令在线编辑弹性规则配置信息

  1. 执行以下命令,将会以YAML文件的形式打开指定弹性规则的配置信息。

    saectl edit hpa ${hpa-name} -n ${namespace}
    # ${hpa-name}为HPA名称
    # ${namespace}为命名空间ID,如果不通过-n参数指定命名空间,则默认使用default命名空间
  2. 在打开的YAML文件中按需修改配置信息,保存并关闭文件,等待配置信息变更完成。

通过apply命令实现按照YAML配置文件更新弹性规则

修改已有的弹性规则的配置文件hpa.yaml。在配置文件所在路径执行以下命令,实现弹性规则配置信息的变更。

saectl apply -f hpa.yaml

删除弹性规则

执行以下命令,解绑指定的弹性规则。

saectl delete hpa ${hpa-name} -n ${namespace}
# ${hpa-name}为HPA名称
# ${namespace}为命名空间ID,如果不通过-n参数指定命名空间,则默认使用default命名空间

K8s YAML配置项说明

SAE应用的弹性规则对应于Kubernetes的HPA(HorizontalPodAutoscaler)资源类型。相关的K8s YAML配置项说明详见下表。

配置项

说明

metadata.name

弹性规则名称。使用固定格式metric-${应用名}。

创建时必须指定此配置项。
更新时不支持此配置项。

metadata.namespace

弹性规则所在的命名空间。

更新时不支持此配置项。

metadata.annotations:

sae.aliyun.com/alias

弹性规则昵称。

更新时不支持此配置项。

metadata.annotations:

sae.aliyun.com/enabled

弹性规则是否启用。取值如下:

  • "true":启用

  • "false":不启用

metadata.uid

弹性规则名称。使用固定格式metric-${应用ID}。

更新时不支持此配置项。

metadata.labels

使用固定格式如下:

  labels:
    sae.aliyun.com/app-name: ${应用名}
更新时不支持此配置项。

spec.behavior.scaleDown.policies[i]

如果需要配置HPA缩容步长,示例如下:

scaleDown:
  policies:
  - periodSeconds: 15 # 固定值
    type: Pods # 固定值
    value: 4 # HPA缩容步长
创建时此配置项为可选项。

spec.behavior.scaleUp.policies[i]

如果需要配置HPA扩容步长,示例如下:

scaleUp:
  policies:
  - periodSeconds: 15 # 固定值
    type: Pods # 固定值
    value: 4 # HPA扩容步长
创建时此配置项为可选项。

spec.maxReplicas

最大实例数。

spec.minReplicas

最小实例数。

spec.scaleTargetRef

使用固定格式如下:

  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: test-app # 应用名
创建时必须指定此配置项。
更新时不支持此配置项。

相关文章

安装与配置saectl工具 2025-04-17 10:57

如果您初次使用saectl工具,请参考本文完成工具的安装与配置。 前提条件 已开通Serverless应用引擎并授权,详见准备工作。

saectl工具快速入门 2025-04-17 10:57

本文介绍saectl工具的使用方法和常用命令,帮助您快速入门并实现一些常见的业务需求。 前提条件 已安装saectl工具,并配置AccessKey ID、AccessKey Secret、应用部署地域,详见安装与配置saectl工具。

使用saectl工具管理命名空间Namespace 2025-04-17 10:57

SAE的命名空间对应于Kubernetes的Namespace资源类型。本文介绍如何使用saectl工具管理SAE命名空间,并提供相关的K8s YAML配置文件示例。 前提条件 已安装saectl工具,并配置AccessKey ID、AccessKey Secret、应用部署地域,详见安装与配置sa

使用saectl工具管理应用 2025-04-17 10:57

本文介绍如何使用saectl工具管理SAE应用,并提供相关的K8s YAML配置文件示例。 前提条件 已安装saectl工具,并配置AccessKey ID、AccessKey Secret、应用部署地域,详见安装与配置saectl工具。

使用saectl工具管理应用实例Pod 2025-04-17 10:57

SAE的应用实例对应于Kubernetes的Pod资源类型。本文介绍如何使用saectl工具管理SAE应用实例,并提供相关的K8s YAML配置文件示例。 前提条件 已安装saectl工具,并配置AccessKey ID、AccessKey Secret、应用部署地域,详见安装与配置saectl工具

使用saectl工具管理配置项ConfigMap 2025-04-17 10:57

SAE的配置项对应于Kubernetes的ConfigMap资源类型。本文介绍如何使用saectl工具管理ConfigMap,并提供相关的K8s YAML配置文件示例。 前提条件 已安装saectl工具,并配置AccessKey ID、AccessKey Secret、应用部署地域,详见安装与配置s

目录
Copyright © 2025 your company All Rights Reserved. Powered by 赛尔网络.
京ICP备14022346号-15
gongan beian 京公网安备11010802041014号