Azure Kubernetes Service (AKS) scaling demo using Kubernetes Event Driven Autoscaler, Node Auto Provisioning, and Vertical Pod Autoscaler
- Node Auto Provisioning (NAP).
- Kubernetes Event Driven Autoscaling (KEDA) with a Prometheus scaler.
- Vertical Pod Autoscaler (VPA).
- Azure Monitor managed service for Prometheus.
- Azure Managed Grafana.
- Clone the repository locally.
- Login using
az login
. - Make sure
kubectl
is installed. - Make sure
yq
is installed (https://github.com/mikefarah/yq/#install). - Run
./setup.sh
in a Bash shell, preferably in Windows Subsystem for Linux (WSL).
/workout
: generates long strings and stores them in memory./metrics
: Prometheus metrics./stats
: .NET stats.
- Run a load test against the
/workout
endpoint. You can use Azure Load Testing. - Review the Grafana dashboards.
- Observe KEDA scaling the deployment based on requests per second.
kubectl get events -n serverloader --field-selector source=keda-operator -w
- Observe the deployments scaling in response to KEDA.
kubectl get event -n serverloader --field-selector source=deployment-controller -w
- Observe VPA changing the requests on the deployment.
kubectl get events -n serverloader --field-selector source=vpa-updater -w
- Observe Node Auto Provisioning adding more nodes to the cluster.
kubectl get events -n serverloader --field-selector source=karpenter -w