Skip to content

Commit

Permalink
Update README with DEMOs
Browse files Browse the repository at this point in the history
  • Loading branch information
pupapaik committed Nov 30, 2017
1 parent 5398377 commit 1507207
Show file tree
Hide file tree
Showing 3 changed files with 39 additions and 2 deletions.
29 changes: 27 additions & 2 deletions RATIONALE.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,15 +16,40 @@ However, there are still customers strugling to integrate Kubernetes because of

## 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.
It's important to understand what we're trying to achieve with KQueen. Consider these user stories:

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.
* **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 administrator** 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.

These goals lead to specific design principles explained in the next section.

## Design Principles

When it comes to KQueen, we adheres to the following design principles on the infrastructure management layer:

* **Kubernetes as a Service environment deployment:** Provide a multi-tenant self-service portal for k8s cluster provisioning.
* **Operations:** Focus on the audit, visibility, and security of Kubernetes clusters, in addition to actual operations.
* **Update and Upgrade:** Automate updating and upgrading of clusters..
* **Multi-Cloud Orchestration:** Support the same abstraction layer for any public, private, or bare metal provider.
* **Platform Agnostic Deployment** (any Kubernetes cluster): Enable provisioning of a Kubernetes cluster by various community installers/provisioners, including those with customizations. Do not provide a black box with a strict installation procedure.
* **Open, Zero Lock-in Deployment:** Provide a pure-play open source solution without any closed source.

## Architecture

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

### Workflow Diagram

KQueen supplies the backend API for provider-agnostic cluster management. It enables access from the UI, CLI, or API, and manages provisioning of Kubernetes clusters. It uses the following workflow:

1. Trigger deployment on the provisioner, enabling KQueen to use various provisioners (AKS, GKE, Jenkins) for Kubernetes clusters. For instance there can be used the Jenkins provisioner to trigger installation of Kubernetes.
2. The provisioner installs the Kubernetes cluster using the specific provider.
3. The provisioner returns the Kubernetes kubeconfig and API endpoint. This config is stored in the KQueen backend (etcd).
4. KQueen manages, operates, monitors, and audits the Kubernetes clusters. It reads all information from the API and displays it as a simple overview visualization. KQueen can also be extended by adding other audit components.

![kqueen workflow](https://github.com/Mirantis/kqueen/raw/readme/workflow.png "KQueen Workflow")

### 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.
Expand Down
12 changes: 12 additions & 0 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,10 @@ KQueen - Kubernetes cluster manager
.. image:: https://coveralls.io/repos/github/Mirantis/kqueen/badge.svg?branch=master
:target: https://coveralls.io/github/Mirantis/kqueen?branch=master

Overview
--------

More information about KQueen Architecture and use cases is described in `RATIONALE <RATIONALE.md>`_ file.

Development
-----------
Expand Down Expand Up @@ -79,3 +83,11 @@ For full documenation please refer to
:target: https://badge.fury.io/py/kqueen
.. |Coverage Status| image:: https://coveralls.io/repos/github/Mirantis/kqueen/badge.svg?branch=master
:target: https://coveralls.io/github/Mirantis/kqueen?branch=master

DEMOs
-----

Generic KQueen Overview

.. image:: https://img.youtube.com/vi/PCAwCxPQc2A/0.jpg
:target: https://www.youtube.com/watch?v=PCAwCxPQc2A&t=1s
Binary file added workflow.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 1507207

Please sign in to comment.