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 в вашем кластере.
1 минута
29 июня 2023