垂直 Pod 自動調整程式 API 參考
本文將介紹 Azure Kubernetes Service (AKS) 中垂直 Pod 自動調整程式功能的 API 參考。
此參考以 VPA 的 AKS 實作版本 0.13.0 為基礎。
VerticalPodAutoscaler
名稱 |
Object |
描述 |
中繼資料 |
ObjectMeta |
標準物件中繼資料。 |
spec |
VerticalPodAutoscalerSpec |
垂直 Pod 自動調整程式所需的行為。 |
status |
VerticalPodAutoscalerStatus |
最近觀察到的垂直 Pod 自動調整程式狀態。 |
VerticalPodAutoscalerSpec
名稱 |
Object |
描述 |
targetRef |
CrossVersionObjectReference |
管理 Pod 集合,以利自動調整程式進行控制之控制器的參考, 例如部署或 StatefulSet。 垂直 Pod 自動調整程式可以指向任何具有 Scale 子資源的控制器。 一般來說,垂直 Pod 自動調整程式會從控制器的 ScaleStatus 擷取 Pod 集合。 |
updatePolicy |
PodUpdatePolicy |
指定啟動 Pod 時,以及在 Pod 生命週期中,是否應套用建議的更新。 |
resourcePolicy |
PodResourcePolicy |
指定如何為個別容器調整 CPU 和記憶體要求的原則。 資源原則可針對個別容器的建議設定條件約束。 如果未指定,自動調整程式將為 Pod 中所有容器計算建議資源,而不附加額外條件約束。 |
recommenders |
VerticalPodAutoscalerRecommenderSelector |
建議程式負責產生 VPA 物件的建議。 請保留空白以使用預設建議程式。 否則,清單只能包含一個使用者提供的替代建議程式項目。 |
VerticalPodAutoscalerList
名稱 |
Object |
描述 |
中繼資料 |
ObjectMeta |
標準物件中繼資料。 |
項目 |
VerticalPodAutoscaler (陣列) |
垂直 Pod 自動調整器物件清單。 |
PodUpdatePolicy
名稱 |
Object |
描述 |
updateMode |
string |
一段字串,用於指定啟動 Pod 時,以及在 Pod 生命週期中,是否應套用建議的更新。 可能的值為 Off 、Initial 、Recreate 和 Auto 。 如果未指定值,則預設值為 Auto 。 |
minReplicas |
int32 |
一個值,用以表示更新程式嘗試收回 Pod 時 (即等待 Pod 中斷運算等其他檢查時),必須保持運作的最小複本數目。 此值必須為正值, 預設值則是設定為 2 的全域 --min-replicas 旗標。 |
PodResourcePolicy
名稱 |
Object |
描述 |
conainerPolicies |
ContainerResourcePolicy |
個別容器的資源原則陣列。 每個具名容器最多可以包含一個項目,並選擇性包含一個具有 containerName = '*' 的萬用字元項目,以處理所有沒有個別原則的容器。 |
ContainerResourcePolicy
名稱 |
Object |
描述 |
containerName |
string |
一段字串,用於指定套用原則之容器的名稱。 如果未指定,則會使用預設原則。 |
mode |
ContainerScalingMode |
指定容器啟動時,以及在容器生命週期中,是否應將建議的更新套用至容器。 可能的值是 Off 和 Auto 。 如果未指定值,則預設值為 Auto 。 |
minAllowed |
ResourceList |
指定容器允許的最小 CPU 要求和記憶體要求。 預設情況下不會套用最小值。 |
maxAllowed |
ResourceList |
指定容器允許的最大 CPU 要求和記憶體要求。 預設情況下不會套用最大值。 |
ControlledResources |
[]ResourceName |
指定垂直 Pod 自動調整程式計算 (且可能套用) 的建議類型。 如果保留空白,則會使用 [ResourceCPU, ResourceMemory] 為預設值。 |
VerticalPodAutoscalerRecommenderSelector
名稱 |
Object |
描述 |
NAME |
字串 |
一段字串,用以指定負責為此物件產生建議之建議程式的名稱。 |
VerticalPodAutoscalerStatus
名稱 |
Object |
描述 |
建議 |
RecommendedPodResources |
最近建議的 CPU 和記憶體要求。 |
條件 |
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 |
所描述的條件類型。 可能的值為 RecommendationProvided 、LowConfidence 、NoPodsMatched 和 FetchingHistory 。 |
status |
ConditionStatus |
條件的狀態。 可能的值是 True 、False 、Unknown 。 |
lastTransitionTime |
Time |
最近一次條件從一種狀態轉換到另一種狀態的時間。 |
reason |
string |
最近一次從一種狀態轉換到另一種狀態的原因。 |
message |
string |
一般人可理解的字串,用以詳細說明最近一次從一種狀態轉換到另一種狀態的情況。 |
下一步
若要了解如何改善叢集資源使用率,並釋放其他 Pod 的 CPU 和記憶體,請參閱垂直 Pod 自動調整程式。