> ## Documentation Index
> Fetch the complete documentation index at: https://docs.apinizer.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Apinizer Ortamlarının Otomatik Ölçeklendirilmesi

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.](/tr/setup/kubernetes/kubernetes-metric-server.mdx)

## Yapılandırma

Yaml dosyası oluşturun:

```bash theme={null}
sudo vi hpa-autoscaling.yaml
```

<Tip>
  Yaml'da `NAMESPACE` ve `DEPLOYMENT_NAME` alanlarını uygulamanıza göre düzenleyiniz.
</Tip>

```yaml theme={null}
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:

```bash theme={null}
kubectl apply -f manager-hpa-autoscaling.yaml
```

## Yapılandırma Parametreleri

| Alan                 | Açıklama                                                                                                                                                                                                                |
| -------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `scaleTargetRef`     | Bu alanda ölçeklendirme hangi deployment için çalışacağı belirtilir. Örnek: manager.                                                                                                                                    |
| `minReplicas`        | Minimum olması gereken pod sayısıdır. Örnek: 2.                                                                                                                                                                         |
| `maxReplicas`        | Maksimum sistemde olabilecek pod sayısıdır. Örnek: 10.                                                                                                                                                                  |
| `averageUtilization` | Bu 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.                                                                            |
| `scaleDown`          | Hedef kullanım seviyesinin altına düşmesi durumunda yeni oluşturduğu podlardan her 60 saniyede verilen değer miktarınca pod azaltacaktır.                                                                               |
| `scaleUp`            | Hedef 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. |

<Tip>
  scaleDown özelliğini kapatmak için **"selectPolicy: Disabled"** olarak değiştiriniz.
</Tip>
