水平自动伸缩指标说明

最近更新时间:2024-10-29 15:56:52

我的收藏
实例(Pod)自动扩缩容功能(Horizontal Pod Autoscaler,HPA)可以根据目标实例 CPU 利用率的平均值等指标自动扩展、缩减服务的 Pod 数量。自动扩缩容时,可供在控制台进行设置的触发指标类型包括 CPU 指标、内存、硬盘、网络和 GPU 相关指标。此外,这些指标还可以在您通过 YAML 文件创建和编辑 HPA 时使用,本文将给出配置 YAML 文件示例。

自动伸缩指标

自动伸缩指标详情如下表所示:
说明:
其中 metricName 中的变量本身有单位,即表中所示默认单位,该单位在编写 YAML 文件时可忽略。

CPU 指标

指标名称(控制台)
单位(控制台)
备注
type
metricName
默认单位
CPU 使用量
Pod 的 CPU 使用量
Pods
k8s_pod_cpu_core_used
CPU 利用率
(占节点)
%
Pod 的 CPU 使用量占节点总量之比
Pods
k8s_pod_rate_cpu_core_used_node
%
CPU 利用率
(占 Request)
%
Pod 的 CPU 使用量和 Pod 中容器设置的 Request 值之比
Pods
k8s_pod_rate_cpu_core_used_request
%
CPU 利用率
(占 Limit)
%
Pod 的 CPU 使用量和 Pod 中容器设置的 Limit 之和的比例
Pods
k8s_pod_rate_cpu_core_used_limit
%

硬盘

指标名称(控制台)
单位(控制台)
备注
type
metricName
默认单位
硬盘写流量
KB/s
Pod 的硬盘写速率
Pods
k8s_pod_fs_write_bytes
B/s
硬盘读流量
KB/s
Pod 的硬盘读速率
Pods
k8s_pod_fs_read_bytes
B/s
硬盘读 IOPS
次/s
Pod 从硬盘读取数据的 IO 次数
Pods
k8s_pod_fs_read_times
次/s
硬盘写 IOPS
次/s
Pod 把数据写入硬盘的 IO 次数
Pods
k8s_pod_fs_write_times
次/s

网络

指标名称(控制台)
单位(控制台)
备注
type
metricName
默认单位
网络入带宽
Mbps
单 Pod 下所有容器的入方向带宽之和
Pods
k8s_pod_network_receive_bytes_bw
bps
网络出带宽
Mbps
单 Pod 下所有容器的出方向带宽之和
Pods
k8s_pod_network_transmit_bytes_bw
bps
网络入流量
KB
单 Pod 下所有容器的入方向流量之和
Pods
k8s_pod_network_receive_bytes
B
网络出流量
KB
单 Pod 下所有容器的出方向流量之和
Pods
k8s_pod_network_transmit_bytes
B
网络入包量
个/s
单 Pod 下所有容器的入方向包数之和
Pods
k8s_pod_network_receive_packets
个/s
网络出包量
个/s
单 Pod 下所有容器的出方向包数之和
Pods
k8s_pod_network_transmit_packets
个/s

内存

指标名称(控制台)
单位(控制台)
备注
type
metricName
默认单位
内存使用量
MiB
Pod 内存使用量
Pods
k8s_pod_mem_usage_bytes
B
内存使用量(不包含 Cache)
MiB
Pod 内存使用,不包含 Cache
Pods
k8s_pod_mem_no_cache_bytes
B
内存利用率(占节点)
%
Pod 内存使用占 node 的比例
Pods
k8s_pod_rate_mem_usage_node
%
内存利用率(占节点,不包含 Cache)
%
Pod 内存使用占 node 的比例,不含 Cache
Pods
k8s_pod_rate_mem_no_cache_node
%
内存利用率(占 Request)
%
Pod 内存使用占 Request 的比例
Pods
k8s_pod_rate_mem_usage_request
%
内存利用率(占 Request,不包含Cache)
%
Pod 内存使用占 Request 的比例,不含 Cache
Pods
k8s_pod_rate_mem_no_cache_request
%
内存利用率(占 Limit)
%
Pod 内存使用占 Limit 的比例
Pods
k8s_pod_rate_mem_usage_limit
%
内存利用率(占 Limit,不包含 Cache)
%
Pod 内存使用占 Limit 的比例,不含 Cache
Pods
k8s_pod_rate_mem_no_cache_limit
%

GPU

指标名称(控制台)
单位(控制台)
备注
type
metricName
默认单位
GPU 使用量
CUDA Core
Pod GPU 使用量
Pods
k8s_pod_gpu_used
CUDA Core
GPU 申请量
CUDA Core
Pod GPU 申请量
Pods
k8s_pod_gpu_request
CUDA Core
GPU 利用率(占 Request)
%
GPU 使用占 Request 的比例
Pods
k8s_pod_rate_gpu_used_request
%
GPU 利用率(占节点)
%
GPU 使用占 node 的比例
Pods
k8s_pod_rate_gpu_used_node
%
GPU memory 使用量
MiB
Pod GPU memory 使用量
Pods
k8s_pod_gpu_memory_used_bytes
B
GPU memory 申请量
MiB
Pod GPU memory 申请量
Pods
k8s_pod_gpu_memory_request_bytes
B
GPU memory 利用率(占 Request)
%
GPU memory 使用占 Request 的比例
Pods
k8s_pod_rate_gpu_memory_used_request
%
GPU memory 利用率(占节点)
%
GPU memory 使用占 node 的比例
Pods
k8s_pod_rate_gpu_memory_used_node
%

通过 YAML 创建和编辑 HPA

您可以通过 YAML 文件创建和编辑 HPA。以下为配置文件的示例,该文件定义了一条名称为 example 的 HPA,CPU 使用量为1时触发 HPA ,实例范围为1 - 2。
注意:
TKE 同样兼容原生的 Resource 类型。
apiVersion: autoscaling/v2beta2
kind: HorizontalPodAutoscaler
metadata:
name: example
namespace: default
labels:
qcloud-app: example
spec:
minReplicas: 1
maxReplicas: 2
metrics:
- type: Pods # 支持使用 Resource
pods:
metric:
name: k8s_pod_cpu_core_used
target:
averageValue: "1"
type: AverageValue
scaleTargetRef:
apiVersion: apps/v1beta2
kind: Deployment
name: nginx