1. 程式人生 > >Kubernetes v1.7新特性:新增自動伸縮條件和引數_Kubernetes中文社群

Kubernetes v1.7新特性:新增自動伸縮條件和引數_Kubernetes中文社群

一、核心概念

Horizontal Pod Autoscaling,簡稱HPA,是Kubernetes中實現POD水平自動伸縮的功能。雲端計算具有水平彈性的特性,這個是雲端計算區別於傳統IT技術架構的主要特性。對於Kubernetes中的POD叢集來說,HPA可以實現很多自動化功能,比如當POD中業務負載上升的時候,可以建立新的POD來保證業務系統穩定執行,當POD中業務負載下降的時候,可以銷燬POD來提高資源利用率。

HPA控制器預設每隔30秒就會執行一次,如果要修改間隔時間,可以設定horizontal-pod-autoscaler-sync-period引數。

二、k8s 1.7新特性

1、HPA觸發條件新特性(α特性)

Kubernetes1.7中,對HorizontalPodAutoscalerStatus結構體,新增加了Conditions屬性。

Conditions屬性是一個HorizontalPodAutoscalerCondition結構體,在這個結構體中包括Type、Status、LastTransitionTime、Reason和Message五個屬性,每個屬性的含義如下:

•       Status屬性:表示Type屬性是true還是false。取值為true和false,只有當HPA控制器檢查的目標指標執行正常的時候才會設定ScalingActive為true。在其他情況下會將ScalingActive設定成false。如果Type是AbleToScale型別,那麼取值為true的時候有三種情況,第一種是當HPA控制器可以獲取當前目標自動伸縮,第二種是HPA控制器可以擴充套件或者收縮目標到指定的副本數,第三種是HPA控制器發現已經到了可以啟動一次新的自動伸縮時間了,在其他情況下會設定成false。如果Type是ScalingLimited,那麼只有當副本數在配置範圍內的時候才被設定成false,否則都是true。

•       Reason:記錄上一次事務產生的原因。

•       Type屬性:包含三個可選型別,ScalingActive、AbleToScale和ScalingLimited。

•       LastTransitionTime:記錄上一次事務執行時間。

•       Message:記錄上一次事務產生的詳細資訊。

通過kubectl describe hpa命令可以看到HorizontalPodAutoscalerStatus結構體新增的Conditions屬性。

$kubectl describe hpa cm-test  

Name:                           cm-test  

Namespace:                      prom  

Labels:                         <none>  

Annotations:                    <none>  

CreationTimestamp:              Fri, 16 Jun 2017 18:09:22 +0000  

Reference:                     ReplicationController/cm-test  

Metrics:                        ( current / target )  

  "http_requests" on pods:      66m / 500m  

Minreplicas:                   1  

Maxreplicas:                   4  

ReplicationControllerpods:     1 current / 1 desired  

Conditions:  

  Type                  Status  Reason                  Message  

  ----                  ------  ------                  -------  

  AbleToScale           True    ReadyForNewScale        the last scale time was sufficientlyold as to warrant a new scale  

  ScalingActive         True   ValidMetricFound        the HPAwas able to successfully calculate a replica count from pods metrichttp_requests  

  ScalingLimited        False  DesiredWithinRange      thedesired replica count is within the acceptible range  

Events:

2、增加了兩個HPA引數(α特性)

在Kubernetes1.7中,對HPA控制器,在原先horizontal-pod-autoscaler-sync-period引數基礎上,新增加了horizontal-pod-autoscaler-upscale-delay和horizontal-pod-autoscaler-downscale-delay兩個引數,預設值分別是3分鐘和5分鐘,分別代表自動伸展後的延遲時間和自動收縮後的延遲時間。

HPA控制器通過這兩個新增引數來加以輔助控制是否進行自動伸縮,同時也會根據這兩個引數來設定HorizontalPodAutoscalerCondition結構體的Conditions屬性。