PremiScale autoscaler
Project description
PremiScale
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.
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.
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
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 33ab60cac1017db02baa0282873239909eb778159acf3c46d06dc634d0db0ce7 |
|
MD5 | 3b863fbcdd1f670a9b377520f28cfa6f |
|
BLAKE2b-256 | 095b933caa4359f4b6a2a6466ee574418279bd3c4a9f490b63d92cdf2181acad |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4c41f2286f5b63a6ecb6f9332cd7685612ff1f9ba49ee695bc6e54e537f5f31d |
|
MD5 | 42f5daaa22db8ce4f5f9f3b44239d17a |
|
BLAKE2b-256 | b18b79ab302b4876fc7068a0afb8d423d186adfef60d12b2c7b2f619eb1f632a |