Skip to content

Commit ca011b7

Browse files
Merge pull request #245712 from MGoedtel/task81873
Update VPA (GA) for AKS
2 parents a4f1d2f + 77497c1 commit ca011b7

File tree

3 files changed

+381
-51
lines changed

3 files changed

+381
-51
lines changed

articles/aks/TOC.yml

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -317,23 +317,27 @@
317317
href: virtual-nodes-portal.md
318318
- name: Workloads
319319
items:
320-
- name: Use Vertical Pod Autoscaler
321-
href: vertical-pod-autoscaler.md
320+
- name: Vertical Pod Autoscaler
321+
items:
322+
- name: About Vertical Pod Autoscaler
323+
href: vertical-pod-autoscaler.md
324+
- name: Vertical Pod Autoscaler API reference
325+
href: vertical-pod-autoscaler-api-reference.md
322326
- name: Configure Metrics Server VPA
323327
href: use-metrics-server-vertical-pod-autoscaler.md
324-
- name: Use proximity placement groups
328+
- name: Proximity placement groups
325329
href: reduce-latency-ppg.md
326-
- name: Use Cluster Autoscaler
330+
- name: Cluster Autoscaler
327331
href: cluster-autoscaler.md
328-
- name: Use Availability Zones
332+
- name: Availability Zones
329333
href: availability-zones.md
330334
- name: Cluster management
331335
items:
332336
- name: Azure portal Kubernetes resource view
333337
href: kubernetes-portal.md
334-
- name: Use tags
338+
- name: Tags
335339
href: use-tags.md
336-
- name: Use labels
340+
- name: Labels
337341
href: use-labels.md
338342
- name: Security and authentication
339343
items:
Lines changed: 110 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,110 @@
1+
---
2+
title: Vertical Pod Autoscaler API reference in Azure Kubernetes Service (AKS)
3+
description: Learn about the Vertical Pod Autoscaler API reference for Azure Kubernetes Service (AKS).
4+
ms.topic: article
5+
ms.custom: devx-track-azurecli
6+
ms.date: 09/26/2023
7+
---
8+
9+
# Vertical Pod Autoscaler API reference
10+
11+
This article provides the API reference for the Vertical Pod Autoscaler feature of Azure Kubernetes Service.
12+
13+
This reference is based on version 0.13.0 of the AKS implementation of VPA.
14+
15+
## VerticalPodAutoscaler
16+
17+
|Name |Ojbect |Description |
18+
|-------|-------||-------|
19+
|metadata |ObjectMeta | Standard [object metadata][object-metadata-ref].|
20+
|spec |VerticalPodAutoscalerSpec |The desired behavior of the Vertical Pod Autoscaler.|
21+
|status |VerticalPodAutoscalerStatus |The most recently observed status of the Vertical Pod Autoscaler. |
22+
23+
## VerticalPodAutoscalerSpec
24+
25+
|Name |Ojbect |Description |
26+
|-------|-------||-------|
27+
|targetRef |CrossVersionObjectReference | Reference to the controller managing the set of pods for the autoscaler to control. For example, a Deployment or a StatefulSet. You can point a Vertical Pod Autoscaler at any controller that has a [Scale][scale-ref] subresource. Typically, the Vertical Pod Autoscaler retrieves the pod set from the controller's ScaleStatus. |
28+
|updatePolicy |PodUpdatePolicy |Specifies whether recommended updates are applied when a pod is started and whether recommended updates are applied during the life of a pod. |
29+
|resourcePolicy |PodResourcePolicy |Specifies policies for how CPU and memory requests are adjusted for individual containers. The resource policy can be used to set constraints on the recommendations for individual containers. If not specified, the autoscaler computes recommended resources for all containers in the pod, without additional constraints.|
30+
|recommenders |VerticalPodAutoscalerRecommenderSelector |Recommender is responsible for generating recommendation for the VPA object. Leave empty to use the default recommender. Otherwise the list can contain exactly one entry for a user-provided alternative recommender. |
31+
32+
## VerticalPodAutoscalerList
33+
34+
|Name |Ojbect |Description |
35+
|-------|-------||-------|
36+
|metadata |ObjectMeta |Standard [object metadata][object-metadata-ref]. |
37+
|items |VerticalPodAutoscaler (array) |A list of Vertical Pod Autoscaler objects. |
38+
39+
## PodUpdatePolicy
40+
41+
|Name |Ojbect |Description |
42+
|-------|-------||-------|
43+
|updateMode |string |A string that specifies whether recommended updates are applied when a pod is started and whether recommended updates are applied during the life of a pod. Possible values are `Off`, `Initial`, `Recreate`, and `Auto`. The default is `Auto` if you don't specify a value. |
44+
|minReplicas |int32 |A value representing the minimal number of replicas which need to be alive for Updater to attempt pod eviction (pending other checks like Pod Disruption Budget). Only positive values are allowed. Defaults to global `--min-replicas` flag, which is set to `2`. |
45+
46+
## PodResourcePolicy
47+
48+
|Name |Ojbect |Description |
49+
|-------|-------||-------|
50+
|conainerPolicies |ContainerResourcePolicy |An array of resource policies for individual containers. There can be at most one entry for every named container, and optionally a single wildcard entry with `containerName = '*'`, which handles all containers that do not have individual policies. |
51+
52+
## ContainerResourcePolicy
53+
54+
|Name |Ojbect |Description |
55+
|-------|-------||-------|
56+
|containerName |string |A string that specifies the name of the container that the policy applies to. If not specified, the policy serves as the default policy. |
57+
|mode |ContainerScalingMode |Specifies whether recommended updates are applied to the container when it is started and whether recommended updates are applied during the life of the container. Possible values are `Off` and `Auto`. The default is `Auto` if you don't specify a value. |
58+
|minAllowed |ResourceList |Specifies the minimum CPU request and memory request allowed for the container. By default, there is no minimum applied. |
59+
|maxAllowed |ResourceList |Specifies the maximum CPU request and memory request allowed for the container. By default, there is no maximum applied. |
60+
|ControlledResources |[]ResourceName |Specifies the type of recommendations that are computed (and possibly applied) by the Vertical Pod Autoscaler. If empty, the default of [ResourceCPU, ResourceMemory] is used. |
61+
62+
## VerticalPodAutoscalerRecommenderSelector
63+
64+
|Name |Ojbect |Description |
65+
|-------|-------||-------|
66+
|name |string |A string that specifies the name of the recommender responsible for generating recommendation for this object. |
67+
68+
## VerticalPodAutoscalerStatus
69+
70+
|Name |Ojbect |Description |
71+
|-------|-------||-------|
72+
|recommendation |RecommendedPodResources |The most recently recommended CPU and memory requests. |
73+
|conditions |VerticalPodAutoscalerCondition | An array that describes the current state of the Vertical Pod Autoscaler. |
74+
75+
## RecommendedPodResources
76+
77+
|Name |Ojbect |Description |
78+
|-------|-------||-------|
79+
|containerRecommendation |RecommendedContainerResources |An array of resources recommendations for individual containers. |
80+
81+
## RecommendedContainerResources
82+
83+
|Name |Ojbect |Description |
84+
|-------|-------||-------|
85+
|containerName |string| A string that specifies the name of the container that the recommendation applies to. |
86+
|target |ResourceList |The recommended CPU request and memory request for the container. |
87+
|lowerBound |ResourceList |The minimum recommended CPU request and memory request for the container. This amount is not guaranteed to be sufficient for the application to be stable. Running with smaller CPU and memory requests is likely to have a significant impact on performance or availability. |
88+
|upperBound |ResourceList |The maximum recommended CPU request and memory request for the container. CPU and memory requests higher than these values are likely to be wasted. |
89+
|uncappedTarget |ResourceList |The most recent resource recommendation computed by the autoscaler, based on actual resource usage, not taking into account the **Container Resource Policy**. If actual resource usage causes the target to violate the **Container Resource Policy**, this might be different from the bounded recommendation. This field does not affect actual resource assignment. It is used only as a status indication. |
90+
91+
## VerticalPodAutoscalerCondition
92+
93+
|Name |Ojbect |Description |
94+
|-------|-------||-------|
95+
|type |VerticalPodAutoscalerConditionType |The type of condition being described. Possible values are `RecommendationProvided`, `LowConfidence`, `NoPodsMatched`, and `FetchingHistory`. |
96+
|status |ConditionStatus |The status of the condition. Possible values are `True`, `False`, and `Unknown`. |
97+
|lastTransitionTime |Time |The last time the condition made a transition from one status to another. |
98+
|reason |string |The reason for the last transition from one status to another. |
99+
|message |string |A human-readable string that gives details about the last transition from one status to another. |
100+
101+
## Next steps
102+
103+
See [Vertical Pod Autoscaler][vertical-pod-autoscaler] to understand how to improve cluster resource utilization and free up CPU and memory for other pods.
104+
105+
<!-- EXTERNAL LINKS -->
106+
[object-metadata-ref]: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#metadata
107+
[scale-ref]: https://v1-25.docs.kubernetes.io/docs/reference/generated/kubernetes-api/v1.25/#scalespec-v1-autoscaling
108+
109+
<!-- INTERNAL LINKS -->
110+
[vertical-pod-autoscaler]: vertical-pod-autoscaler.md

0 commit comments

Comments
 (0)