Merge "Readme minor updates"
This commit is contained in:
commit
9d300c7382
@ -2,11 +2,10 @@ Murano-deployed Kubernetes Cluster application
|
|||||||
==============================================
|
==============================================
|
||||||
|
|
||||||
The Packages in this folder are required to deploy both Google Kubernetes and
|
The Packages in this folder are required to deploy both Google Kubernetes and
|
||||||
the applications that run on top of it.
|
the applications that run on top of it. The contents of each folder need to be
|
||||||
|
zipped and uploaded to the Murano Catalog.
|
||||||
|
|
||||||
The contents of each folder need to be zipped and uploaded to the Murano Catalog.
|
Additionally it is required to build a proper 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>`_
|
This can be done using `diskimage-builder <https://git.openstack.org/cgit/openstack/diskimage-builder>`_
|
||||||
and `DIB elements
|
and `DIB elements
|
||||||
<https://git.openstack.org/cgit/openstack/murano/tree/contrib/elements/kubernetes>`_.
|
<https://git.openstack.org/cgit/openstack/murano/tree/contrib/elements/kubernetes>`_.
|
||||||
@ -30,45 +29,47 @@ Installation
|
|||||||
------------
|
------------
|
||||||
|
|
||||||
Minimum requirements for Openstack in order to deploy Kubernetes cluster with Murano:
|
Minimum requirements for Openstack in order to deploy Kubernetes cluster with Murano:
|
||||||
* Deployed Murano and Heat Openstack Services
|
|
||||||
* 3 instances of m1.medium flavor (Master Node, Kubernetes Node, Gateway Node)
|
* Openstack configured with Murano and Heat Services
|
||||||
|
* 3 instances of m1.medium flavor (required for Master Node, Kubernetes Node,
|
||||||
|
Gateway Node)
|
||||||
* 1 Floating IP for Gateway, in case required to expose applications outside
|
* 1 Floating IP for Gateway, in case required to expose applications outside
|
||||||
* 2 Floating IPs for Master and Kubernetes Nodes to access kubectl CLI or
|
* 2 Floating IPs for Master and Kubernetes Nodes to access kubectl CLI or
|
||||||
troubleshooting
|
troubleshooting Master and Kubernetes Nodes.
|
||||||
|
|
||||||
A Kubernetes cluster deployed by Murano provisions 3 types of VMs that can be observed in
|
A Kubernetes cluster deployed by Murano provisions 3 types of VMs that can be
|
||||||
the Openstack Horizon Dashboard with this naming convention:
|
observed in the Openstack Horizon Dashboard with this naming convention:
|
||||||
|
|
||||||
Single **Master Node** (murano-kube-1) - which represents the Kubernetes Control
|
* Single **Master Node** (murano-kube-1) - which represents the Kubernetes
|
||||||
Plane and runs the API server, Scheduler and Controller Manager. In the current
|
Control Plane and runs the API server, Scheduler and Controller Manager.
|
||||||
implementation of Kubernetes Cluster deployed by Murano, the Master Node is not
|
In the current implementation of Kubernetes Cluster deployed by Murano,
|
||||||
running in HA mode. Additionally it is not possible to schedule containers
|
the Master Node is not running in HA mode. Additionally it is not possible
|
||||||
on the Master node.
|
to schedule containers on the Master node.
|
||||||
|
|
||||||
One or several **Kubernetes Nodes** (murano-kube-2..n) - Kubernetes worker nodes
|
* One or several **Kubernetes Nodes** (murano-kube-2..n) - Kubernetes worker nodes
|
||||||
that are responsible for running actual containers. Each Kubernetes Node runs
|
that are responsible for running actual containers. Each Kubernetes Node runs
|
||||||
the Docker, kubelet and kube-proxy services.
|
the Docker, kubelet and kube-proxy services.
|
||||||
|
|
||||||
One or several **Gateway nodes** (murano-gateway-1..n) - used as an interconnection
|
* One or several **Gateway nodes** (murano-gateway-1..n) - used as an interconnection
|
||||||
between Kubernetes internal Networking_ and the OpenStack external network
|
between Kubernetes internal Networking_ and the OpenStack external network
|
||||||
(Neutron-managed). The Gateway node provides the Kubernetes cluster with
|
(Neutron-managed). The Gateway node provides the Kubernetes cluster with
|
||||||
external endpoints and allows users and services to reach Kubernetes pods from
|
external endpoints and allows users and services to reach Kubernetes pods from
|
||||||
the outside. Each gateway node runs confd and HAProxy services. When the end
|
the outside. Each gateway node runs confd and HAProxy services. When the end
|
||||||
user deploys an application and exposes it via a service, confd automatically
|
user deploys an application and exposes it via a service, confd automatically
|
||||||
detects it and adds it to the haproxy configuration. HAProxy will expose
|
detects it and adds it to the haproxy configuration. HAProxy will expose
|
||||||
the application via the floating IP of the Gateway node and required port.
|
the application via the floating IP of the Gateway node and required port.
|
||||||
If the user choses multiple Gateways, the result will be several endpoints for
|
If the user choses multiple Gateways, the result will be several endpoints for
|
||||||
the application, which can be registered in the physical load balancer or DNS.
|
the application, which can be registered in the physical load balancer or DNS.
|
||||||
|
|
||||||
**ETCD** - Kubernetes uses etcd for key value store as well as for cluster
|
* **ETCD** - Kubernetes uses etcd for key value store as well as for cluster
|
||||||
consensus between different software components. Additionally, if the Kubernetes
|
consensus between different software components. Additionally, if the Kubernetes
|
||||||
cluster is configured to run Calico networking, etcd will be configured to
|
cluster is configured to run Calico networking, etcd will be configured to
|
||||||
support Calico configurations. In the current implementation of Kubernetes
|
support Calico configurations. In the current implementation of Kubernetes
|
||||||
Cluster deployed by Murano, the etcd cluster is not running on dedicated nodes.
|
Cluster deployed by Murano, the etcd cluster is not running on dedicated nodes.
|
||||||
Instead etcd is running on each node deployed by Murano. For example, if
|
Instead etcd is running on each node deployed by Murano. For example, if
|
||||||
Kubernetes Cluster deployed by Murano is running in the minimum available
|
Kubernetes Cluster deployed by Murano is running in the minimum available
|
||||||
configuration with 3 nodes: Master Node, Kubernetes Node and Gateway, then
|
configuration with 3 nodes: Master Node, Kubernetes Node and Gateway, then
|
||||||
etcd will run as a 3 node cluster.
|
etcd will run as a 3 node cluster.
|
||||||
|
|
||||||
|
|
||||||
Upgrade
|
Upgrade
|
||||||
@ -116,21 +117,22 @@ layer 3 approach.
|
|||||||
|
|
||||||
Calico Networking deployed by Murano as CNI plugin contains following components:
|
Calico Networking deployed by Murano as CNI plugin contains following components:
|
||||||
|
|
||||||
* **etcd** - distributed key-value store, which ensures Calico can always build
|
* **etcd** - distributed key-value store, which ensures Calico can always build an
|
||||||
an accurate network, used primerly for data storage and communication
|
accurate network, used primerly for data storage and communication
|
||||||
* **Felix**, the Calico worker process, which primarily routes and provides
|
* **Felix**, the Calico worker process, which primarily routes and provides desired
|
||||||
desired connectivity to and from the workloads on host. As well as provides
|
connectivity to and from the workloads on host. As well as provides the interface
|
||||||
the interface to kernels for outgoing endpoint traffic
|
to kernels for outgoing endpoint traffic
|
||||||
* **BIRD**, BGP client that exchanges routing information between hosts
|
* **BIRD**, BGP client that exchanges routing information between hosts
|
||||||
* **Confd**, a templating process to auto-generate configuration for BIRD
|
* **Confd**, a templating process to auto-generate configuration for BIRD
|
||||||
* **calicoctl**, the command line used to configure and start the Calico service
|
* **calicoctl**, the command line used to configure and start the Calico service
|
||||||
|
|
||||||
See `Calico <https://github.com/coreos/flannel>`_ for more information.
|
See `Project Calico <http://docs.projectcalico.org/en/latest/index.html>`_ documentation
|
||||||
|
for more information.
|
||||||
|
|
||||||
|
|
||||||
Support for Flannel is disabled by default, but can be enabled as an option.
|
Support for Flannel is disabled by default, but can be enabled as an option.
|
||||||
Flannel is simple overlay network that satisfies the Kubernetes requirements.
|
Flannel is simple overlay network that satisfies the Kubernetes requirements.
|
||||||
See `flannel <https://www.projectcalico.org/>`_ for more information.
|
See `flannel <https://github.com/coreos/flannel>`_ documentation for more information.
|
||||||
|
|
||||||
.. _Container runtime:
|
.. _Container runtime:
|
||||||
|
|
||||||
@ -206,7 +208,7 @@ The resulting kubeconfig file will be stored in ~/.kube/config and
|
|||||||
can be sourced at any time afterwards.
|
can be sourced at any time afterwards.
|
||||||
|
|
||||||
Additionally, it is possible to access ``kubectl cli`` from Master Node (kube-1),
|
Additionally, it is possible to access ``kubectl cli`` from Master Node (kube-1),
|
||||||
where ```kubectl cli``` is installed and configured by default.
|
where ``kubectl cli`` is installed and configured by default.
|
||||||
|
|
||||||
**NOTE:** If the application has been deployed using kubectl CLI, it will be
|
**NOTE:** If the application has been deployed using kubectl CLI, it will be
|
||||||
automatically exposed outside based on the port information provided in
|
automatically exposed outside based on the port information provided in
|
||||||
|
Loading…
Reference in New Issue
Block a user