垂直 Pod 自动缩放程序 API 参考

本文提供 Azure Kubernetes 服务 的垂直 Pod 自动缩放器功能的 API 参考。

此参考基于 VPA 的 AKS 实现版本 0.13.0。

VerticalPodAutoscaler

Name Object 说明
元数据 ObjectMeta 标准 对象元数据
spec VerticalPodAutoscalerSpec 垂直 Pod 自动扩缩器的预期行为。
状态 VerticalPodAutoscalerStatus Vertical Pod Autoscaler 的最新观察状态。

VerticalPodAutoscalerSpec

Name Object 说明
targetRef 跨版本对象引用 对控制自动缩放程序的 Pod 集的控制器的引用。 例如,Deployment 或 StatefulSet。 可以将垂直 Pod 自动缩放程序指向具有 Scale 子资源的任何控制器。 通常,Vertical Pod Autoscaler 会从控制器的 ScaleStatus 中获取 Pod 集合。
updatePolicy (更新策略) PodUpdatePolicy 指定是否在 Pod 启动时应用建议的更新,以及是否在 Pod 的整个生命周期内应用建议的更新。
资源策略 PodResourcePolicy 指定如何调整各个容器的 CPU 和内存请求的策略。 资源策略可用于为单个容器设置建议的约束。 如果未指定,则自动缩放程序会计算 Pod 中所有容器的建议资源,而无需其他约束。
推荐器 VerticalPodAutoscalerRecommenderSelector 推荐器负责为 VPA 对象生成建议。 留空以使用默认推荐器。 否则,该列表只能包含用户提供的备用推荐器一个条目。

VerticalPodAutoscalerList

Name Object 说明
元数据 ObjectMeta 标准 对象元数据
items VerticalPodAutoscaler (数组) 垂直 Pod 自动扩缩器对象列表。

PodUpdatePolicy

Name Object 说明
updateMode 字符串 一个字符串,指定在启动 Pod 时是否应用建议的更新,以及是否在 Pod 的生命周期内应用建议的更新。 可能值为 OffInitialRecreateAuto。 如果未指定值,则默认为 Auto
最小副本数 int32 一个值,表示 Updater 尝试驱逐 Pod 所需保持存活的最小副本数(还需满足其他检查条件,例如 Pod 中断预算(PDB))。 只允许正数值。 默认使用全局 --min-replicas 标志,该标志设置为 2

PodResourcePolicy

Name Object 说明
conainerPolicies 容器资源策略 单个容器的资源策略数组。 每个命名容器最多可以有一个条目,还可以选择使用单个通配符条目 containerName = '*'来处理没有单个策略的所有容器。

容器资源策略

Name Object 说明
containerName 字符串 一个字符串,指定策略应用于的容器的名称。 如果未指定,该策略将用作默认策略。
mode 容器扩展模式 指定在启动容器时是否对容器应用建议的更新,以及是否在容器的生命周期内应用建议的更新。 可能的值为 OffAuto。 如果未指定值,则默认值为 Auto
minAllowed 资源列表 指定容器允许的最小 CPU 请求和内存请求。 默认情况下,不会应用最小值。
最大允许值 资源列表 指定容器允许的最大 CPU 请求和内存请求。 默认情况下,不会应用最大值。
受控资源 []ResourceName 指定由垂直 Pod 自动扩缩器计算(并可能应用)的建议类型。 如果为空,则使用 [ResourceCPU, ResourceMemory] 的默认值。

VerticalPodAutoscalerRecommenderSelector

Name Object 说明
name 字符串 一个字符串,指定负责为此对象生成建议的推荐器的名称。

VerticalPodAutoscalerStatus

Name Object 说明
建议 推荐的 Pod 资源 最近建议的 CPU 和内存请求。
条件 VerticalPodAutoscalerCondition 描述垂直 Pod 自动缩放程序的当前状态的数组。

推荐 Pod 资源

Name Object 说明
容器推荐 推荐的容器资源 单个容器的资源建议数组。

推荐的容器资源

Name Object 说明
containerName 字符串 一个字符串,指定建议应用于的容器的名称。
目标 资源列表 容器的建议 CPU 请求值和内存请求值。
下界 资源列表 容器建议的最小 CPU 请求和内存请求。 无法保证此数量足以使应用程序保持稳定。 使用较小的 CPU 和内存请求运行可能会对性能或可用性产生重大影响。
upperBound 资源列表 容器建议的最大 CPU 请求和内存请求。 高于这些值的 CPU 和内存请求值很可能会被浪费。
未设上限的目标 资源列表 自动缩放程序根据实际资源使用情况计算的最新资源建议,而不考虑 容器资源策略。 如果实际资源使用情况导致目标违反 容器资源策略,则这可能不同于有限建议。 此字段不会影响实际资源分配。 它仅用作状态指示。

VerticalPodAutoscalerCondition

Name Object 说明
类型 VerticalPodAutoscalerConditionType 要描述的条件的类型。 可能值为 RecommendationProvidedLowConfidenceNoPodsMatchedFetchingHistory
状态 ConditionStatus 条件状态。 可能的值为 TrueFalseUnknown
上次状态转换时间 时间 条件最后一次从一个状态转换到另一个状态。
reason 字符串 上次从一个状态过渡到另一个状态的原因。
消息 字符串 一个可读字符串,提供有关从一个状态到另一个状态的最后一次转换的详细信息。

后续步骤

请参阅 垂直 Pod 自动缩放程序 ,了解如何提高群集资源利用率,并为其他 Pod 释放 CPU 和内存。