aboutsummaryrefslogtreecommitdiffstats
path: root/docs/release/installation/k8s-intro.rst
diff options
context:
space:
mode:
authorYifei Xue <xueyifei@huawei.com>2017-10-17 15:48:12 +0800
committerYifei Xue <xueyifei@huawei.com>2017-10-18 09:22:52 +0800
commit4f90858ffbe3e566f30f8bf58309d28989212d0e (patch)
treee1eccad66e32199cd5b8d2a39af064abd3f1b7b6 /docs/release/installation/k8s-intro.rst
parentd8f5f4a460d4c84a6552a6bed8af5c7fa5eedc22 (diff)
Update the Euphrates docs for kubernetes scenario
JIRA: - In the Euphrates release, compass has supported kubernates deployment now. However, there is no k8s related description in docs of compass4nfv. So we add k8s related description in this patch including the k8s architeture, k8s networking in Compass, k8s virtual deployment and k8s bare metel deployment. Change-Id: I3bea3ae06b1c73076ba44d10caf89602928b7021 Signed-off-by: Yifei Xue <xueyifei@huawei.com>
Diffstat (limited to 'docs/release/installation/k8s-intro.rst')
-rw-r--r--docs/release/installation/k8s-intro.rst96
1 files changed, 96 insertions, 0 deletions
diff --git a/docs/release/installation/k8s-intro.rst b/docs/release/installation/k8s-intro.rst
new file mode 100644
index 00000000..a3ea4547
--- /dev/null
+++ b/docs/release/installation/k8s-intro.rst
@@ -0,0 +1,96 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International Licence.
+.. http://creativecommons.org/licenses/by/4.0
+.. (c) by Yifei Xue (HUAWEI) and Justin Chi (HUAWEI)
+
+K8s introduction
+================
+
+Kubernetes Architecture
+-----------------------
+
+Currently Compass can deploy kubernetes as NFVI in 3+2 mode by default.
+
+**The following figure shows a typical architecture of Kubernetes.**
+
+.. figure:: images/architecture.png
+ :alt: K8s architecture
+ :figclass: align-center
+
+ Fig 3. K8s architecture
+
+Kube-apiserver
+~~~~~~~~~~~~~~
+
+Kube-apiserver exposes the Kubernetes API. It is the front-end for the Kubernetes control plane.
+It is designed to scale horizontally, that is, it scales by deploying more instances.
+
+Etcd
+~~~~
+
+Etcd is used as Kubernetes' backing store. All cluster data is stored here. Always have a backup
+plan for etcd's data for your Kubernetes cluster.
+
+Kube-controller-manager
+~~~~~~~~~~~~~~~~~~~~~~~
+
+Kube-controller-manager runs controllers, which are the background threads that handle routine
+tasks in the cluster. Logically, each controller is a separate process, but to reduce complexity,
+they are all compiled into a single binary and run in a single process.
+
+These controllers include:
+
+ - Node Controller: Responsible for noticing and responding when nodes go down.
+ - Replication Controller: Responsible for maintaining the correct number of pods for every
+ replication controller object in the system.
+ - Endpoints Controller: Populates the Endpoints object (that is, joins Services & Pods).
+ - Service Account & Token Controllers: Create default accounts and API access tokens for
+ new namespaces.
+
+kube-scheduler
+~~~~~~~~~~~~~~
+
+Kube-scheduler watches newly created pods that have no node assigned, and selects a node for them
+to run on.
+
+Kubelet
+~~~~~~~
+
+Kubelet is the primary node agent. It watches for pods that have been assigned to its node (either
+by apiserver or via local configuration file) and:
+
+ - Mounts the pod's required volumes.
+ - Downloads the pod's secrets.
+ - Runs the pod's containers via docker (or, experimentally, rkt).
+ - Periodically executes any requested container liveness probes.
+ - Reports the status of the pod back to the rest of the system, by creating a mirror pod if
+ necessary.
+ - Reports the status of the node back to the rest of the system.
+
+Kube-proxy
+~~~~~~~~~~
+
+Kube-proxy enables the Kubernetes service abstraction by maintaining network rules on the host and
+performing connection forwarding.
+
+Docker
+~~~~~~
+
+Docker is used for running containers.
+
+POD
+~~~
+
+A pod is a collection of containers and its storage inside a node of a Kubernetes cluster. It is
+possible to create a pod with multiple containers inside it. For example, keeping a database container
+and data container in the same pod.
+
+Understand Kubernetes Networking in Compass configuration
+---------------------------------------------------------
+
+**The following figure shows the Kubernetes Networking in Compass configuration.**
+
+.. figure:: images/k8s.png
+ :alt: Kubernetes Networking in Compass
+ :figclass: align-center
+
+ Fig 4. Kubernetes Networking in Compass