First of all, we need to understand the function of kubernetes, in short, it provides a container orchestration technology, to provide users with a container-based service rapid deployment, upgrade, rollback, access control, elastic scaling and other scheduling functions, so that users in the development, testing, production environment can achieve agile development, The purpose of fast and reliable delivery.
Second, you need to understand the kubernetes's role and component distribution:
In Kubernetes, clustering should be the first concept that needs to be understood, and this cluster can be collectively referred to as aggregation of nodes that have a common purpose and are finally served externally.
So for Kubernetes, the Division of the node role within the cluster becomes the first step to understand Kubernetes, as the name implies, Master is the main control role, node is the subordinate role. According to the concept of the general cluster, the main control role is responsible for the external access function, and is responsible for the internal business scheduling and load balancing, the subordinate node needs to report its status and resource status to the main control node, and finally carry out the business.
Similarly, Kubernetes does provide the basic functions of the principal and subordinate roles described above, and identifies specific components to divide and conquer specific functions:
On master, ETCD load persistent storage, used to store various types of resources inside Kubernetes
Kube-apiserver responsible for HTTP access and command-line input
Kube-controller is responsible for the dispatch and distribution of internal resources
Kube-scheduler responsible for the dispatch of the business
On node, Docker is responsible for hosting specific business containers, including network, mirroring, and volume processing mechanisms.
Kube-let is responsible for node registration and reporting node status, most importantly including the implementation of the business deployment
Kube-proxy is responsible for access control and load balancing after business start-up
At present, these components, in addition to ETCD can provide services separately, other components need to work together to meet the normal working needs
In the test environment, a stand-alone version of the Kubernetes installation should be presented after the features:
1[Email protected] ~]# kubectl describe node127.0.0.12Name:127.0.0.13 Role:4Labels:beta.kubernetes.io/arch=AMD645beta.kubernetes.io/os=Linux6kubernetes.io/hostname=127.0.0.17Taints: <none>8Creationtimestamp:tue, toJune2018 the: -: ,+08009 Phase:Ten Conditions: One Type Status lastheartbeattime lasttransitiontime Reason message
A---- ------ ----------------- ------------------ ------ ------- -Outofdisk False Tue, toJune2018 the: About:Geneva+0800Tue, toJune2018 the: -: ,+0800Kubelethassufficientdisk Kubelet has sufficient disk space available -Memorypressure False Tue, toJune2018 the: About:Geneva+0800Tue, toJune2018 the: -: ,+0800kubelethassufficientmemory Kubelet has sufficient memory available theDiskpressure False Tue, toJune2018 the: About:Geneva+0800Tue, toJune2018 the: -: ,+0800kubelethasnodiskpressure Kubelet has no disk pressure -Ready True Tue, toJune2018 the: About:Geneva+0800Tue, toJune2018 the: -: ,+0800Kubeletready Kubelet is posting ready status -Addresses:127.0.0.1,127.0.0.1,127.0.0.1 - Capacity: +ALPHA.KUBERNETES.IO/NVIDIA-GPU:0 -Cpu:1 + Memory:1016396ki APods: the at allocatable: -ALPHA.KUBERNETES.IO/NVIDIA-GPU:0 -Cpu:1 - Memory:1016396ki -Pods: the - System Info: in Machine Id:36dc953195bb4389870d2591ff6bfea5 -System uuid:91592e52-13e1-4613-b9bd-CCFA22D12FEF toBoot id:60b2d295-a3cb-4f96-98ea-ec56913a0338 +Kernel Version:3.10.0-514.26.2. el7.x86_64 -OS Image:centos Linux7(Core) the Operating System:linux * Architecture:amd64 $Container Runtime Version:docker://1.13.1Panax NotoginsengKubelet Version:v1.5.2 -Kube-proxy Version:v1.5.2 theExternalid:127.0.0.1 +non-terminated Pods: (0 inchTotal ) A Namespace Name CPU requests CPU Limits memory requests Memory Limits the--------- ---- ------------ ---------- --------------- ------------- + Allocated Resources: -(Total limits -percent, i.e, overcommitted. $ CPU requests CPU Limits memory requests Memory Limits $------------ ---------- --------------- ------------- - 0(0%)0(0%)0(0%)0(0%) - Events: the firstseen lastseen Count from Subobjectpath Type Reason Message ---------- -------- ----- ---- ------------- -------- ------ -------Wuyi42m 42m1{Kubelet127.0.0.1} Normal starting starting Kubelet. the42m 42m1{Kubelet127.0.0.1} Warning imagegcfailed Unable toFindData forContainer/ -42m 42m2{Kubelet127.0.0.1} Normal Nodehassufficientdisk Node127.0.0.1status is Now:nodehassufficientdisk Wu42m 42m2{Kubelet127.0.0.1} Normal nodehassufficientmemory Node127.0.0.1status is Now:nodehassufficientmemory -42m 42m2{Kubelet127.0.0.1} Normal nodehasnodiskpressure Node127.0.0.1Status is Now:nodehasnodiskpressure
It contains specific system information, resource information, and events related to node.
Kubernetes Getting Started Guide (i)