Найти в Дзене
5 подписчиков

Задача:

Масштабирование приложения в Kubernetes с помощью горизонтального автоматического масштабирования (Horizontal Pod Autoscaling, HPA).

Описание задачи:
У вас есть веб-приложение, развернутое в Kubernetes, и вы хотите настроить автоматическое масштабирование, чтобы количество экземпляров приложения могло динамически изменяться в зависимости от нагрузки.

Решение задачи:
Создайте манифест Deployment для вашего приложения. В этом манифесте укажите имя образа Docker, количество реплик (начальное число экземпляров приложения) и другие необходимые параметры. Сохраните этот манифест в файле с расширением .yaml.

# app-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
 name: my-app-deployment
spec:
 replicas: 3
 selector:
  matchLabels:
   app: my-app
 template:
  metadata:
   labels:
   app: my-app
  spec:
   containers:
   - name: my-app-container
   image: my-app-image:latest
   ports:
   - containerPort: 8080

Создайте манифест для настройки горизонтального автоматического масштабирования (HPA) на основе нагрузки в виде использования CPU. В этом манифесте укажите минимальное и максимальное количество реплик, целевое значение нагрузки и другие необходимые параметры. Сохраните этот манифест в файле с расширением .yaml.

# app-hpa.yaml
apiVersion: autoscaling/v2beta2
kind: HorizontalPodAutoscaler
metadata:
 name: my-app-hpa
spec:
 scaleTargetRef:
  apiVersion: apps/v1
  kind: Deployment
  name: my-app-deployment
 minReplicas: 1
 maxReplicas: 5
 metrics:
  - type: Resource
   resource:
   name: cpu
   target:
   type: Utilization
   averageUtilization: 50

Примените оба манифеста с помощью команды kubectl apply -f:

kubectl apply -f app-deployment.yaml
kubectl apply -f app-hpa.yaml

Проверьте состояние развертывания и настройки HPA с помощью команды kubectl get:

kubectl get deployment my-app-deployment
kubectl get hpa my-app-hpa

Тестируйте автоматическое масштабирование, увеличивая или уменьшая нагрузку на приложение. Kubernetes будет автоматически изменять количество реплик приложения на основе определенных метрик (например, использования CPU).

Примечание: Для успешного выполнения этой задачи требуется наличие кластера Kubernetes, настроенного и готового для развертывания приложений. Кроме того, у вас должны быть соответствующие права и доступ к настройке HPA в вашем кластере.
Задача: Масштабирование приложения в Kubernetes с помощью горизонтального автоматического масштабирования (Horizontal Pod Autoscaling, HPA).
1 минута