Skip to main content

Kubernetes cluster orchestrator

Project description

# KaaS [![Build Status](https://travis-ci.org/Mirantis/kqueen.svg?branch=master)](https://travis-ci.org/Mirantis/kqueen) [![Coverage Status](https://coveralls.io/repos/github/Mirantis/kqueen/badge.svg?branch=master)](https://coveralls.io/github/Mirantis/kqueen?branch=master)

## Development

` mkvirtualenv -p /usr/bin/python2 kqueen pip3 install -r requirements.txt python3 -m kqueen `

Kubernetes is today’s probably the most promising container orchestration platform and it is gaining huge momentum. There are many different installation tools and hosted solutions:

There is no need to develop new installation method because we already have many sufficient solutions and Kubernetes instllation isn’t a rocket science. However, there are still customers strugling to integrate Kubernetes because of missing solution for complex orchestration of multiple clusters. In this document we aim to address these problems and propose architecture.

## User stories

I’m application developer and I’d like to have a tool to quickly spin-up the cluster and run my application on it. I have multiple applications and need to have multiple clusters for different application. It would be nice to have a possibility to run diffirent application versions in on cluster.

I’m KaaS administration and I need be able to manage all the clusters for our internal customers. I need to list then, control resources and get basic overview about each cluster. I can do administration manualy but I’d like to be able to kill some dead minions and replace them easily. Autoscaling clusters (with predefined range) would be a nice bonus.

## Architecture

We have one central backend service (called queen) and this service listens for user requests (via API) and can orchestrate and operate clusters.

### Required actions - MVP

  • Create cluster - This action will be used to deploy new clusters. However, queen service don’t deploy cluster on it’s own but I uses another service (Jenkins, GKE, ..) to create this cluster.
  • Read cluster information - Read information about new (and existing) cluster and provide this information to users and administrators. This information must include endpoint for Kubernetes API server and all required credentials (token, basic auth or certificates)
  • Deploy application - This will connect to cluster and deploy the application. TODO: define format (apply YAMLs, Helm, …)
  • Delete cluster - destroy the cluster

### Additional actions

  • Check - read cluster information and give information about node usage and running workload
  • Scale - add or remove minions
  • Backup - backup resources in cluster and provide guidance for PV backup
  • Update - install newer version of Kubernetes
  • Autoscale - watch Kubernetes scheduler or pods and start new minions when all existing minions are fully utilized
  • Manage addons - enable or disable cluster addons

Project details


Download files

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

Files for kqueen, version 0.1
Filename, size File type Python version Upload date Hashes
Filename, size kqueen-0.1.tar.gz (6.4 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page