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.
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
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. |
scaleDown özelliğini kapatmak için selectPolicy: Disabled olarak değiştiriniz.