Pod 弹性伸缩
本文档描述了如何在 KubeSphere 上配置 Pod 弹性伸缩 (HPA)。
HPA 功能会自动调整 Pod 的数量,将 Pod 的平均资源使用(CPU 和内存)保持在预设值附近。有关 HPA 功能的详细情况,请参见 Kubernetes 官方文档。
本文档使用基于 CPU 使用率的 HPA 作为示例,基于内存使用量的 HPA 操作与其相似。
准备工作
- 您需要启用 Metrics Server。
- 您需要创建一个企业空间、一个项目以及一个帐户(例如,
project-regular
)。project-regular
必须被邀请至此项目中,并被赋予operator
角色。有关更多信息,请参见创建企业空间、项目、帐户和角色。
创建服务
以
project-regular
身份登录 KubeSphere 的 Web 控制台,然后访问您的项目。在左侧导航栏中选择应用负载下的服务,然后点击右侧的创建。
在创建服务对话框中,点击无状态服务。
设置服务名称(例如,
hpa
),然后点击下一步。点击添加容器镜像,将镜像设置为
mirrorgooglecontainers/hpa-example
并点击使用默认端口。为每个容器设置 CPU 请求(例如,0.15 core),点击 √,然后点击下一步。
备注
- 若要使用基于 CPU 使用率的 HPA,就必须为每个容器设置 CPU 请求,即为每个容器预留的最低 CPU 资源(有关详细信息,请参见 Kubernetes 官方文档)。HPA 功能会将 Pod 平均 CPU 使用率与 Pod 平均 CPU 请求的目标比率进行比较。
- 若要使用基于内存使用量的 HPA,则不需要配置内存请求。
点击挂载存储选项卡上的下一步,然后点击高级设置选项卡上的创建。
配置 HPA
左侧导航栏上选择工作负载中的部署,然后点击右侧的 HPA 部署(例如,hpa-v1)。
点击更多操作,从下拉菜单中选择弹性伸缩。
在弹性伸缩对话框中,配置 HPA 参数,然后点击确定。
- CPU 目标使用率:Pod 平均 CPU 请求的目标比率。
- 内存目标使用量:以 MiB 为单位的 Pod 平均内存目标使用量。
- 最小副本数:Pod 的最小数量。
- 最大副本数:Pod 的最大数量。
在示例中,CPU 目标使用率设置为
60
,最小副本数设置为1
,最大副本数设置为10
。备注
当 Pod 的数量达到最大值时,请确保群集可以为所有 Pod 提供足够的资源。否则,一些 Pod 将创建失败。
验证 HPA
本节使用将请求发送到 HPA 服务的部署,以验证 HPA 是否会自动调整 Pod 的数量来满足资源使用目标。
创建负载生成器部署
在左侧导航栏中选择应用负载中的工作负载,然后点击右侧的创建。
在创建部署对话框中,设置部署名称(例如,
load-generator
),然后点击下一步。点击添加容器镜像,将镜像设置为
busybox
。在对话框中向下滚动,选择启动命令,然后将运行命令设置为
sh,-c
,将参数设置为while true; do wget -q -O- http://<Target Service>.<Target project>.svc.cluster.local; done
(例如,while true; do wget -q -O- http://hpa.demo-project.svc.cluster.local; done
)。点击 √,然后点击下一步。
点击挂载存储选项卡上的下一步,然后点击高级设置选项卡上的创建。
查看 HPA 部署状态
负载生成器部署创建好后,在左侧导航栏中选择应用负载下的工作负载,然后点击右侧的 HPA 部署(例如,hpa-v1)。
Pod 的数量会自动增加以满足资源使用目标。
在左侧导航栏选择应用负载中的工作负载,点击负载生成器部署(例如,load-generator-v1)右侧的三个点,从下拉菜单中选择删除。负载生成器部署删除后,再次检查 HPA 部署的状态。
Pod 的数量会减少到最小值。
备注
系统可能需要一些时间来调整 Pod 的数量以及收集数据。
编辑 HPA 配置
您可以重复配置 HPA 中的步骤来编辑 HPA 配置。
取消 HPA
在左侧导航栏选择应用负载中的工作负载,点击右侧的 HPA 部署(例如,hpa-v1)。
点击弹性伸缩右侧的三个点,从下拉菜单中选择取消。