官术网_书友最值得收藏!

Components

There are two main server roles with Kubernetes: masters and nodes; each of these roles is made up of several components.

Master servers are the brains of the cluster and they make decisions on where pods (more on those in the next section) are deployed within the cluster, as well as acting on and looking at the health of not only the cluster, but also the pods themselves.

The core components of a master server are:

  • kube-apiserver: This is the frontend to your Kubernetes control panel; no matter what you use to manage your cluster it will be talking directly to this API service.
  • etcd: etcd is a distributed key-value store that Kubernetes uses to store the state of your cluster.
  • kube-controller-manager: This service does behind-the-scenes work to maintain your cluster. It looks for nodes joining and leaving the cluster, ensuring that the correct number of pods are running, and that they are healthy and so on.
  • cloud-controller-manager: This service is new to Kubernetes. It works alongside kube-controller-manager and its purpose is to interact with the APIs of cloud providers such as AWS, Google Cloud, and Microsoft Azure. An example of the tasks it performs would be that, if a node was to be removed from the cluster, it would check your cloud services API to see if the node still exists. If it does then there could be a problem; if not, then more than likely the node has been removed because of a scaling event.
  • kube-scheduler: This chooses where pods should be launched based on a series of rules, utilization, and availability.

Next up we have nodes. Once deployed, the master interacts with components which are installed on the nodes to effect change within the cluster; these are where your pods run.

The components that go to make up the nodes are:

  • kubelet: This is the main component that runs on the node. It is responsible for accepting instructions from and reporting back to the master servers.
  • kube-proxy: This service helps the cluster communicate. It acts as a basic proxy for all network traffic on the nodes, and is capable of configuring TCP/UDP forwarding or acting as a TCP/UDP round-robin load balancer to a number of backends.
  • docker or rkt: These are the actual container engines on the nodes. The kubelet service interacts with these to launch and manage the containers running on each of your cluster nodes. Throughout the following chapters, we will look at launching nodes running both.
  • supervisord: This process manager and monitor maintains the availability of other services such as kubelet, docker, and rkt on the nodes.
  • fluentd: This service helps with cluster-level logging.

You may have noticed that the only mention of containers in these services was docker and rkt. Kubernetes does not actually directly interact with your containers; instead, it communicates with a pod.

主站蜘蛛池模板: 怀集县| 临澧县| 息烽县| 三门县| 香港| 吉林市| 广州市| 敦化市| 崇仁县| 弥勒县| 长寿区| 五指山市| 新竹县| 体育| 北宁市| 保靖县| 托里县| 富川| 张家界市| 德阳市| 老河口市| 蒙阴县| 隆子县| 石首市| 鸡东县| 闵行区| 阳西县| 穆棱市| 湟源县| 南雄市| 绥江县| 新蔡县| 城口县| 建湖县| 宜昌市| 东至县| 洪泽县| 托克逊县| 台山市| 本溪市| 宾阳县|