This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.2.5.3. 关于使用 Vertical Pod Autoscaler Operator
要使用 Vertical Pod Autoscaler Operator(vpa),您需要为集群中的工作负载对象创建 VPA 自定义资源(CR)。VPA 学习并应用与该工作负载对象关联的 pod 的最佳 CPU 和内存资源。您可以使用 VPA 与部署、有状态集、作业、守护进程集、副本集或复制控制器工作负载对象一起使用。VPA CR 必须与您要监控的 pod 位于同一个项目中。
您可以使用 VPA CR 关联一个工作负载对象,并指定 VPA 使用什么模式运行:
-
Auto
和Recreate
模式会在 pod 生命周期内自动应用 VPA 对 CPU 和内存建议。VPA 会删除项目中任何与建议不兼容的 pod。当由工作负载对象重新部署时,VPA 会在其建议中更新新 pod。 -
Initial
模式仅在创建 pod 时自动应用 VPA 建议。 -
Off
模式只提供推荐的资源限制和请求信息,用户可以手动应用其中的建议。off
模式不会更新 pod。
您还可以使用 CR 使特定容器不受 VPA 评估和更新的影响。
例如,pod 具有以下限制和请求:
在创建了一个设置为 auto
的 VPA 后,VPA 会了解资源使用情况并删除 pod。重新部署时,pod 会使用新的资源限值和请求:
您可以使用以下命令查看 VPA 建议:
oc get vpa <vpa-name> --output yaml
$ oc get vpa <vpa-name> --output yaml
几分钟后,输出显示 CPU 和内存请求的建议,如下所示:
输出示例
输出显示推荐的资源、目标
、最低推荐资源、lowerBound
、最高推荐资源、upperBound
、以及最新资源建议和 uncappedTarget
。
VPA 使用 lessBound
和 upperBound
值来确定一个 pod 是否需要更新。如果 pod 的资源请求低于 lowerBound
值,或高于 upperBound
值,则 VPA 会终止 pod,并使用 target
值重新创建 pod。
2.5.3.1. 自动应用 VPA 建议 复制链接链接已复制到粘贴板!
要使用 VPA 来自动更新 pod,为特定工作负载对象创建一个 VPA CR,并将 updateMode
设置为 Auto
或 Recreate
。
当为工作复杂对象创建 pod 时,VPA 会持续监控容器以分析其 CPU 和内存需求。VPA 会删除任何不满足 VPA 对 CPU 和内存的建议的 pod。重新部署后,pod 根据 VPA 建议使用新的资源限值和请求,并遵循您的应用程序的 pod 中断预算。建议被添加到 VPA CR 的 status
字段中以进行引用。
工作负载对象必须至少指定两个副本,以便 VPA 监控和更新 pod。如果工作负载对象指定一个副本,VPA 不会删除 pod 来防止应用程序停机。您可以手动删除 pod 以使用推荐的资源。
Auto
模式的 VPA CR 示例
在 VPA 可以决定推荐的资源并对新 pod 应用推荐前,pod 必须已在运行。