Задача: Масштабирование приложения в 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 год назад