Bu döküman, podların yatay ölçeklendirme (horizontal auto-scaling) işlemlerinin nasıl yapılandırılacağını açıklar.

Bu yatay ölçeklendirme özelliği, uygulamanın taleplerine göre otomatik olarak pod sayısını artırıp azaltarak kaynak kullanımını optimize eder.

Kubernetes kümenizde ölçeklendirme özelliğini kullanabilmek için bir metric-server kurulu olması gerekmektedir. Eğer mevcut değil ise kurulum için buraya tıklayabilirsiniz.

sudo vi hpa-autoscaling.yaml
XML

Yaml'da Namespace ve deployment name alanlarını uygulamanıza göre düzenleyiniz.

apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
  name: apinizer-hpa
  namespace: <NAMESPACE>
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: <DEPLOYMENT_NAME>
  minReplicas: 1
  maxReplicas: 10
  metrics:
  - type: Resource
    resource:
      name: cpu
      target:
        type: Utilization
        averageUtilization: 70
  - type: Resource
    resource:
      name: memory
      target:
        type: Utilization
        averageUtilization: 70
  behavior:
    scaleDown:
      selectPolicy: Max
      policies:
      - type: Pods
        value: 1
        periodSeconds: 60
    scaleUp:
      stabilizationWindowSeconds: 60
      policies:
      - type: Pods
        value: 1
        periodSeconds: 60
      selectPolicy: Max
XML
kubectl apply -f manager-hpa-autoscaling.yaml
XML
AlanAçıklama
scaleTargetRefBu alanda ölçeklendirme hangi deployment için çalışacağı belirtilir. Örnek: manager.
minReplicasMinimum olması gereken pod sayısıdır. Örnek: 2.
maxReplicasMaksimum sistemde olabilecek pod sayısıdır. Örnek: 10.
averageUtilizationBu alanda cpu ve memory kullanımı için yüzdelik olarak bir değer girebilir. Belirtilen seviyenin üstüne çıkması sonucunda pod oluşturcaktır.
scaleDownHedef kullanım seviyesinin altına düşmesi durumunda yeni oluşturduğu podlardan her 60 saniyede verilen değer miktarınca pod azaltacaktır.
scaleUpHedef kullanım seviyesinin üstüne çıkması durumunda, belirtilen stabilizationWindowSeconds değeri olan 60 saniye boyunca kontrol edilir. Şartın sağlanması durumunda, her 60 saniyede bir pod clusterınıza eklenir.

scaleDown özelliğini kapatmak için selectPolicy: Disabled olarak değiştiriniz.