Ölçekleyici yapılandırmalarını anlama

Tamamlandı

v2 HPA API'sinin sürümü, YAML dosyasında adlı spec.behavioryeni bir anahtar kullanarak davranışının bazı yönlerinde ince ayar yapmanızı sağlar. HpA'nın ölçeği daraltırken ve ölçeği artırırken nasıl davranacağını tanımlayan iki anahtar daha kabul eder: scaleDown ve scaleUp.

Bu anahtarların her biri için aşağıdaki değerlere izin verilir:

Tuş Türü Açıklama
stabilizasyonWindowSeconds int HPA'nın istenen durumu hesaplamak için ölçümleri araması dönemi. için scaleDown varsayılan değer beş dakikadır ve için scaleUpsabitleme penceresi yoktur.
selectPolicy Dize Kullanılacak ilkenin seçili türü, bu değer , Maxveya DisabledolabilirMin.
ilkeler dizisi HPAScalingPolicy Uygulanacak olası ilke dizisi.

HPAScalingPolicy nesnesi, aşağıdaki anahtarlara sahip bir nesne olarak tanımlanır:

Tuş Türü Açıklama
type Dize İlke türü veya PodsolabilirPercent.
değer int İlkenin değeri.
periodSeconds int Bu ilkenin yeniden uygulanabilmesi için gereken süre.

Ölçeklendirme ilkeleri, ölçeklendirmenin çalışma şekline ince ayar yapmanızı sağlar. Örneğin, aşağıdaki örnekte gösterildiği gibi bir scaleDown ilkeyi Disabledolarak ayarlayarak ölçeği azaltma işlemini tamamen devre dışı bırakabilirsiniz:

apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
  name: contoso-website
  namespace: hpa-contoso
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: contoso-website
  minReplicas: 1
  maxReplicas: 10
  behavior:
    scaleDown:
      selectPolicy: Disabled
  metrics:
    - type: Resource
      resource:
        name: cpu
        target:
          type: Utilization
          averageUtilization: 20
    - type: Resource
      resource:
        name: memory
        target:
          type: Utilization
          averageUtilization: 50

Aşağıdaki gibi bir scaleUp ilke tanımlayarak bir kerede ölçeği genişletecek çoğaltma sayısını da ayarlayabilirsiniz:

apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
  name: contoso-website
  namespace: hpa-contoso
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: contoso-website
  minReplicas: 1
  maxReplicas: 10
  behavior:
    scaleUp:
      selectPolicy: Max
      stabilizationWindowSeconds: 120
      policies:
        - type: Percent
          value: 30
          periodSeconds: 60
        - type: Pods
          value: 7
          periodSeconds: 90
  metrics:
    - type: Resource
      resource:
        name: cpu
        target:
          type: Utilization
          averageUtilization: 20
    - type: Resource
      resource:
        name: memory
        target:
          type: Utilization
          averageUtilization: 50

Bu bildirimde HPA'ya istenen durumu hesaplamak ve bu değerlerden en yüksek değeri elde etmek için son 120 saniyelik ölçümleri aramasını söylemiş olursunuz. Bunu yaptıktan sonra mevcut podların %30'unu hesaplar, bu sayıyı yukarı yuvarlar ve sabit yedi pod değeriyle karşılaştırır. olarak ayarlandığından selectPolicyMax, bu iki sayının daha büyük sayısını alır ve bu ilkeyi uygular, ardından ilkeleri yeniden uygulamadan önce bekler periodSeconds .

Örneğin, web sitesinin 18 pod ile çalıştığını ve ardından yaklaşık 120 saniye süren bir ani artış yaşadığını varsayalım. İstenen durum, 5,4 olan (6'ya yuvarlanmış) geçerli çalışan podların %30'unun hesaplanmasıyla hesaplanır. Bu değer, 7 olan ikinci ilkedeki pod sayısıyla karşılaştırılır. Anahtar olarak ayarlandığından selectPolicyMax, bu iki değerin daha büyük değerini kullanır. Ardından HPA 7 ölçeklendirilir ve ölçeği yeniden artırmadan önce 90 saniye bekler. Ani artış 25 poda kadar devam ettiyse, hesaplama yeniden yapılır. 25 podun %30'unun 7,5 (8'e yuvarlanarak) değeri 7'den büyüktür. Şimdi HPA sekiz yeni pod oluşturur ve ölçeği yeniden artırmadan önce 60 saniye bekler.

Bilgilerinizi kontrol edin

1.

Sabitleme penceresi nedir?

2.

selectPolicies için üç değer nelerdir?

3.

HPA'nıza davranışı ne zaman tanımlamanız gerekir?