精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Kubernetes 垂直自動(dòng)伸縮走向何方?

云計(jì)算
目前 Kubernetes 的 Pod 水平自動(dòng)伸縮(HPA,Horizontal Pod Autoscaler)已在業(yè)界廣泛應(yīng)用。

 目前 Kubernetes 的 Pod 水平自動(dòng)伸縮(HPA,Horizontal Pod Autoscaler)已在業(yè)界廣泛應(yīng)用。但對(duì)一些特殊的 Pod(如一些有狀態(tài)的 Pod),HPA 并不能很好地解決資源不足的問題。這就引出 Pod 垂直自動(dòng)伸縮(VPA,Vertical Pod Autoscaler),本文主要介紹 Kubernetes 社區(qū)對(duì) Pod 垂直自動(dòng)伸縮組件的開發(fā)規(guī)劃。

[[284711]]

VPA定義

垂直自動(dòng)伸縮(VPA,Vertical Pod Autoscaler) 是一個(gè)基于歷史數(shù)據(jù)、集群可使用資源數(shù)量和實(shí)時(shí)的事件(如 OMM, 即 out of memory)來自動(dòng)設(shè)置Pod所需資源并且能夠在運(yùn)行時(shí)自動(dòng)調(diào)整資源基礎(chǔ)服務(wù)。

介紹

背景

  • 計(jì)算資源
  • 資源服務(wù)質(zhì)量
  • 準(zhǔn)入控制器
  • 外部準(zhǔn)入webhooks

目標(biāo)

VPA有兩個(gè)目標(biāo):

  • 通過自動(dòng)配置資源請(qǐng)求來減少運(yùn)維成本。
  • 在提高集群資源利用率的同時(shí)最小化容器出現(xiàn)內(nèi)存溢出或 CPU 饑餓的風(fēng)險(xiǎn)。

相關(guān)特性

水平自動(dòng)伸縮(Horizontal Pod Autoscaler,HPA)

HPA 是基于實(shí)時(shí)的CPU利用率或者其他的一些特定信號(hào)動(dòng)態(tài)調(diào)整 Replication controller 中 Pod 數(shù)量的基礎(chǔ)服務(wù)。

通常用戶在無狀態(tài)的工作負(fù)載時(shí)選用 HPA,在有狀態(tài)的工作負(fù)載時(shí)選用 VPA。也有一些場(chǎng)景下會(huì)混合使用。

集群自動(dòng)伸縮(Cluster Autoscaler)

集群自動(dòng)伸縮基于集群整體的資源利用率動(dòng)態(tài)調(diào)整 Kubernetes 集群的大小。

集群自動(dòng)伸縮、HPA 和 VPA 提供了一個(gè)完整的自動(dòng)伸縮解決方案。

初始資源(Initial resources)

初始資源基于歷史資源利用率提供初始資源請(qǐng)求,它僅僅在Pod創(chuàng)建時(shí)觸發(fā),VPA打算繼承使用這個(gè)特性。

原地升級(jí)(In-place updates)

原地升級(jí)是一個(gè)計(jì)劃中的功能,在節(jié)點(diǎn)上有足夠資源的情況下,原地升級(jí)無需殺死容器就能夠調(diào)整已存在容器的資源的請(qǐng)求和限制。

VPA將從這種能力中受益匪淺,但它不被視為最小可行產(chǎn)品 ( inimum Viable Product, MVP) 的阻擋者。

資源估計(jì)(Resource estimation)

資源估計(jì)是另外一個(gè)計(jì)劃中的功能,它可以通過暫時(shí)回收運(yùn)行中容器的暫未使用的資源來提高資源利用率。

資源估計(jì)與 VPA 的不同在于它基于的時(shí)間表比較短(僅基于本地的短期的歷史數(shù)據(jù)),回收以后再提供的質(zhì)量低,不提供初始資源預(yù)測(cè)。VPA 和資源估計(jì)是互補(bǔ)的。

需求

功能

  • VPA 能夠在 Pod 提交時(shí)設(shè)置容器的資源(CPU和內(nèi)存的請(qǐng)求和限制)。
  • VPA能夠調(diào)整已存在的 Pod 的容器資源,特別是能夠?qū)?CPU 饑餓和內(nèi)存溢出等事件作出響應(yīng)。
  • 當(dāng) VPA 重啟 Pod 時(shí),它必須考慮中斷服務(wù)的成本。
  • 用戶能夠配置 VPA 的在資源上的固定限制,特別是最小和最大資源請(qǐng)求。
  • VPA 要與 Pod 控制器兼容,最起碼要與
  1. Deployment 

兼容。特別地:

  • 資源更新的時(shí)候不能干擾 spec 更新或和 spec 更新沖突。
  • 在已有的部署中,能夠滾動(dòng)更新 VPA 的策略。
  • 在創(chuàng)建 Pod 時(shí)能夠盡快開始遵循 VPA 策略,特別是對(duì)于一些只有VPA策略應(yīng)用以后才能被調(diào)度的 Pod 。

可用性

重量級(jí)的組件(數(shù)據(jù)庫或推薦器)出故障不會(huì)阻塞重新創(chuàng)建已存在的 Pod 。Pod 創(chuàng)建路徑非常關(guān)鍵的組件必須設(shè)計(jì)成高可用。

可擴(kuò)展性

在原地升級(jí)組件開發(fā)好后, VPA 能夠使用它。

設(shè)計(jì)

