Sobes.tech
Middle — Middle+

Как динамично да управляваме броя на контейнерите в Kubernetes в зависимост от натоварването на системата?

sobes.tech AI

Отговор от AI

В Kubernetes за динамично управление на броя на контейнерите (реплики на подове) се използва Horizontal Pod Autoscaler (HPA). HPA автоматично мащабира броя на подовете в Deployment, ReplicaSet или StatefulSet въз основа на метрики като натоварване на CPU, памет или персонализирани метрики.

Пример за настройка на HPA, който мащабира броя на подовете в зависимост от натоварването на CPU:

apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
  name: primer-hpa
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: primer-deployment
  minReplicas: 1
  maxReplicas: 10
  metrics:
  - type: Resource
    resource:
      name: cpu
      target:
        type: Utilization
        averageUtilization: 50

Тук HPA ще поддържа средното натоварване на CPU на ниво 50%, като увеличава или намалява броя на подовете в диапазона от 1 до 10.

Също така може да се използва Vertical Pod Autoscaler (VPA) за промяна на ресурсите на пода, но за мащабиране на броя на репликите, HPA е най-подходящият избор.