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

kube-scheduler

The main responsibility of the Kubernetes Scheduler (kube-scheduler) component is scheduling container workloads (Kubernetes Pods) and assigning them to healthy worker nodes that fulfill the criteria required for running a particular workload.

A Pod is a group of one or more containers with a shared network and storage and is the smallest Deployment unit in the Kubernetes system. We will cover this Kubernetes object in the next section.

Scheduling is performed in two phases:

  • Filtering
  • Scoring

In the filtering phase, kube-scheduler determines the set of nodes that are capable of running a given Pod. This includes checking the actual state of nodes and verifying any resource requirements specified by the Pod definition. At this point, if there are no nodes that can run a given Pod, the Pod cannot be scheduled and remains pending. Next, in the scoring step, the scheduler assigns scores for each node based on a set of policies. Then, the Pod is assigned by the scheduler to the node with the highest score.

You can read more about available policies in the official documentation: https://kubernetes.io/docs/concepts/scheduling/kube-scheduler/#kube-scheduler-implementation.

Kubernetes design offers a great deal of extensibility and possibility to replace components. Kube-scheduler is one of the components that's used to demonstrate this principle. Even if its internal business logic is complex (all efficient scheduling heuristics are rather complex...), the scheduler only needs to watch for unassigned Pods, determine the best node for them, and inform the API Server about the assignment. You can check out an example implementation of a custom scheduler here:  https://banzaicloud.com/blog/k8s-custom-scheduler/.

Now, let's take a look at kube-controller-manager.

主站蜘蛛池模板: 大名县| 上栗县| 阳山县| 沈丘县| 新竹市| 小金县| 娱乐| 山阴县| 乌拉特中旗| 福安市| 盐城市| 珲春市| 灌南县| 尚义县| 枣强县| 吴旗县| 兰坪| 柳州市| 潢川县| 辽阳县| 玉屏| 峨眉山市| 白玉县| 横山县| 芦山县| 灵山县| 乐清市| 新和县| 普洱| 嘉定区| 乌拉特中旗| 和政县| 怀安县| 荆州市| 建阳市| 连城县| 四川省| 乐亭县| 湾仔区| 拉孜县| 自贡市|