Ana içeriğe atla
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.

Yapılandırma

Yaml dosyası oluşturun:
sudo vi hpa-autoscaling.yaml
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
Yaml dosyasını uygulayın:
kubectl apply -f manager-hpa-autoscaling.yaml

Yapılandırma Parametreleri

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.