指标伸缩 HPA(Horizontal Pod Autoscaler)在 Kubernetes 集群中用于 Pod 水平自动伸缩,它基于 CPU 和内存利用率、对无状态负载和有状态负载的 Pod 数量进行自动扩缩容。更多详细介绍参见:Kubernetes 官网文档。
HPA 由 Kubernetes API 资源和控制器实现。资源决定了控制器的行为,控制器会周期性的获取 CPU 和内存利用率,并与目标值相比较后,用来调整 Replication Controller 或 Deployment 中的副本数量。
注意
请确保当前集群已经安装 metric-server 组件,否则指标伸缩能力将不生效。
配置项 | 说明 |
---|---|
名称 | 根据系统提示,配置指标伸缩策略的名称。在同一个命名空间下,名称必须唯一。 |
命名空间 | 选择伸缩策略所属的命名空间。建议选择您自定义的命名空间或系统默认创建的 default 命名空间。 |
标签 | 对应 Kubernetes 中的 Label,用于指定该伸缩策略的标识属性。单击 添加标签,根据界面提示输入符合要求的 键 和 值。 |
注解 | 对应 Kubernetes 中的 Annotation,用于为伸缩策略附加任意非标识的元数据,包括 标签 不允许的字符,方便客户端能够检索此元数据。单击 添加注解,根据界面提示输入符合要求的 键 和 值。 |
伸缩对象 | 配置需要伸缩的工作负载。在下拉菜单中选择工作负载的类型和具体的工作负载。 |
监测指标 | 配置伸缩的监测指标,系统基于此指标决定是否需要进行伸缩。伸缩指标支持:
说明 一个 HPA 伸缩规则里,不能同时设置两个相同种类的伸缩指标。 |
最小实例数 | 配置伸缩时的最小实例数和最大实例数。策略触发时,工作负载实例将在此范围内伸缩。 |
最大实例数 |
配置项 | 说明 |
---|---|
扩缩容策略 | 配置工作负载的扩缩容行为,勾选 扩容策略 或 缩容策略,分别配置扩容策略行为和缩容策略行为。 |
静默时间 | 扩容策略或缩容策略的静默时间,整数形式,单位为秒。 |
策略类型 | 配置策略类型,包括:
|
策略 | 配置扩缩容的具体策略行为,包括:
|
指标伸缩创建完成后,将返回资源管理页面。单击资源列表顶部操作按钮或右侧操作列...
中的操作按钮,可执行对应管理操作。详细说明如下:
操作 | 说明 |
---|---|
使用 Yaml 创建 | 使用 Yaml 创建资源,推荐直接粘贴已经根据业务需求配置的 Yaml 内容。相较于使用控制台创建资源,使用 Yaml 方式支持的参数更全面。 |
更新 | 通过控制台方式更新指标伸缩配置。 |
编辑 Yaml | 编辑已经创建指标伸缩的文件,更新配置信息。 |
导出 | 导出当前指标伸缩的 Yaml 文件。 |
删除 | 删除目标指标伸缩。 |
创建指标伸缩的 Yaml 测试示例如下,具体参数和配置以实际使用场景中各云厂商的定义为准。
apiVersion: autoscaling/v2 kind: HorizontalPodAutoscaler metadata: name: my-hpa namespace: default spec: maxReplicas: 10 minReplicas: 1 metrics: - resource: name: cpu target: averageUtilization: 80 type: Utilization type: Resource scaleTargetRef: apiVersion: apps/v1 kind: Deployment name: deploy-test