本文提供 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 的生命周期内应用建议的更新。 可能值为 Off、Initial、Recreate 和 Auto。 如果未指定值,则默认为 Auto。 |
| 最小副本数 |
int32 |
一个值,表示 Updater 尝试驱逐 Pod 所需保持存活的最小副本数(还需满足其他检查条件,例如 Pod 中断预算(PDB))。 只允许正数值。 默认使用全局 --min-replicas 标志,该标志设置为 2。 |
PodResourcePolicy
| Name |
Object |
说明 |
| conainerPolicies |
容器资源策略 |
单个容器的资源策略数组。 每个命名容器最多可以有一个条目,还可以选择使用单个通配符条目 containerName = '*'来处理没有单个策略的所有容器。 |
容器资源策略
| Name |
Object |
说明 |
| containerName |
字符串 |
一个字符串,指定策略应用于的容器的名称。 如果未指定,该策略将用作默认策略。 |
| mode |
容器扩展模式 |
指定在启动容器时是否对容器应用建议的更新,以及是否在容器的生命周期内应用建议的更新。 可能的值为 Off 和 Auto。 如果未指定值,则默认值为 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 |
要描述的条件的类型。 可能值为 RecommendationProvided、LowConfidence、NoPodsMatched 和 FetchingHistory。 |
| 状态 |
ConditionStatus |
条件状态。 可能的值为 True、False 和 Unknown。 |
| 上次状态转换时间 |
时间 |
条件最后一次从一个状态转换到另一个状态。 |
| reason |
字符串 |
上次从一个状态过渡到另一个状态的原因。 |
| 消息 |
字符串 |
一个可读字符串,提供有关从一个状态到另一个状态的最后一次转换的详细信息。 |
后续步骤
请参阅 垂直 Pod 自动缩放程序 ,了解如何提高群集资源利用率,并为其他 Pod 释放 CPU 和内存。