你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

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

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

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

VerticalPodAutoscaler

名称 Object 说明
metadata ObjectMeta 标准对象元数据
spec VerticalPodAutoscalerSpec 垂直 Pod 自动缩放程序的所需行为。
status VerticalPodAutoscalerStatus 垂直 Pod 自动缩放程序最近观察到的状态。

VerticalPodAutoscalerSpec

名称 Object 说明
targetRef CrossVersionObjectReference 对管理 Pod 集以便自动缩放程序进行控制的控制器的引用。 例如,Deployment 或 StatefulSet。 可以将垂直 Pod 自动缩放程序指向具有 Scale 子资源的任意控制器。 通常,垂直 Pod 自动缩放程序从控制器的 ScaleStatus 检索 Pod 集。
updatePolicy PodUpdatePolicy 指定在启动 Pod 时是否应用建议的更新,以及是否在 Pod 的生命周期内应用建议的更新。
resourcePolicy PodResourcePolicy 指定如何针对单个容器调整 CPU 和内存请求的策略。 资源策略可用于对单个容器的建议设置约束。 如果未指定,则自动缩放程序将计算 Pod 中所有容器的建议资源,但无附加约束。
建议器 VerticalPodAutoscalerRecommenderSelector 建议器负责为 VPA 对象生成建议。 保留为空则使用默认建议器。 否则,该列表只能包含用户提供的替代建议器一个条目。

VerticalPodAutoscalerList

名称 Object 说明
metadata ObjectMeta 标准对象元数据
items VerticalPodAutoscaler(数组) 垂直 Pod 自动缩放程序对象的列表。

PodUpdatePolicy

名称 Object 说明
updateMode string 一个字符串,指定在启动 Pod 时是否应用建议的更新,以及是否在 Pod 的生命周期内应用建议的更新。 可能值为 OffInitialRecreateAuto。 如果未指定值,则默认值为 Auto
minReplicas int32 一个值,表示更新程序尝试将 Pod 逐出时(等待其他检查,如 Pod 中断预算)需要处于活动状态的最小副本数。 只允许正数值。 默认为全局 --min-replicas 标志,该标志设置为 2

PodResourcePolicy

名称 Object 说明
conainerPolicies ContainerResourcePolicy 单个容器的资源策略数组。 每个命名容器最多可以有一个条目和一个包含 containerName = '*' 的通配符条目(可选),以用于处理没有单独策略的所有容器。

ContainerResourcePolicy

名称 Object 说明
containerName string 一个字符串,指定策略应用于的容器的名称。 如果未指定,该策略将充当默认策略。
mode ContainerScalingMode 指定在容器启动时是否将建议的更新应用于该容器,以及是否在容器的生命周期内应用建议的更新。 可能值为 OffAuto。 如果未指定值,则默认值为 Auto
minAllowed ResourceList 指定容器允许的最小 CPU 请求和内存请求。 默认情况下,没有应用最小值。
maxAllowed ResourceList 指定容器允许的最大 CPU 请求和内存请求。 默认情况下,没有应用最大值。
ControlledResources []ResourceName 指定垂直 Pod 自动缩放程序计算(并且可能应用的)建议类型。 如果为空,则使用 [ResourceCPU, ResourceMemory] 的默认值。

VerticalPodAutoscalerRecommenderSelector

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

VerticalPodAutoscalerStatus

名称 Object 说明
建议 RecommendedPodResources 最近建议的 CPU 和内存请求。
conditions VerticalPodAutoscalerCondition 描述垂直 Pod 自动缩放程序的当前状态的数组。

RecommendedPodResources

名称 Object 说明
containerRecommendation RecommendedContainerResources 单个容器的资源建议数组。

RecommendedContainerResources

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

VerticalPodAutoscalerCondition

名称 Object 说明
type VerticalPodAutoscalerConditionType 要描述的条件的类型。 可能值为 RecommendationProvidedLowConfidenceNoPodsMatchedFetchingHistory
status ConditionStatus 条件的状态。 可能的值为 TrueFalseUnknown
lastTransitionTime 时间 条件上次从一种状态转换到另一种状态的时间。
reason string 上次从一种状态转换到另一种状态的原因。
message string 一个用户可理解的字符串,提供有关上次从一种状态转换到另一种状态的详细信息。

后续步骤

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