cluster-proportional-autoscaler
keda
cluster-proportional-autoscaler | keda | |
---|---|---|
3 | 92 | |
595 | 7,859 | |
1.8% | 2.7% | |
5.8 | 9.5 | |
7 days ago | 6 days ago | |
Go | Go | |
Apache License 2.0 | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
cluster-proportional-autoscaler
-
Practical Introduction to Kubernetes Autoscaling Tools with Linode Kubernetes Engine
The Cluster Proportional Autoscaler (CPA) is a horizontal pod autoscaler that scales replicas based on the number of nodes in the cluster. Unlike other autoscalers, it does not rely on the Metrics API and does not require the Metrics Server. Additionally, unlike other autoscalers we saw, a CPA is not scaled with a Kubernetes resource but instead uses flags to identify target workloads and a ConfigMap for scaling configuration. The following diagram illustrates the components of the CPA:
-
K8s ephemeral application environments
Namespacing each environment would give you isolation, depending on how your service discovery works within the environment. You could consider the horizontal proportional autoscaler (or maybe KEDA) and hook it up to a metric for the queue depth. https://github.com/kubernetes-sigs/cluster-proportional-autoscaler
-
Kubernetes Cluster Over-Provisioning: Proactive App Scaling
If we want to configure dynamic overprovisioning of a cluster (e.g. 20% of resources in the cluster) then we need to use Horizontal Cluster Proportional Autoscaler.
keda
-
Ask HN: What's the right way to scale K8s for GPU workloads?
It seems you want something like KEDA (https://keda.sh)
-
Tortoise: Shell-Shockingly-Good Kubernetes Autoscaling
Most just utilize out of the box macro resources available in HPA.
For more advanced use cases there is keda - https://keda.sh/
-
Root Cause Chronicles: Quivering Queue
Thankfully KEDA operator was already part of the cluster, and all Robin had to do was create a ScaledObject manifest targeting the Dispatch ScaleUp event, based on the rabbitmq_global_messages_received_total metric from Prometheus.
-
Five tools to add to your K8s cluster
Keda
- K8s latencies in chained services - Using RL?
-
Best Kubernetes DevOps Tools: A Comprehensive Guide
KEDA introduces event-driven scaling to Kubernetes workloads. It integrates with Kubernetes Horizontal Pod Autoscalers and can scale pods based on external metrics from services like databases and message queues (Kafka, RabbitMQ, MongoDB).
-
Auto-scaling DynamoDB Streams applications on Kubernetes
# update version 2.8.2 if required kubectl apply -f https://github.com/kedacore/keda/releases/download/v2.8.2/keda-2.8.2.yaml
- KEDA
-
What is the difference in production for scale to zero usecases - Keda vs Lambda ?
This is traditionally a AWS Lambda usecase - or an OpenFaas kind of usecase. But very recently i discovered https://keda.sh/ and it seems it is specifically meant for this in a kubernetes environment.
-
Ingesting Data into OpenSearch using Apache Kafka and Go
If you deploy the application to Amazon EKS, you can also consider using KEDA to auto-scale your consumer application based on the number of messages in the MSK topic.
What are some alternatives?
autoscaler - Autoscaling components for Kubernetes
k8s-prometheus-adapter - An implementation of the custom.metrics.k8s.io API using Prometheus
argo - Workflow Engine for Kubernetes
Overprovisioner
istio - Connect, secure, control, and observe services.
metrics-server - Scalable and efficient source of container resource metrics for Kubernetes built-in autoscaling pipelines.
karpenter-provider-aws - Karpenter is a Kubernetes Node Autoscaler built for flexibility, performance, and simplicity.
vcluster - vCluster - Create fully functional virtual Kubernetes clusters - Each vcluster runs inside a namespace of the underlying k8s cluster. It's cheaper than creating separate full-blown clusters and it offers better multi-tenancy and isolation than regular namespaces.
helm - The Kubernetes Package Manager
dotnet-pressure-api - An API that can apply memory and CPU pressure to test autoscaling rules in Kubernetes
http-add-on - Add-on for KEDA to scale HTTP workloads