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 <nmakhotkin@mirantis.com>
Change-Id: I7d7572d6c53c9f6f0165ff55fa4d0ed5abdedef9
This commit is contained in:
archyufa 2016-09-16 07:22:58 -04:00 committed by Sergey Kraynev
parent 31e2504251
commit 66ddf3c4e0

View File

@ -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 <https://git.openstack.org/cgit/openstack/diskimage-builder>`_
and `DIB elements
<https://git.openstack.org/cgit/openstack/murano/tree/contrib/elements/kubernetes>`_.
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 <http://kubernetes.io/v1.1/docs/user-guide/README.html>`_.
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 <http://kubernetes.io/docs/user-guide/deployments/#updating-a-deployment>`_.
**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 <http://kubernetes.io/docs/user-guide/rolling-updates>`_.
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 <http://kubernetes.io/docs/getting-started-guides/minikube/#install-kubectl>`_ the ``kubectl`` executable based on OS of the choice.
* Configure kubectl context on local env:
* ``kubectl config set-cluster kubernetes --server=http://<kube1-floating_IP>: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
------------------------------