1. 程式人生 > >Kubernetes排程器簡介

Kubernetes排程器簡介

1.Replication Controller 用來控制kubernetes叢集中pods副本數。 常用模式 Rescheduling 保證副本數達到規定個數。 Scaling 彈性伸縮。 kubectl scale --replicas=3 replicationcontrollers frontend Rolling Updates 滾動更新。 kubectl rolling-update fronted-v1 -f frontend-v2.yaml 首先建立一個副本數只有1個的RC,舊的RC副本數減少1,逐步增加新RC的副本數,減少舊RC的副本數,直至舊RC的副本數變成0,刪除舊RC。 2.Node Controller
負責發現、監控、管理叢集中的各個nodes。 3.ResouceQuota Controller 支援三個層次資源配額管理 容器級別:CPU和記憶體 Pod級別:一個pod內的所有資源 Namespace級別:Pod數量、RC數量、Service數量、ResourceQuota數量、Secret數量、可持久化PV(Persistent Volume)數量。 配額控制通過Admission Control實現,兩種控制器LimitRanger和ResourceQuota。LimitRanger作用於pod和container上,ResourceQuota作用於namespace。 4.Namespace Controller
定時通過API Server讀取etcd中儲存的namespace資訊,刪除namespaces下的資源物件。 5.ServiceAccount Controller和Token Controller 兩個與安全有關的控制器。SAC監聽Service Account的刪除事件和namespace的建立、修改事件。TC監聽Service Account和Secret的建立、修改、刪除事件。 6.Service Controller和Endpoint Controller Service Controller監控service變化,主要是LoadBalancer變化。Endpoints controller通過store來快取service和pod資訊,監控它們的變化。監控etcd的/registry/services目錄變化。 7.Kubernetes Scheduler
建立排程pod到合適的node上。 Pod排程的預選策略有: NoDiskConfilct、PodFitResouces、PodSelectorMatches、PodFitsHost、CheckNodeLabelPresence、CheckServiceAffinity、PodFitsPorts Pod排程的優選策略有: LeastRequestPriority、CalculateNodeLabelPriority、BalancedResourceAllocation