First, preface
Kubernetes is the Google Open Source container cluster management system, based on Docker to build a container scheduling service, providing resource scheduling, balanced disaster recovery, service registration, dynamic expansion capacity and other functional suites, currently the latest version is 0.6.2. This article describes how to build Kubernetes platform based on Centos7.0, before it is formally introduced, it is necessary to understand kubernetes several core concepts and the functions they assume. The following is an architectural design for kubernetes
650) this.width=650; "src=" Http://blog.liuts.com/attachment/201412/1419261629_3961d65c.jpg "width=" 851 "height=" 629 "alt=" 1419261629_3961d65c.jpg "/>1. Pods
In Kubernetes systems, the smallest particle of dispatch is not a simple container, but an abstraction into a pod,pod is the smallest deployment unit that can be created, destroyed, dispatched, and managed. such as a container or a group of containers.
2. Replication Controllers
The Replication controller is the most useful feature in the kubernetes system, enabling the replication of multiple pod replicas, often with one application requiring multiple pods to support, and the number of copies that can be guaranteed, even if the replica is scheduled to dispatch an exception to the host machine The replication controller ensures that the same number of pods is enabled on other host machines. Replication controller can create multiple pod copies through the Repcon template, as well as directly replicate existing pods, which need to be associated with a label selector.
3. Services
Services is the outermost unit of Kubernetes, through the virtual one Access IP and service port, can access our defined pod resources, the current version is implemented by iptables NAT forwarding, the target port for forwarding is kube_proxy generated random port, Currently, only access scheduling on the Google cloud, such as GCE, is available. What if we integrate with our self-built platform? Please follow the next article, "Kubernetes and HECD Architecture integration".
4, Labels
Labels is a key/value key-value pair used to differentiate pods, service, Replication controllers, using only the relationship recognition between pods, service, Replication Controller, However, the name tag is used to manipulate the cells themselves.
5. Proxy
Proxy not only solves the same host service port conflict problem, also provides service forwarding service port to provide services, the proxy backend using a random, round-robin load balancing algorithm.
Master runs three components:
Span style= "Font-size:16px;line-height:24px;background-color:rgb (255,255,255);" > Apiserver :
Scheduler: responsible for the resource scheduling of the cluster, assigning machines to the new pod. This part of the work is divided into a component, which means that it is easy to replace it with other schedulers.
Controller: responsible for implementing various controllers, there are currently two categories:
Endpoint-controller: Periodically correlate the service and POD (the association information is maintained by the endpoint object), ensuring that service-to-pod mappings are always up-to-date.
Replication-controller: Periodically correlate replicationcontroller and pods to ensure that the number of copies Replicationcontroller defined is always the same as the number of pods actually running.
Slave Run two components:
· Kubelet: responsible for the control of Docker containers, such as Start/stop, monitor operation status. It periodically obtains pods assigned to the native from Etcd, and starts or stops the appropriate containers based on pod information. It also receives Apiserver HTTP requests to report the status of the pod.
Proxy: responsible for providing the agent for the pod. It periodically obtains all the service from ETCD and creates an agent based on the service information. When a customer pod accesses another pod, the access request is forwarded by the native proxy.
This article is from the "Ming Linux blog" blog, be sure to keep this source http://zhaijunming5.blog.51cto.com/10668883/1718948
CentOS7 build Kubernetes, ETCD