概述:
水平伸缩(HPA):Horizontal Pod Autoscaling 根据使用的资源达到一定程度时触发,增加或减少副本数。
理解 - 水平伸缩就是自动根据使用条件触发副本生成,使用量越大,副本数越大。
垂直伸缩(VPA):vertical-pod-autoscaler 基于Pod的资源使用情况自动为集群设置资源占用的限制,让集群将Pod调度到有足够资源的最佳节点上。VPA也会保持最初容器定义中资源request和limit的占比
理解 - 就是占用资源的自动伸缩,cpu/内存 的占用
水平伸缩和垂直伸缩只能使用一种,不能并存。
由于网络侧的限制,并且水平伸缩结构较为简单,个人认为水平伸缩更好些
方案:
官方文档中有2种配置方案,一个是页面中配置,另一个是通过yaml配置。
见 官方文档
经过实验后发现,直接用页面配置就很方便,没有必要搞yaml配置,页面配置了之后会一直生效,不会因工作负载删除而导致弹性配置失效。
开始配置
首先进入集群,选择要配置弹性伸缩的负载,选择命名空间,选择需要弹性伸缩的服务
进入对应的负载页面,选择容器伸缩,选择创建
在弹出框中填入hpv的名称,添加指标,填入容器的最小数量和最大数量,点击确定
之后就可以在这里看到hpv的配置信息和使用情况了。
注意:配置项会根据k8s部署时的yaml文件中的请求使用量(requests)做判断,所以实际配置时这里要注意,最好提前做使用测试,确定一个数值范围。
另外 内存 在我思考后还是不加入弹性条件了,因为有可能会出现升高后一时半会降不下去的情况,会影响弹性机制的正确性。