Skip to content

Latest commit

 

History

413 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

KubeElasti Logo

KubeElasti

Confidently Scale-to-zero with no downtime

Lint and Test codecov Artifact Hub CNCF Landscape OpenSSF Best Practices OpenSSF Scorecard FOSSA Status License Docs Static Badge

Why use KubeElasti?

Kubernetes clusters can become costly, especially when running multiple services continuously. KubeElasti addresses this issue by giving you the confidence to scale down services during periods of low or no traffic, as it can bring them back up when demand increases. This optimization minimizes resource usage without compromising on service availability. Additionally, KubeElasti ensures reliability by acting as a proxy that queues incoming requests for scaled-down services. Once these services are reactivated, KubeElasti processes the queued requests, so that no request is lost. This combination of cost savings and dependable performance makes KubeElasti an invaluable tool for efficient Kubernetes service management.

The name Elasti comes from a superhero "Elasti-Girl" from DC Comics. Her superpower is to expand or shrink her body at will—from hundreds of feet tall to mere inches in height. Kube just refers to kubernetes. Elasti powers in kubernetes!

KubeElasti(Sometimes referred to as just "Elasti").

Illustration of KubeElasti's active vs. serverless modes

Contents

Introduction

KubeElasti is a Kubernetes-native solution that offers scale-to-zero functionality when there is no traffic and automatic scale up to 1 when traffic arrives. Most Kubernetes autoscaling solutions like HPA or Keda can scale from 1 to n replicas based on cpu utilization or memory usage. However, these solutions do not offer a way to scale to 0 when there is no traffic. KubeElasti solves this problem by dynamically managing service replicas based on real-time traffic conditions. It only handles scaling the application down to 0 replicas and scaling it back up to 1 replica when traffic is detected again. The scaling after 1 replica is handled by the autoscaler like HPA or Keda.

KubeElasti uses a proxy mechanism that queues and holds requests for scaled-down services, bringing them up only when needed. The proxy is used only when the service is scaled down to 0. When the service is scaled up to 1, the proxy is disabled and the requests are processed directly by the pods of the service.

Key Features

  • Seamless Integration: KubeElasti integrates effortlessly with your existing Kubernetes setup - whether you are using HPA or Keda. It takes just a few steps to enable scale to zero for any service.

  • Deployment, StatefulSet, Argo Rollouts Support: KubeElasti supports three scale target references: Deployment, StatefulSet and Argo Rollouts, making it versatile for various deployment scenarios.

  • Prometheus Metrics Export: KubeElasti exports Prometheus metrics for easy out-of-the-box monitoring. You can also import a pre-built dashboard into Grafana for comprehensive visualization.

  • Generic Service Support: KubeElasti works at the kubernetes service level. It also supports East-West traffic using cluster-local service DNS, ensuring robust and flexible traffic management across your services. So any ingress or service mesh solution can be used with KubeElasti.

  • Autoscaler Integration: KubeElasti can work seamlessly with HPA and Keda.

Getting Started

Details on how to install and configure KubeElasti can be found in the installation and demo guide.

Configure KubeElasti

Check out the different ways to configure KubeElasti in the Configuration guide.

Monitoring

Monitoring details can be found in the Monitoring guide.

Development

Refer to DEVELOPMENT.md for more details.

Contribution

Contribution details can be found in the Contribution guide.

Governance

Project governance details, including roles, decision-making, and maintainer responsibilities, are documented in GOVERNANCE.md. The formal voting process is in VOTING.md.

Adopters

See the list of organizations who are using KubeElasti in Production or in Staging in the Adopters guide.

Getting Help

We have a dedicated Discussions section for getting help and discussing ideas.

KubeElasti Community Day is a public community call on the second Thursday of each month, 19:00-19:30 Asia/Kolkata (13:30-14:00 UTC). Join on Google Meet. Details live in GOVERNANCE.md.

Roadmap

We are maintaining the future roadmap using the issues and milestones. You can also suggest ideas and vote for them by adding a 👍 reaction to the issue.

Contributors

KubeElasti is built by a growing community of contributors. Thank you to everyone who has helped shape the project!

KubeElasti contributors

We are actively looking for additional reviewers and maintainers to help grow and steer the project. If you are interested in taking on a larger role, apply with the role application form. The bar is 2 merged PRs and a month of activity for maintainer, 1 merged PR and a month for reviewer. Not there yet? Say hi on Slack or start a thread in our Discussions. See the Contribution and Governance guides to get started.

Project Supporters

KubeElasti is supported by TrueFoundry, which contributed the project to the Cloud Native Computing Foundation (CNCF).

About

Kubernetes-native scale-to-zero with zero traffic loss, no code changes, and direct integration with kubernetes resources

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

277 stars

Watchers

4 watching

Forks

Releases

Packages

Used by

Contributors

Languages