Skip to main content

PremiScale autoscaler

Project description

PremiScale

GitHub Release Business License 1.1

PremiScale is a controller that brings autoscaling of virtual and physical infrastructure to local, self-hosted and private datacenters, with a particular focus on integrating with the Kubernetes cluster autoscaler.

Architecture

PremiScale uses libvirt to connect to hosts and manage lifecycles of virtual machines. The Libvirt daemon provides a rich API for interacting with hypervisors, hosts and virtual machines.

The controller can be configured to run in two different modes, including kubernetes (the default) and standalone modes. In either configuration, the controller aims to start only relevant processes for both data collection and managing virtual machines. Users are required at this time to provide a list of hosts on which virtual machines can be created, in addition to a list of autoscaling groups, into which virtual machines the controller manages, are organized.

Kubernetes

Starting the controller in kubernetes mode (the default) starts relevant components of the controller that allow it to interface with the cluster autoscaler.

premiscale architecture: internal autoscaler disabled

Note that, in this configuration, the controller does not require a time series database. State is still reconciled, but the time series signal comes from the cluster autoscaler instead.

Standalone

In standalone mode, the controller starts its own time series data collection process.

premiscale architecture: internal autoscaler enabled

Configuration

The controller is configured in a couple ways, including its command line interface, environment variables (as indicated in the help text below), and through the required config file (all versions of which are documented here in this repository).

$ premiscale --help
usage: premiscale [-h] [--token TOKEN] [-c CONFIG] [--validate] [--version]
                  [--log-level {info,error,warn,debug}]
                  [--log-file LOG_FILE | --log-stdout]

The PremiScale autoscaling controller for Kubernetes.

options:
  -h, --help            show this help message and exit
  --token TOKEN         Platform registration token. Also available as the
                        environment variable 'PREMISCALE_TOKEN'. If no token
                        is provided, the controller will not register with the
                        platform and start in standalone mode.
  -c CONFIG, --config CONFIG
                        Configuration file path to use. Also available as the
                        environment variable 'PREMISCALE_CONFIG_PATH'.
                        (default: /opt/premiscale/config.yaml)
  --validate            Validate the provided configuration file and exit.
                        (default: false)
  --version             Display controller version.
  --log-level {info,error,warn,debug}
                        Set the logging level. Also available as the
                        environment variable 'PREMISCALE_LOG_LEVEL'. (default:
                        info)
  --log-file LOG_FILE   Specify the file the service logs to if --log-stdout
                        is not set. Also available as the environment variable
                        'PREMISCALE_LOG_FILE'. (default:
                        /opt/premiscale/controller.log)
  --log-stdout          Log to stdout (for use in containerized deployments).
                        (default: false)

For more information, visit https://premiscale.com.

© PremiScale, Inc. 2024.

Installation

This project is intended to be deployed to Kubernetes, whether you intend to integrate with the cluster autoscaler or not.

See the Helm chart README for an overview of controller installation.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

premiscale-0.0.2.tar.gz (32.2 kB view details)

Uploaded Source

Built Distribution

premiscale-0.0.2-py3-none-any.whl (48.1 kB view details)

Uploaded Python 3

File details

Details for the file premiscale-0.0.2.tar.gz.

File metadata

  • Download URL: premiscale-0.0.2.tar.gz
  • Upload date:
  • Size: 32.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.10.6

File hashes

Hashes for premiscale-0.0.2.tar.gz
Algorithm Hash digest
SHA256 33ab60cac1017db02baa0282873239909eb778159acf3c46d06dc634d0db0ce7
MD5 3b863fbcdd1f670a9b377520f28cfa6f
BLAKE2b-256 095b933caa4359f4b6a2a6466ee574418279bd3c4a9f490b63d92cdf2181acad

See more details on using hashes here.

File details

Details for the file premiscale-0.0.2-py3-none-any.whl.

File metadata

  • Download URL: premiscale-0.0.2-py3-none-any.whl
  • Upload date:
  • Size: 48.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.10.6

File hashes

Hashes for premiscale-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 4c41f2286f5b63a6ecb6f9332cd7685612ff1f9ba49ee695bc6e54e537f5f31d
MD5 42f5daaa22db8ce4f5f9f3b44239d17a
BLAKE2b-256 b18b79ab302b4876fc7068a0afb8d423d186adfef60d12b2c7b2f619eb1f632a

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page