
Network-Aware Dynamic Pod Scaling with Custom Metrics
Using native Kubernetes components with custom metrics for intelligent, resource-efficient scaling of network-intensive components.

- Purpose: Automatically provisions new nodes in response to unschedulable pods
- Installation: Typically installed via Helm (as discussed below) or Kubernetes manifests
Provisioner
to define how it should provision nodes. Here's an example configuration which specifies limitations of network-bandwith:- Network bandwidth usage: Scales when average usage exceeds 5MB/s per pod.
- Active requests: Scales when average active requests exceed 3 per pod.
- Exporting custom metrics from the application.
- Using Prometheus to collect and process these metrics.
- Configuring Prometheus Adapter to make the metrics available to Kubernetes.
- Scale up Pods on Network intensive nodes as defined in the karpenter nodepool
- Setting up an HPA to use these custom metrics for scaling decisions.
Any opinions in this post are those of the individual author and may not reflect the opinions of AWS.