容器垂直伸缩(VPA) 操作步骤 1、在插件市场选择cubeverticalpodautoscaler并安装,安装插件步骤请参考安装插件。 各参数含义如下,您也可以根据实际使用情况修改自定义参数: plaintext storage: prometheus //使用的存储,可根据历史记录(默认为8天)计算推荐值。前提是安装了ccsemonitor插件 prometheusAddress: //prometheus在集群中service的域名及端口 minReplicas: 2 //允许驱逐pod的最小副本数,避免单副本pod被驱逐导致的服务不可用 2、Yaml创建VPA自定义资源对象,并绑定负载。 配置文件示例: plaintext apiVersion: autoscaling.k8s.io/v1 kind: VerticalPodAutoscaler metadata: name: hamstervpa spec: targetRef: //目标控制器 apiVersion:"apps/v1" kind: Deployment name: hamster //按需选择对应的deployment updatePolicy: //更新策略 updateMode:"Off" resourcePolicy: //设置计算推荐值的约束,可约束资源的上下限,非必填 containerPolicies: containerName: '' //设置约束的容器 minAllowed: //设置约束的允许最小值 cpu: 100m memory: 50Mi maxAllowed: 设置约束的允许最大值 cpu:1 memory: 500Mi controlledResources:["cpu","memory"] //设置约束的资源 其中updateMode参数有以下四种模式可供选择: "Auto":VPA 在创建Pod和存量Pod设置资源请求。目前这是 等效于Recreate(见下文)。一旦pod请求的就地更新是可用的,它将会被自动使用。注意:VPA 的此功能是实验性的,可能会导致应用程序停机。 "Recreate":当所请求的资源与新建议显著不同时(如果定义了pod中断预算,则尊重),VPA会在创建pod时分配建议的资源请求,也会通过驱逐存量pod更新建议的资源请求。这种模式应该很少使用,当您需要确保在资源请求发生变化时重建pod时才使用。否则,最好选择“自动”模式,一旦就地更新可用,就可以利用就地更新重新启动。注意:VPA的这个特性是实验性的,可能会导致应用程序停机。 "Initial":VPA 仅在新建 Pod 时修改分配资源请求,对于存量Pod 不驱逐更改它们。 "Off":VPA 不会自动更改 Pod 的资源要求。 会计算出建议值,并且可在 VPA 对象中查看。 3、执行以下命令可以查询VPA为Deployment推荐的CPU和内存资源的requests值。 plaintext kubectl describe vpa hamstervpa