Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Если вы следовали предыдущим руководствам, у вас настроен рабочий кластер Kubernetes и приложение Azure Store Front.
В этом руководстве вы увеличиваете количество pod в приложении, пробуете автоматическое масштабирование pod и настраиваете количество узлов виртуальных машин Azure, чтобы изменить емкость кластера для размещения рабочих нагрузок. Вы узнаете, как:
- Масштабирование узлов Kubernetes.
- Вручную масштабируйте модули pod Kubernetes, которые запускают приложение.
- Настройте pod'ы автоматического масштабирования, которые запускают фронтэнд приложения.
Перед началом
В предыдущих руководствах вы упаковали приложение в образ контейнера, отправили образ в Реестр контейнеров Azure, создали кластер AKS, развернули приложение и использовали Служебная шина Azure для повторного развертывания обновленного приложения. Если вы не выполнили эти действия и хотите продолжать, начните с Руководство 1 - Подготовка приложения для AKS.
Для этого руководства требуется Azure CLI версии 2.34.1 или более поздней. Чтобы узнать версию, выполните команду az --version
. Если вам необходимо выполнить установку или обновление, см. статью Установка Azure CLI 2.0.
Масштабировать pod вручную
Посмотрите pods в вашем кластере используя команду
kubectl get
.kubectl get pods
В следующем примере вывода данных показаны поды, запущенные приложением Azure Store Front.
NAME READY STATUS RESTARTS AGE order-service-848767080-tf34m 1/1 Running 0 31m product-service-4019737227-2q2qz 1/1 Running 0 31m store-front-2606967446-2q2qz 1/1 Running 0 31m
Вручную измените количество pods в развертывании store-front с помощью команды
kubectl scale
.kubectl scale --replicas=5 deployment.apps/store-front
Убедитесь, что дополнительные pods были созданы с помощью команды
kubectl get pods
.kubectl get pods
В следующем примере выходных данных показаны дополнительные модули pod, работающие в приложении Azure Store Front:
READY STATUS RESTARTS AGE store-front-2606967446-2q2qzc 1/1 Running 0 15m store-front-3309479140-2hfh0 1/1 Running 0 3m store-front-3309479140-bzt05 1/1 Running 0 3m store-front-3309479140-fvcvm 1/1 Running 0 3m store-front-3309479140-hrbf2 1/1 Running 0 15m store-front-3309479140-qphz8 1/1 Running 0 3m
Автоматическое масштабирование подов
Для использования горизонтального автомасштабирования подов все контейнеры должны иметь определенные запросы на центральный процессор и ограничения, а поды должны иметь указанные запросы.
aks-store-quickstart
В развертывании интерфейсный контейнер запрашивает 1 млн ЦП с ограничением в 1000 млн ЦП.
Эти запросы и ограничения ресурсов определяются для каждого контейнера, как показано в следующем сжатом примере YAML:
...
containers:
- name: store-front
image: ghcr.io/azure-samples/aks-store-demo/store-front:latest
ports:
- containerPort: 8080
name: store-front
...
resources:
requests:
cpu: 1m
...
limits:
cpu: 1000m
...
Автомасштабирование модулей pod с помощью файла манифеста
Создайте файл манифеста для определения поведения автомасштабирования и ограничений ресурсов, как показано в следующем сжатом примере файла
aks-store-quickstart-hpa.yaml
манифеста:apiVersion: autoscaling/v2 kind: HorizontalPodAutoscaler metadata: name: store-front-hpa spec: maxReplicas: 10 # define max replica count minReplicas: 3 # define min replica count scaleTargetRef: apiVersion: apps/v1 kind: Deployment name: store-front metrics: - type: Resource resource: name: cpu target: type: Utilization averageUtilization: 50
Примените файл манифеста автомасштабирования с помощью
kubectl apply
команды.kubectl apply -f aks-store-quickstart-hpa.yaml
Проверьте состояние автомасштабирования с помощью
kubectl get hpa
команды.kubectl get hpa
Через несколько минут при минимальной нагрузке на приложение Azure Store-Front количество реплик Pod уменьшается до трех. Вы можете использовать
kubectl get pods
еще раз, чтобы увидеть, как удаляются ненужные pod.
Примечание.
Вы можете включить надстройку Kubernetes AKS для автомасштабирования на основе событий (KEDA) в вашу кластер для управления масштабированием на основе количества событий, которые необходимо обработать. Дополнительные сведения см. в разделе "Включение упрощенного автомасштабирования приложений" с помощью надстройки Kubernetes Event-Driven Autoscaling (KEDA) (предварительная версия).
Масштабирование узлов AKS вручную
Если вы создали кластер Kubernetes с помощью команд в предыдущих руководствах, кластер имеет два узла. Если вы хотите увеличить или уменьшить эту сумму, можно вручную настроить количество узлов.
В следующем примере в кластере Kubernetes myAKSCluster число узлов увеличивается до трех. Для выполнения этой команды требуется несколько минут.
Масштабирование узлов кластера с помощью
az aks scale
команды.az aks scale --resource-group myResourceGroup --name myAKSCluster --node-count 3
После успешного масштабирования кластера выходные данные будут похожи на следующие примеры выходных данных:
"aadProfile": null, "addonProfiles": null, "agentPoolProfiles": [ { ... "count": 3, "mode": "System", "name": "nodepool1", "osDiskSizeGb": 128, "osDiskType": "Managed", "osType": "Linux", "ports": null, "vmSize": "Standard_DS2_v2", "vnetSubnetId": null ... } ... ]
Вы также можете автомасштабировать узлы в кластере. Для получения дополнительной информации см. Использование автомасштабирования кластера с пулами узлов.
Следующие шаги
В этом руководстве вы использовали различные возможности масштабирования кластера Kubernetes. Вы научились выполнять следующие задачи:
- Вручную масштабируйте поды Kubernetes, которые запускают ваше приложение.
- Настройте pods автомасштабирования, которые поддерживают работу фронтенда приложения.
- Вручную масштабируйте узлы Kubernetes.
В следующем руководстве вы узнаете, как обновить Kubernetes в кластере AKS.
Azure Kubernetes Service