Ölçekleyici yapılandırmalarını anlama
v2
HPA API'sinin sürümü, YAML dosyasında adlı spec.behavior
yeni 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 scaleUp sabitleme penceresi yoktur. |
selectPolicy | Dize | Kullanılacak ilkenin seçili türü, bu değer , Max veya Disabled olabilirMin . |
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 Pods olabilirPercent . |
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 Disabled
olarak 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 selectPolicy
Max
, 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 selectPolicy
Max
, 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.