Skip to content

Autoscaling components for Kubernetes, re-added the label selector

License

Notifications You must be signed in to change notification settings

sker65/autoscaler

 
 

Repository files navigation

Kubernetes Autoscaler

Release Charts Tests GoDoc Widget

This repository contains autoscaling-related components for Kubernetes.

Changes of this fork

This fork re-introduces the possiblity to specify the pod for vpa recommendation by a pod selector (currently via matchLables) instead of using a targetRef. Both possibilities exist as alternative, so it is backwards compatible, but does no longer depend on a controller for the pod or scale subresource.

So far I modified only the recommender and the admission controller. Also there is a new object in the vps CRD like:

apiVersion: "autoscaling.k8s.io/v1"
kind: VerticalPodAutoscaler
metadata:
 name: foo-vpa
spec:
 selector:
   matchLabels:
     app: foo
 resourcePolicy:
   …

The new element "selector" can be used as an alternative to targerRef for specifing the pods to monitor.

What's inside

Cluster Autoscaler - a component that automatically adjusts the size of a Kubernetes Cluster so that all pods have a place to run and there are no unneeded nodes. Supports several public cloud providers. Version 1.0 (GA) was released with kubernetes 1.8.

Vertical Pod Autoscaler - a set of components that automatically adjust the amount of CPU and memory requested by pods running in the Kubernetes Cluster. Current state - beta.

Addon Resizer - a simplified version of vertical pod autoscaler that modifies resource requests of a deployment based on the number of nodes in the Kubernetes Cluster. Current state - beta.

Charts - Supported Helm charts for components above.

Contact Info

Interested in autoscaling? Want to talk? Have questions, concerns or great ideas?

Please join us on #sig-autoscaling at https://kubernetes.slack.com/, or join one of our weekly meetings. See the Kubernetes Community Repo for more information.

Getting the Code

Fork the repository in the cloud:

  1. Visit https://github.com/kubernetes/autoscaler
  2. Click Fork button (top right) to establish a cloud-based fork.

The code must be checked out as a subdirectory of k8s.io, and not github.com.

mkdir -p $GOPATH/src/k8s.io
cd $GOPATH/src/k8s.io
# Replace "$YOUR_GITHUB_USERNAME" below with your github username
git clone https://github.com/$YOUR_GITHUB_USERNAME/autoscaler.git
cd autoscaler

Please refer to Kubernetes Github workflow guide for more details.

About

Autoscaling components for Kubernetes, re-added the label selector

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 99.5%
  • Shell 0.3%
  • Python 0.1%
  • Makefile 0.1%
  • Dockerfile 0.0%
  • Mustache 0.0%