1. 功能列表
功能点 | 功能详述 | 优先级 | API |
---|---|---|---|
创建 HPA 对象 | 创建 HPA 资源对象 支持 CPU / Memory Utilization |
P0 | CreateUK8SResource |
展示 HPA 对象 | 展示 HPA 资源列表 及各个 HPA 对象详细信息 |
P0 | ListUK8SResource DescribeUK8SResource |
修改 HPA 对象 | 修改 HPA 资源对象 | P1 | UpdateUK8SResource |
删除 HPA 对象 | 删除 HPA资源对象 | P1 | DeleteUK8SResource |
2. 功能详细设计
2.1 创建 HPA 对象
2.1.1 表单添加
调用 CreateUK8SResource API,前端根据输入拼接 Yaml
# 创建一个针对 nginx Deployment,目标 CPU/Memory 扩容阈值均为 50%,最小副本数 1,最大副本数 10 的 HPA 对象
apiVersion: autoscaling/v2beta2
kind: HorizontalPodAutoscaler
metadata:
name: nginx # HPA 对象名称
namespace: Default # 命名空间
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment # 应用类型
name: nginx # 应用名称
minReplicas: 1 # 伸缩区间下限
maxReplicas: 10 # 伸缩区间上限
metrics:
- type: Resource
resource:
name: memory
target:
type: Utilization
averageUtilization: 50 # memory 利用率阈值
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: 50 # CPU 利用率阈值
2.1.2 Yaml 添加
弹出 Yaml 输入框,展示 2.1.1 中的 Yaml 文件
2.2 展示 HPA 对象
将集群伸缩作为一个单独的横向标签页,放在集群管理页面,下设 HPA、CronHPA、CA 子页
通过 ListUK8SResource 获取 HPA 资源对象列表,其中
Kind: HorizontalPodAutoscaler
ApiVersion: autoscaling/v2beta2如 ListUK8SResource 没有返回足够的信息,可用 DescribeUK8SResouce
展示字段 | API 返回字段 |
---|---|
名称 | Name |
应用类型 | Reference “/“ 前半部分 |
应用名称 | Reference “/“ 后半部分 |
伸缩区间 | Min replicas ~ Max replicas |
副本数 | Deployment(或 StatefulSet)pods |
CPU 指标 | Metrics.resource cpu on pods |
Memory 指标 | Metrics.resource memory on pods |
Yaml 按钮 | 展示资源 Yaml |
2.3 修改 HPA 对象
调用 UpdateUK8SResource
Kind: HorizontalPodAutoscaler
重新拼接 Yaml 传入
仅支持修改扩容阈值(可删除、添加、更换指标)和伸缩区间
2.4 删除 HPA 对象
调用 DeleteUK8SResource
Kind: HorizontalPodAutoscaler