diff options
Diffstat (limited to 'docs/release/installation/k8s-intro.rst')
-rw-r--r-- | docs/release/installation/k8s-intro.rst | 96 |
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 |