From 66ddf3c4e0814ba8148b10d4bf2c3e09f93e1303 Mon Sep 17 00:00:00 2001 From: archyufa Date: Fri, 16 Sep 2016 07:22:58 -0400 Subject: [PATCH] Readme Update Following sections has been addedd: * Features * Rolling Updates of Kubernetes application * Interacting with Kubernetes Cluster deployed by Murano Co-Authored-By: Nikolay Mahotkin Change-Id: I7d7572d6c53c9f6f0165ff55fa4d0ed5abdedef9 --- Kubernetes/README.rst | 108 ++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 104 insertions(+), 4 deletions(-) diff --git a/Kubernetes/README.rst b/Kubernetes/README.rst index a438f51..b9e934e 100644 --- a/Kubernetes/README.rst +++ b/Kubernetes/README.rst @@ -1,16 +1,16 @@ -Google Kubernetes for Murano -============================ +Murano deployed Kubernetes Cluster application +============================================== Packages in this folder are required to deploy both Google Kubernetes and applications on top of it. Contents of each folder need to be zipped and uploaded to Murano Catalog. -You will also need to build a proper Ubuntu-based image for Kubernetes. +You will also need to build a proper image for Kubernetes. This can be done using `diskimage-builder `_ and `DIB elements `_. -The image has to be named *ubuntu14.04-x64-kubernetes.qcow2* +The image has to be named *debian8-x64-kubernetes.qcow2* Overview of Kubernetes @@ -32,6 +32,106 @@ count is a property of KubernetesPod. For a more in-depth review of Kubernetes please refer to official `documentation `_. +Features +======== + +Murano deployed Kubernetes Cluster supports following features: + +* Networking_: Calico +* `Container Runtime`_: Docker +* `Rolling Updates`_ of Kubernetes application +* Publishing services: ClusterIP Type + +.. _Networking: + +Networking +---------- + +Kubernetes Cluster deployed by Murano supports Calico networking by default. +Support for Flannel is disabled by default, but can be enabled as an option. + + +.. _Container runtime: + +Container runtime +----------------- + +A container runtime responsible for pulling container images from a registry, +unpacking the container and running the application. Kubernetes by default +supports Docker runtime. Recently in Kubernetes version 1.3 support for rkt +runtime has been added. More runtimes planned to be added in the future. + +Kubernetes Cluster deployed by Murano currently supports only Docker runtime. +Though we planning to add rkt runtime in close future. + + +.. _Rolling Updates: + +Rolling Updates of Kubernetes application +----------------------------------------- + +Kubernetes Cluster deployed by Murano supports rolling updates with the use of +“Deployments” and “Replication Controllers (RC)” abstractions. Rolling updates +using Deployments is a recommended way to perform updates. +Rolling update via Deployments provides following benefits over RC: + +* Declarative way to control how service updates are performed +* Rollback to an earlier Deployment version +* Pause and resume a Deployment. + +To use Rolling updates via Deployments refer to `Kubernetes documentation `_. + +**NOTE:** Currently all applications deployed from Apps Catalog has been created as +Replication Controllers (RC). It means that Rolling updates via Deployments +are not available for those applications. + +In case application running as Replication Controllers (RC) and requires update, +please refer to Kubernetes documentation `here `_. + + +Interacting with Kubernetes Cluster deployed by Murano +====================================================== + +There are several ways to create, manage applications on Kubernetes cluster: + +Using Murano->Apps Catalog-> Environments view in Horizon: +---------------------------------------------------------- +Users can perform following actions: + +* Deploy/Destroy Kubernetes Cluster +* Perform Kubernetes Cluster related actions such as scale Nodes and Gateways. +* Perform Kubernetes Pod related actions such as scale, recreate pods or restart Containers. +* Deploy selected Application from Apps Catalog via Murano Dashboard. +* Deploy any docker image from Docker Hub using Docker Container apps from Apps Catalog. + +Using kubectl CLI: +------------------ + +Deploy and manage applications using Kubernetes command-line tool - ``kubectl`` +from you laptop or any local environment: + + * * `Download and install `_ the ``kubectl`` executable based on OS of the choice. + * Configure kubectl context on local env: + + * ``kubectl config set-cluster kubernetes --server=http://:8080`` + * ``kubectl config set-context kubelet-context --cluster=kubernetes --user=""`` + * ``kubectl config use-context kubelet-context`` + + * Verify kubectl Configuration and Connection: + + * ``kubectl config view`` + * ``kubectl get nodes`` + +The resulting kubeconfig file will be stored in ~/.kube/config. Can be sourced at any time after. + +Additionally, it is possible to access ``kubectl cli`` from Master Node (kube-1), +where ```kubectl cli``` is installed and configured by default. + +**NOTE:** In case application has been deployed via kubectl it will be exposed +automatically outside based on the port information provided in service yaml file. +However, it will be required to manually add required port to the OpenStack Security +Groups created for this Cluster in order to be able reach application from outside. + How murano installs Kubernetes ------------------------------