k8s components

1, Master Components

1、API Server
K8S the only external interface, providing HTTP / HTTPS RESTful API, namely kubernetes API. All requests are required to communicate through this interface. Mainly responsible for receiving, checking and respond to all requests REST, the result stored in persistent state etcd among all deletions only entrance to change resources investigation.
 
2、etcd
Responsible for keeping k8s cluster configuration information and information resources of the state, when the data changes, etcd will inform k8s related components quickly. etcd is an independent service component, not part of K8S cluster. Among etcd production environment should be run in a cluster approach to ensure service availability.
 
etcd not only used to provide key data storage, but also to provide a monitor (watch) the mechanism for monitoring and pushing change. In K8S cluster system, etcd the key changes will be notified pour API Server, by its output to end customers watch API.
 
3、Controller Manager
Responsible for managing cluster resources to ensure that resources are expected state. Controller Manager by a variety of controller, including replication controller, endpoints controller, namespace controller, serviceaccounts controller and the like. The main function performed by the controller includes the lifecycle service logic and API, as follows:
 
Lifecycle functions include: Namespace creation and life cycle, Event garbage collection, Pod termination related to garbage collection, garbage collection and Node cascade garbage collection.
API business logic: for example, Pod expansion performed by ReplicaSet.
4, the scheduler (the Schedule)
Resource scheduling, is responsible for deciding what to put on the Pod Node operation. Scheduler will analyze the cluster structure in scheduling, the current load of each node, as well as aspects of the application requirements for high availability, performance and the like.
 
2, Node components
Node is responsible for a variety of environments rely on the container, and accept the Master management. Each Node has the following configuration components.
 
1, omelets
kubelet Agent is a node, when running on a Scheduler determines the Node Pod, the specific configuration information will Pod (image, volume, etc.) is sent to the node kubelet, kubelet container will create and run according to the information, and master report operating status.
 
2、Container Runtime
Each Node are required to provide a runtime container (Container Runtime) environment, which is responsible for downloading the image and run the container. K8S current operating environment supporting a container comprising at least Docker, RKT, cri-o, Fraki like.
 
3、Kube-proxy
service logically represents a plurality of rear Pod, loan service by accessing Pod. receiving a service request need kube-proxy forwards to complete the Pod. TCP / UDP data for each Node runs kube-proxy service, responsible for access to service traffic to the back-end of the container, if there are multiple copies, kube-proxy will load balancing, there are 2 ways: LVS or Iptables
 
3, the core attachment
K8S also on a set of clusters accessory components, a specific application is usually provided by a third party.
 
1, KubeDNS
K8S cluster scheduling and running to provide DNS services Pod, Pod other in the same cluster can use the DNS service to resolve the host name. K8S from 1.11 version CoreDNS project to provide service registry and discovery service dynamic name resolution services for cluster start by default.
 
2、Dashboard
All functions K8S clusters have a Web-based UI, the application to manage the cluster and the cluster itself.
 
3、Heapster
Performance monitoring and analysis system of vessels and nodes, which collects data and parse a variety of indicators, such as resource utilization, cycle times, which in the latest version, and its main function of Prometheus gradually replaced by other components combined.
 
4、Ingress Controller
Service is a work in the load balancer 4 layers, and at Ingress application layer of HTTP (S) load balancing. However, Ingress own resources and can not penetrate the flow ,, it is just a collection of routing rules, these rules need to play a role by Ingress controller (Ingress Controller). Currently this feature project about: Nginx-ingress, Traefik, Envoy and HAproxy and so on.
 

Guess you like

Origin www.cnblogs.com/muzinan110/p/11105802.html