綜述

  • 提出新的API資源: VerticalPodAutoscaler 。它包括一個(gè)標(biāo)簽識(shí)別器 label selector(匹配Pod)、資源策略 resources policy(控制VPA如何計(jì)算資源)、更新策略 update policy(控制資源變化應(yīng)用到Pod)和推薦資源信息。
  • VPA Recommender 是一個(gè)新的組件,它考慮集群中來自 Metrics Server 的所有 Pod 的資源利用率信號(hào)和內(nèi)存溢出事件。
  • VPA Recommender 會(huì)監(jiān)控所有 Pod,為每個(gè) Pod 持續(xù)計(jì)算新的推薦資源,并將它們存儲(chǔ)到 VPA Object 中。
  • VPA Recommender 會(huì)暴露一個(gè)同步 API 獲取 Pod 詳細(xì)信息并返回推薦信息。
  • 所有的 Pod 創(chuàng)建請(qǐng)求都會(huì)通過 VPA Admission Controller。如果 Pod 與任何一個(gè) VPA 對(duì)象匹配,那么 Admission controller 會(huì)依據(jù) VPA Recommender 推薦的值重寫容器的資源。如果 Recommender 連接不上,它將會(huì)返回 VPA Object 中緩存的推薦信息。
  • VPA Updater 是負(fù)責(zé)實(shí)時(shí)更新 Pod 的組件。如果一個(gè) Pod 使用 VPA 的自動(dòng)模式,那么Updater 會(huì)依據(jù)推薦資源來決定如何更新。在 MVP 模式中,這需要通過刪除 Pod 然后依據(jù)新的資源重建 Pod 來實(shí)現(xiàn),這種方法需要 Pod 屬于一個(gè) Replica Set(或者其他能夠重新創(chuàng)建它的組件)。在未來,Updater 會(huì)利用原地升級(jí),因?yàn)橹匦聞?chuàng)建或者重新分配Pod對(duì)服務(wù)是很有破壞性的,必須盡量減少這種操作。
  • VPA 僅僅控制容器的資源請(qǐng)求,它把資源限制設(shè)置為無限,資源請(qǐng)求的計(jì)算基于對(duì)當(dāng)前和過去運(yùn)行狀況的分析。
  • History Storage 是從 API Server 中獲取資源利用率信號(hào)和內(nèi)存溢出并將它們永久保存的組件。Recommender 在一開始用這些歷史數(shù)據(jù)來初始化狀態(tài)。History Storage 基礎(chǔ)的實(shí)現(xiàn)是使用 Prometheus。

體系架構(gòu)

VPA Architecture Diagram

 

API

我們提出了一個(gè)新的類型的API對(duì)象 VertialPodAutoscaler,它包含了擴(kuò)容的目標(biāo),也就是用于匹配 Pod 的 label seletctor 和兩個(gè)策略模塊:更新策略 update policy 和資源策略resources policy。此外他還持有 VPA 計(jì)算的最新的推薦信息。

