aboutsummaryrefslogtreecommitdiffstats
path: root/docs/release/installation/k8s-intro.rst
diff options
context:
space:
mode:
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