VPA API 對(duì)象綜述

  1. // VerticalPodAutoscaler is the configuration for a vertical pod 
  2. // autoscaler, which automatically manages pod resources based on historical and 
  3. // real time resource utilization. 
  4. type VerticalPodAutoscaler struct { 
  5.     metav1.TypeMeta 
  6.     // Standard object metadata. 
  7.     // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata 
  8.     // +optional 
  9.     metav1.ObjectMeta 
  10.  
  11.     // Specification of the behavior of the autoscaler. 
  12.     // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status. 
  13.     // +optional 
  14.     Spec VerticalPodAutoscalerSpec 
  15.  
  16.     // Current information about the autoscaler. 
  17.     // +optional 
  18.     Status VerticalPodAutoscalerStatus 
  19.  
  20. // VerticalPodAutoscalerSpec is the specification of the behavior of the autoscaler. 
  21. type VerticalPodAutoscalerSpec { 
  22.     // A label query that determines the set of pods controlled by the Autoscaler. 
  23.     // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors 
  24.     Selector *metav1.LabelSelector 
  25.  
  26.     // Describes the rules on how changes are applied to the pods. 
  27.     // +optional 
  28.     UpdatePolicy PodUpdatePolicy 
  29.  
  30.     // Controls how the autoscaler computes recommended resources. 
  31.     // +optional 
  32.     ResourcePolicy PodResourcePolicy 
  33.  
  34. // VerticalPodAutoscalerStatus describes the runtime state of the autoscaler. 
  35. type VerticalPodAutoscalerStatus { 
  36.     // The time when the status was last refreshed. 
  37.     LastUpdateTime metav1.Time 
  38.     // The most recently computed amount of resources recommended by the 
  39.     // autoscaler for the controlled pods. 
  40.     // +optional 
  41.     Recommendation RecommendedPodResources   
  42.     // A free-form human readable message describing the status of the autoscaler. 
  43.     StatusMessage string 

標(biāo)簽選擇 (Label Selector)

Label Selector 依據(jù)給定的VPA策略決定哪些Pod需要伸縮。Recommender 會(huì)匯聚匹配給定 VPA 的所有信號(hào),因此用戶設(shè)置標(biāo)簽來將行為類似的 pod 分組到一個(gè) VPA 下是非常重要的。

現(xiàn)在還沒有決定如何處理沖突,例如一個(gè) pod 同時(shí)被多個(gè) VPA 策略匹配。

更新策略(Update Policy)

更新策略控制了VPA如何應(yīng)用更改。在 MVP 中,它只包含一個(gè)單個(gè)字段: mode

  1. "updatePolicy" { 
  2.   "mode"""

mode 可以設(shè)置為三種:

  • Intitial: VPA 只在創(chuàng)建 Pod 時(shí)分配資源,在 Pod 的其他生命周期不改變Pod的資源。
  • Auto(默認(rèn)):VPA 在 Pod 創(chuàng)建時(shí)分配資源,并且能夠在 Pod 的其他生命周期更新它們,包括淘汰和重新調(diào)度 Pod。
  • Off:VPA 從不改變Pod資源。Recommender 而依舊會(huì)在VPA對(duì)象中生成推薦信息,他們可以被用在演習(xí)中。

以下任意一個(gè)操作都可以關(guān)掉 VPA :

  • 把更新策略改為 Off。
  • 刪除 VPA 組件。
  • 改變 Pod 的標(biāo)簽讓它不在于 VPA Label Selector 匹配。

注意:關(guān)閉 VPA 會(huì)讓 Pod 不再進(jìn)行進(jìn)一步的改變,但它不會(huì)恢復(fù)到正在Pod的最初資源狀態(tài),直到用戶手動(dòng)對(duì)它進(jìn)行更新。

  1. // VerticalPodAutoscalerStatus describes the runtime state of the autoscaler. 
  2. type VerticalPodAutoscalerStatus { 
  3.     // The time when the status was last refreshed. 
  4.     LastUpdateTime metav1.Time 
  5.     // The most recently computed amount of resources recommended by the 
  6.     // autoscaler for the controlled pods. 
  7.     // +optional 
  8.     Recommendation RecommendedPodResources   
  9.     // A free-form human readable message describing the status of the autoscaler. 
  10.     StatusMessage string 
  11.  
  12. // UpdateMode controls when autoscaler applies changes to the pod resources. 
  13. type UpdateMode string 
  14. const ( 
  15.     // UpdateModeOff means that autoscaler never changes Pod resources. 
  16.     // The recommender still sets the recommended resources in the 
  17.     // VerticalPodAutoscaler object. This can be used for a "dry run"
  18.     UpdateModeOff UpdateMode = "Off" 
  19.     // UpdateModeInitial means that autoscaler only assigns resources on pod 
  20.     // creation and does not change them during the lifetime of the pod. 
  21.     UpdateModeInitial UpdateMode = "Initial" 
  22.     // UpdateModeAuto means that autoscaler assigns resources on pod creation 
  23.     // and additionally can update them during the lifetime of the pod, 
  24.     // including evicting / rescheduling the pod. 
  25.     UpdateModeAuto UpdateMode = "Auto" 
  26.  
  27. // PodUpdatePolicy describes the rules on how changes are applied to the pods. 
  28. type PodUpdatePolicy struct { 
  29.     // Controls when autoscaler applies changes to the pod resources. 
  30.     // +optional 
  31.     UpdateMode UpdateMode 

資源策略(Resource Policy )

資源策略控制 VPA 如何計(jì)算推薦資源。在 MVP 中,它包含每個(gè)容器請(qǐng)求中可選的上限和下限。資源策略在后面可以被擴(kuò)展為額外的開關(guān)可以讓用戶根據(jù)他們特定的場(chǎng)景調(diào)整推薦算法。

  1. const ( 
  2.     // DefaultContainerResourcePolicy can be passed as 
  3.     // ContainerResourcePolicy.Name to specify the default policy. 
  4.     DefaultContainerResourcePolicy = "*" 
  5. // ContainerResourcePolicy controls how autoscaler computes the recommended 
  6. // resources for a specific container. 
  7. type ContainerResourcePolicy struct { 
  8.     // Name of the container or DefaultContainerResourcePolicy, in which 
  9.     // case the policy is used by the containers that don't have their own 
  10.     // policy specified. 
  11.     Name string 
  12.     // Whether autoscaler is enabled for the container. Defaults to "On"
  13.     // +optional 
  14.     Mode ContainerScalingMode 
  15.     // Specifies the minimal amount of resources that will be recommended 
  16.     // for the container. 
  17.     // +optional 
  18.     MinAllowed api.ResourceRequirements 
  19.     // Specifies the maximum amount of resources that will be recommended 
  20.     // for the container. 
  21.     // +optional 
  22.     MaxAllowed api.ResourceRequirements 
  23.  
  24. // PodResourcePolicy controls how autoscaler computes the recommended resources 
  25. // for containers belonging to the pod. 
  26. type PodResourcePolicy struct { 
  27.     // Per-container resource policies. 
  28.     ContainerPolicies []ContainerResourcePolicy 
  29.  
  30. // ContainerScalingMode controls whether autoscaler is enabled for a speciifc 
  31. // container. 
  32. type ContainerScalingMode string 
  33. const ( 
  34.     // ContainerScalingModeOn means autoscaling is enabled for a container. 
  35.     ContainerScalingModeOn ContainerScalingMode = "On" 
  36.     // ContainerScalingModeOff means autoscaling is disabled for a container. 
  37.     ContainerScalingModeOff ContainerScalingMode = "Off" 

推薦(Recommendation)

VPA 資源有一個(gè)僅輸出的字段用來保存一個(gè)由 Recommender 生成的最近的一次推薦。這個(gè)字段可以在 Recommender 暫時(shí)無法訪問時(shí)被用來獲取最近的一次推薦。這個(gè)推薦包含推薦目標(biāo)資源數(shù)量以及范圍(最大,最小),可以被 Updater 用來決定在何時(shí)更新 Pod。在資源緊缺的情況下,Updater 可能決定將 Pod 資源壓縮到推薦的最小值。范圍的寬度同樣也影響了推薦的置信區(qū)間。

  1. // RecommendedPodResources is the recommendation of resources computed by 
  2. // autoscaler. 
  3. type RecommendedPodResources struct { 
  4.     // Resources recommended by the autoscaler for each container. 
  5.     ContainerRecommendations []RecommendedContainerResources 
  6.  
  7. // RecommendedContainerResources is the recommendation of resources computed by 
  8. // autoscaler for a specific container. Respects the container resource policy 
  9. // if present in the spec. 
  10. type RecommendedContainerResources struct { 
  11.     // Name of the container. 
  12.     Name string 
  13.     // Recommended amount of resources. 
  14.     Target api.ResourceRequirements 
  15.     // Minimum recommended amount of resources. 
  16.     // Running the application with less resources is likely to have 
  17.     // significant impact on performance/availability. 
  18.     // +optional 
  19.     MinRecommended api.ResourceRequirements 
  20.     // Maximum recommended amount of resources. 
  21.     // Any resources allocated beyond this value are likely wasted. 
  22.     // +optional 
  23.     MaxRecommended api.ResourceRequirements 

準(zhǔn)入控制器(Admission Controller)

VPA Admission Controller 攔截 Pod 創(chuàng)建請(qǐng)求。如果 Pod 與 VPA 配置匹配且模式未設(shè)置為off,則控制器通過將建議的資源應(yīng)用于 Pod spec 來重寫資源請(qǐng)求。否則它會(huì)使 Pod spec保持不變。

控制器通過從 Recommender 中的 /recommendedPodResources 來獲取推薦的資源。如果呼叫超時(shí)或失敗,控制器將回退到 VPA object 中緩存的建議。如果這也不可用,則控制器允許資源請(qǐng)求傳遞最初指定的資源。

注意:將來可以通過將 Pod 標(biāo)記為 requiring VPA 來(可選)強(qiáng)制使用 VPA 。這將禁止在創(chuàng)建相應(yīng)的 VPA 配置之前調(diào)度 Pod 。如果找不到匹配的 VPA 配置,則準(zhǔn)入控制器將拒絕此類 Pod 。對(duì)于想要?jiǎng)?chuàng)建 VPA 配置并提交 Pod 的用戶來說,此功能將非常方便。

VPA 準(zhǔn)入控制器將作為外部入場(chǎng)鉤子(External Admission Hook)實(shí)施。但請(qǐng)注意,這取決于變異webhook 準(zhǔn)入控制器(Mutating Webhook Admission Controllers)。

推薦器(Recommender)

Recommender 是 VPA 的主要組成部分。它負(fù)責(zé)計(jì)算推薦的資源。在啟動(dòng)時(shí),Recommender 獲取所有 Pod 的歷史資源利用率(無論它們是否使用 VPA )以及歷史存儲(chǔ)中的 Pod OOM 事件的歷史記錄。它聚合這些數(shù)據(jù)并將其保存在內(nèi)存中。

在正常操作期間,Recommender 通過 Metrics API 從 Metrics Server 獲取資源利用率和新事件的實(shí)時(shí)更新。此外,它還可以監(jiān)視群集中的所有 Pod 和所有 VPA object 。對(duì)于由某個(gè)VPA選擇器匹配的每個(gè) Pod,Recommender 計(jì)算推薦的資源并在 VPA object 上設(shè)置推薦。

意識(shí)到每個(gè) VPA object 有一個(gè)推薦是非常重要的。用戶應(yīng)使用一個(gè) VPA 來控制具有類似資源使用模式的 Pod ,通常是一組副本或單個(gè)工作負(fù)載的分片。

Recommender 充當(dāng)了一個(gè) extension-apiserver,暴露了一個(gè)同步方法,該方法獲取 Podspec 和 Pod 元數(shù)據(jù)并返回推薦的資源。

Recommender API

  1. 請(qǐng)求體: 
  2.  
  3. ```go 
  4. // RecommendationQuery obtains resource recommendation for a pod. 
  5. type RecommendationQuery struct { 
  6.     metav1.TypeMeta 
  7.     // +optional 
  8.     metav1.ObjectMeta 
  9.  
  10.     // Spec is filled in by the caller to request a recommendation. 
  11.     Spec RecommendationQuerySpec 
  12.  
  13.     // Status is filled in by the server with the recommended pod resources. 
  14.     // +optional 
  15.     Status RecommendationQueryStatus 
  16.  
  17. // RecommendationQuerySpec is a request of recommendation for a pod. 
  18. type RecommendationQuerySpec struct { 
  19.     // Pod for which to compute the recommendation. Does not need to exist. 
  20.     Pod core.Pod 
  21.  
  22. // RecommendationQueryStatus is a response to the recommendation request. 
  23. type RecommendationQueryStatus { 
  24.     // Recommendation holds recommended resources for the pod. 
  25.     // +optional 
  26.     Recommendation autoscaler.RecommendedPodResources 
  27.     // Error indicates that the recommendation was not available. Either 
  28.     // Recommendation or Error must be present. 
  29.     // +optional 
  30.     Error string 

注意,現(xiàn)有 Pod 以及尚未創(chuàng)建的 Pod 都可以調(diào)用此 API。

更新器(Updater)

VPA Updater 是一個(gè)負(fù)責(zé)將推薦資源應(yīng)用于現(xiàn)有 Pod 的組件。它監(jiān)視集群中的所有 VPA object 和 Pod ,通過調(diào)用 Recommender API 定期獲取由 VPA 控制的 Pod 的建議。當(dāng)推薦的資源與實(shí)際配置的資源明顯不同時(shí),Updater 可能會(huì)決定更新 Pod。在 MVP 中(直到 Pod 資源的原地升級(jí)可用),這意味著需要驅(qū)逐現(xiàn)有的 Pod 然后使用推薦的資源重新創(chuàng)建它們。

Updater 依賴于其他機(jī)制(例如副本集)來重新創(chuàng)建已刪除的 Pod 。但是,它不驗(yàn)證是否實(shí)際為 Pod 配置了此類機(jī)制。這樣的檢查可以在 CLI 中實(shí)現(xiàn),并在 VPA 匹配 Pod 時(shí)警告用戶,但 Pod 不會(huì)自動(dòng)重啟。

雖然終止Pod是破壞性的并且通常是不期望的,但有時(shí)也是合理的:

  • 避免 CPU 饑餓.
  • 隨機(jī)降低跨多個(gè) Pod 的相關(guān) OOM 的風(fēng)險(xiǎn).
  • 在長時(shí)間內(nèi)節(jié)省資源.

Updater 僅在 updatePolicy.mod 設(shè)置為 Auto 時(shí)才會(huì)配置 Pod 。

根據(jù)群集的當(dāng)前狀態(tài)(例如,配額,節(jié)點(diǎn)上可用的空間或其他調(diào)度約束),Updater 還需要了解如何在將推薦應(yīng)用于Pod之前調(diào)整推薦。否則它可能會(huì)永久性地取消一個(gè) Pod 。這種機(jī)制尚未設(shè)計(jì)。

推薦計(jì)算模型(Recommendation model)

VPA控制容器的資源請(qǐng)求(內(nèi)存和 CPU)。在 MVP 中,它總是將資源限制設(shè)置為無窮大。目前尚不清楚是否存在 VPA 設(shè)定資源限制的用例。

資源請(qǐng)求是基于對(duì)容器的當(dāng)前和先前運(yùn)行以及具有類似屬性的其他容器(名稱,圖像,命令,args)的分析來計(jì)算的。推薦的模型(MVP)假設(shè)內(nèi)存和CPU消耗是獨(dú)立的隨機(jī)變量,其分布等于在過去 N 天中觀察到的分布(推薦 N 值取為 N =8 以捕獲每周峰值)。未來更先進(jìn)的模型可能會(huì)嘗試檢測(cè)趨勢(shì),周期性和其他與時(shí)間相關(guān)的模式。

對(duì)于CPU, 目標(biāo)是保證容器使用的CPU超過容器請(qǐng)求的 CPU 資源的高百分比(如95%)時(shí)間低于某個(gè)特定的閾值(如保證只有1%的時(shí)間內(nèi)容器的CPU使用高于請(qǐng)求的 CPU 資源的95%)在此模型中,“CPU 使用”定義為在短時(shí)間間隔內(nèi)測(cè)量的平均值。測(cè)量間隔越短,對(duì)尖峰,延遲敏感的工作負(fù)載的建議質(zhì)量越好。最低合理間隔為 1/min,建議為 1/sec。

對(duì)于內(nèi)存,目標(biāo)是保證在特定時(shí)間窗口內(nèi)容器使用的內(nèi)存超過容器請(qǐng)求的內(nèi)存資源的概率低于某個(gè)閾值(例如,在 24 小時(shí)內(nèi)低于 1%)。窗口必須很長( ≥24h ),以確保 OOM 引起的驅(qū)逐不會(huì)明顯影響服務(wù)應(yīng)用程序的可用性和批量計(jì)算的進(jìn)度(更高級(jí)的模型可以允許用戶指定 SLO 來控制它)。

內(nèi)存溢出處理(Handling OOMs)

當(dāng)容器由于超出可用內(nèi)存而被逐出時(shí),其實(shí)際內(nèi)存要求是未知的(消耗的量顯然給出了下限)。這是通過將 OOM 事件轉(zhuǎn)換為人工內(nèi)存使用樣本來建模的,方法是將“安全邊際”乘數(shù) (“safety margin” multiplier ) 應(yīng)用于最后一次觀察到的使用情況。

歷史存儲(chǔ)(History Storage )

VPA 為歷史事件和資源利用的提供者定義數(shù)據(jù)訪問 API 。一開始,至少在資源利用部分,我們將使用 Prometheus 作為此 API 的參考實(shí)現(xiàn),歷史事件可以由另一個(gè)解決方案支持,例如,Infrastore。用戶將能夠插入自己的實(shí)現(xiàn)。

History Storage 被不斷填充實(shí)時(shí)更新的資源利用率和事件,類似于 Recommender。它至少保留8天的數(shù)據(jù)。此數(shù)據(jù)僅用于在啟動(dòng)時(shí)初始化 Recommender 。

開放問題

如果多個(gè) VPA 對(duì)象與一個(gè) Pod 匹配,如何解決沖突。

如何在將推薦應(yīng)用于特定容器之前根據(jù)集群的當(dāng)前狀態(tài)調(diào)整推薦(例如,配額,節(jié)點(diǎn)上可用的空間或其他調(diào)度約束)。

未來的工作

Pod啟動(dòng)時(shí)融入 VPA

在當(dāng)前提案中,如果在 Pod 接納時(shí)間 (Admission Time) 內(nèi) Pod 沒有匹配的 VPA 配置,則將使用最初配置的資源調(diào)度 Pod。這可能并不是用戶希望的行為。特別地,用戶可能想要?jiǎng)?chuàng)建 VPA 配置同時(shí)提交到 Pod,這會(huì)導(dǎo)致競爭條件:結(jié)果取決于首先處理哪個(gè)資源(VPA 或 Pod)。

為了解決這個(gè)問題,我們建議允許使用特殊注釋(requires VPA)標(biāo)記 Pod,如果相應(yīng)的 VPA 不可用,則阻止接納控制器 (Admission Controlle) 接納Pod。

另一種方法是引入用于相同目的的VPA初始化器。

結(jié)合垂直和水平縮放

原則上,只要兩個(gè)機(jī)制在不同的資源上運(yùn)行,就可以對(duì)單個(gè)工作負(fù)載(Pod 組)使用垂直和水平縮放。正確的方法是讓 HPA 基于瓶頸資源擴(kuò)展組。VPA 可以控制其他資源。例子:

  • CPU綁定的工作負(fù)載可以根據(jù) CPU 利用率水平伸縮,同時(shí)使用垂直伸縮來調(diào)整內(nèi)存。
  • IO綁定工作負(fù)載可以基于 IO 吞吐量水平伸縮,同時(shí)使用垂直伸縮來調(diào)整內(nèi)存和 CPU。

然而,這是一種更高級(jí)的自動(dòng)縮放形式,并且 MVP 版本的 Vertical Pod Autoscaler 不能很好地支持它。實(shí)現(xiàn)的難度在于改變實(shí)例數(shù)不僅會(huì)影響瓶頸資源的利用率(這是水平擴(kuò)展的原則),而且可能也會(huì)影響由 VPA 控制的非瓶頸資源。在匯總歷史資源利用率和生成建議時(shí),必須擴(kuò)展 VPA 模型從而能夠?qū)⒔M的大小考慮在內(nèi),以便將其與HPA相結(jié)合。

批量工作負(fù)載

批處理工作負(fù)載具有與延遲敏感工作負(fù)載有不同的 CPU 要求。他們關(guān)心吞吐量而不是請(qǐng)求延遲,這意味著 VPA 應(yīng)該將 CPU 需求基于平均 CPU 消耗而不是高百分位的 CPU 分布。

TODO:描述批處理工作負(fù)載的推薦模型以及VPA如何區(qū)分批處理和服務(wù)。一種可能的方法是查看 PodSpec.restartPolicy。另一種方法是讓用戶在 PodResourcePolicy 中指定工作負(fù)載的延遲要求。

 

責(zé)任編輯:武曉燕 來源: ServiceMesher
相關(guān)推薦

2022-03-30 06:08:54

漏洞管理漏洞網(wǎng)絡(luò)攻擊

2017-02-27 13:33:17

2013-07-29 17:28:22

移動(dòng)應(yīng)用市場(chǎng)亂象移動(dòng)開發(fā)

2023-03-07 11:18:22

語音助手人工智能

2022-04-18 16:27:54

語音助手智能助理機(jī)器學(xué)習(xí)

2021-01-31 17:39:23

云計(jì)算5G網(wǎng)絡(luò)

2025-06-09 07:30:00

Kubernetes節(jié)點(diǎn)自動(dòng)伸縮集群

2023-03-31 16:33:03

云計(jì)算邊緣計(jì)算

2022-06-16 10:02:39

EASM攻擊面管理

2021-11-06 23:22:33

運(yùn)維IT企業(yè)

2019-01-08 12:26:04

2012-12-10 09:46:21

P2P云存儲(chǔ)Symform

2020-11-09 10:09:57

人工智能IT自動(dòng)化

2010-01-01 19:28:39

3G

2020-03-11 22:58:58

SD-WAN網(wǎng)絡(luò)邊緣安全

2022-01-11 11:05:17

WiFi 6芯片WiFi 7華為

2013-07-12 12:37:53

云存儲(chǔ)云計(jì)算

2019-02-14 13:21:24

大數(shù)據(jù)數(shù)字化人工智能

2022-07-13 14:21:54

區(qū)塊鏈Web 3.0

2012-02-15 14:49:19

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

国产一区视频导航| 中文字幕一区二区三区在线视频| 欧美日韩一区免费| 视频一区二区三区在线观看| 国产精品自产拍| 亚洲图片在线| 综合网中文字幕| 中文字幕 欧美 日韩| 色是在线视频| 亚洲免费三区一区二区| 久久久一本精品99久久精品66| 中国一级特黄视频| 亚洲黄网站黄| 久久人人爽人人爽人人片亚洲| 黄色免费看视频| 四虎永久精品在线| 色婷婷一区二区| 屁屁影院ccyy国产第一页| 国产一级片在线| 国产成人精品影院| 国产一区欧美二区三区| 日韩精品在线观看免费| 欧美日本中文| 中文字幕欧美在线| 毛片网站免费观看| 成功精品影院| 91麻豆精品国产91久久久久久 | 久操视频在线播放| 久久精品这里都是精品| 国产三级精品在线不卡| www.久久色| 久久国产精品99久久人人澡| 国产999在线观看| 国产午夜激情视频| 欧美另类专区| 久久亚洲综合国产精品99麻豆精品福利| 巨胸大乳www视频免费观看| 99re热精品视频| 91精品国产欧美日韩| 中文字幕亚洲乱码| 成人久久网站| 色av综合在线| 精品久久久久久久免费人妻| 538在线精品| 亚洲综合免费观看高清完整版在线| 国产a级片免费看| 午夜小视频在线| 国产精品国产自产拍高清av| 日韩av电影免费在线| 你懂的视频在线观看| 91免费视频网| 品久久久久久久久久96高清| 精品亚洲综合| 国产欧美一二三区| 视频一区二区三区在线观看| av大片在线观看| 国产精品狼人久久影院观看方式| 天堂社区 天堂综合网 天堂资源最新版| 香蕉视频国产在线| 久久久美女艺术照精彩视频福利播放| 精品无人乱码一区二区三区的优势| 人人妻人人澡人人爽精品日本| 国产成人精品在线看| 懂色一区二区三区av片| 人妻va精品va欧美va| 99久久久精品| 欧美在线播放一区| av中文在线| 亚洲欧美偷拍卡通变态| 欧美视频在线第一页| heyzo高清在线| 色偷偷成人一区二区三区91| 美女网站视频黄色| 亚洲天堂网站| 精品久久国产字幕高潮| 欧美精品黑人猛交高潮| 欧美综合一区| 久久99久久99精品免观看粉嫩 | 欧美另类z0zxhd电影| 欧美激情国内自拍| 91大神精品| 日韩精品中文字幕有码专区| 干b视频在线观看| 亚洲欧美偷拍自拍| 91国在线精品国内播放| 少妇无套内谢久久久久| 国产美女主播视频一区| 黄色国产精品一区二区三区| 国产大片在线免费观看| 一区二区三区欧美在线观看| 日韩在线xxx| 中文成人在线| 日韩精品极品视频免费观看| 日本黄色录像视频| 国产亚洲精品久久久久婷婷瑜伽| 国产精品久久久久久久久久久久久久 | 黄色在线视频网站| 精品欧美激情精品一区| 亚洲天堂网2018| 欧美亚视频在线中文字幕免费| 在线观看日韩www视频免费| 久草视频免费在线| 男人操女人的视频在线观看欧美| 国产一区二区黄色| 日本黄色片在线观看| 五月开心婷婷久久| 依人在线免费视频| 亚洲欧美日本伦理| 欧美黑人巨大精品一区二区| 最近中文在线观看| 99国产精品国产精品久久| 在线视频一区观看| 婷婷综合六月| 亚洲国产成人精品久久久国产成人一区 | 国产视频手机在线观看| 国产午夜精品美女毛片视频| 欧美中日韩在线| 在线视频成人| 中文字幕日韩有码| 日韩精品一区不卡| 91丝袜国产在线播放| 久久这里只有精品8| 婷婷激情成人| 中文字幕欧美在线| 性高潮视频在线观看| 91丨porny丨中文| www插插插无码视频网站| 玖玖玖电影综合影院| 色爱精品视频一区| 波多野结衣小视频| 久久免费视频一区| 国产在线青青草| 狠狠一区二区三区| 久久99精品久久久久久琪琪| va视频在线观看| 一区视频在线播放| 麻豆三级在线观看| 日韩www.| 国产在线不卡精品| 欧美成年黄网站色视频| 欧美性xxxxx极品少妇| 亚洲黄色免费视频| 日本人妖一区二区| 婷婷五月色综合| 国产亚洲一区二区手机在线观看| 亚洲欧美国产精品| 中文字幕免费高清网站| 国产视频在线观看一区二区三区| 蜜臀av午夜一区二区三区| 在线日本制服中文欧美| 国产成人亚洲综合青青| av资源在线观看免费高清| 欧美日韩一卡二卡| 国产色无码精品视频国产| 紧缚奴在线一区二区三区| 国产高潮呻吟久久久| 久久精品免视看国产成人| 欧美国产亚洲精品久久久8v| www.香蕉视频| 精品高清美女精品国产区| www.自拍偷拍| 男人操女人的视频在线观看欧美 | 国产伦精品一区三区精东| 99精品免费网| 欧美一区观看| 亚洲人成777| 欧美激情一级二级| av女名字大全列表| 欧美性大战久久久久久久蜜臀| 国产jizz18女人高潮| 国产一区二区在线视频| 日韩av中文字幕第一页| 视频国产一区| 亚洲r级在线观看| 交100部在线观看| 国产亚洲精品久久| 国产情侣自拍小视频| 婷婷夜色潮精品综合在线| 亚洲午夜久久久久久久国产| 精品一区二区三区在线播放视频| 日产精品久久久久久久蜜臀| 偷拍亚洲色图| 成人亚洲综合色就1024| sm久久捆绑调教精品一区| 在线观看不卡av| 亚洲h视频在线观看| 一本色道久久综合亚洲aⅴ蜜桃| 网爆门在线观看| av亚洲精华国产精华精| 九九热免费精品视频| 国产字幕视频一区二区| 欧美亚洲另类久久综合| 久久中文字幕一区二区| 国产va免费精品高清在线| 国产调教视频在线观看| 亚洲精选中文字幕| 精品久久无码中文字幕| 日本乱人伦一区| 久久久久久久久久久久久久免费看| 久久精品视频在线免费观看| 佐山爱在线视频| 日日夜夜免费精品| 日本手机在线视频| 久久久人成影片免费观看| 欧美日韩精品免费在线观看视频| 国产在线一区不卡| 国产精品福利观看| sm在线播放| 成人97在线观看视频| 国产午夜视频在线观看| 亚洲国产一区自拍| 国产欧美一级片| 色女孩综合影院| 99精品视频99| 一区二区免费在线| 欧美激情精品久久久久久免费| 久久先锋影音av鲁色资源| 中国特级黄色片| 国产一区二区h| 热久久久久久久久| 欧美a一区二区| 熟女人妇 成熟妇女系列视频| 亚洲清纯自拍| 999一区二区三区| 综合天天久久| 国产四区在线观看| 天天操夜夜操国产精品| 日韩精品av一区二区三区| 天堂俺去俺来也www久久婷婷| www日韩av| 激情综合五月| 亚洲一区中文字幕| 粉嫩一区二区三区在线观看| 国产精品视频专区| 欧洲成人一区| 国产精品欧美日韩久久| 91精品国产经典在线观看| 国产精品99久久久久久人 | 色婷婷综合久久| 欧美一区二区三区久久久| 色婷婷综合久色| 欧美日韩 一区二区三区| 色婷婷av一区| 中文字幕+乱码+中文乱码91| 在线观看国产精品网站| 日韩国产亚洲欧美| 欧美丝袜第三区| 伊人免费在线观看高清版| 欧美日韩色一区| ,亚洲人成毛片在线播放| 欧美日韩国产影片| 国产av无码专区亚洲a∨毛片| 欧美精品乱码久久久久久按摩| 一区二区三区黄| 777色狠狠一区二区三区| 99精品视频免费看| 精品美女一区二区| 亚洲 欧美 精品| 一区二区三区视频免费| 日本在线人成| 欧美巨乳在线观看| aa国产成人| 国产精品∨欧美精品v日韩精品| 欧美色片在线观看| 亚洲一区二区免费| 久久久久观看| 日韩免费电影一区二区| 五月天久久网站| 99色这里只有精品| 久久天堂成人| 手机精品视频在线| 成人v精品蜜桃久久一区| 自拍偷拍中文字幕| 国产精品久久久久桃色tv| 九九精品在线观看视频| 欧美日韩亚洲视频| 欧美一区二区三区婷婷月色| 我和岳m愉情xxxⅹ视频| 久久午夜电影网| 亚洲精品自拍视频在线观看| 亚洲精品写真福利| xxxxxx国产| 在线观看视频一区二区| 国产精品亚洲欧美在线播放| 日韩欧美一级二级三级 | 日韩免费在线观看| 日本福利片高清在线观看| 最新亚洲国产精品| 国内精彩免费自拍视频在线观看网址 | 欧美美乳视频网站在线观看| 午夜欧美在线| 无码人妻精品一区二区三区在线| 美女任你摸久久| 国产又粗又长又爽| 亚洲欧美综合色| 中文字幕av影院| 日韩欧美一区在线观看| 国产一区二区三区不卡在线| 欧美大片在线免费观看| 国产成人a视频高清在线观看| 国产精品青青草| 91精品婷婷色在线观看| 免费观看成人在线视频| 国产成人免费在线视频| 亚洲黄色网址大全| 色先锋资源久久综合| 欧美一级淫片aaaaaa| 久久香蕉国产线看观看av| 神马久久资源| 国产一区二区不卡视频在线观看| 一区二区影院| 日本 片 成人 在线| 91丝袜美腿高跟国产极品老师 | 日韩精品不卡| 亚洲精品人人| 欧美成人精品一区二区综合免费| 国产精品高清亚洲| 日韩国产成人在线| 亚洲美女av在线| 老司机深夜福利在线观看| 97伦理在线四区| 亚洲国产一成人久久精品| 污污网站免费观看| 欧美国产1区2区| 无码视频在线观看| 亚洲欧洲激情在线| 英国三级经典在线观看| 国内精品二区| 日韩视频久久| 自拍视频一区二区| 五月天亚洲婷婷| 天堂中文网在线| 午夜欧美大片免费观看| 国产精品chinese在线观看| 国产1区2区3区中文字幕| 国产福利精品导航| 久久久久久久黄色| 欧美mv日韩mv亚洲| 国产乱码在线| 国产综合18久久久久久| 99精品热6080yy久久| 一本加勒比波多野结衣| 欧美性高潮床叫视频| 日韩精品系列| 日本不卡免费高清视频| 精品九九在线| 国产视频手机在线播放| 国产精品久久久久影院色老大| 一级黄色大毛片| 欧美成人免费全部| 9999久久久久| 欧美a在线视频| 中文字幕精品一区二区三区精品| 精品成人无码久久久久久| 中文一区二区视频| 91视频亚洲| 国产在线视频在线| 99精品国产视频| 在线视频精品免费| 久久精品91久久香蕉加勒比| 韩国三级大全久久网站| 精品一区二区三区无码视频| 99国产精品久久| 伊人免费在线观看| 久久69精品久久久久久久电影好| 国偷自产视频一区二区久| 亚洲午夜无码av毛片久久| 国产日产亚洲精品系列| 国产视频在线免费观看| 午夜免费日韩视频| 成人精品视频| www.四虎精品| 91激情五月电影| 福利在线视频网站| 精品亚洲第一| 麻豆国产欧美一区二区三区| www.av视频| 亚洲欧美日韩一区二区在线| 91麻豆精品国产综合久久久| 9久久9毛片又大又硬又粗| 欧美国产日韩a欧美在线观看 | 日韩av中文字幕在线播放| av在线日韩| 男人天堂新网址| 欧美激情在线免费观看| 亚洲成人黄色片| 国产精品电影网站| 亚洲午夜电影| 在线视频这里只有精品| 亚洲国产日韩欧美在线动漫| 欧美成人xxxx| a在线视频观看| 亚洲免费大片在线观看| 久久米奇亚洲| 国产高清在线一区| 九色porny丨国产精品| 黄色一级片免费在线观看| 美女扒开尿口让男人操亚洲视频网站| 先锋影音国产精品| 黄页网站在线看|