Kube-scheduler แแ แแก Kubernetes-แแก แแแแฃแงแแคแแแ แแแแแแแแแขแ, แ แแแแแแช แแแกแฃแฎแแกแแแแแแแแ แแแแแซแแแแก แแแแแซแแแแก แแแแแแแแแแ แแแแแแแแฃแแ แแแแแขแแแแก แจแแกแแแแแแกแแ. แฎแจแแ แแ, Kubernetes แแแแกแขแแ แแก แคแฃแแฅแชแแแแแ แแแแก แแ แแก, แฉแแแ แแ แแแแฌแแแก แคแแฅแ แ แแแแแ, แแฃ แ แแแแแ แแแแแขแแแแก แแแแแงแแแแแ แฎแแแแ pod-แแแแก แแแกแแแแแแแ, แ แแแแแ แแแแฃแแแกแฎแแแแ kube-scheduler-แแก แแแแแขแแแแก แแแแ แแแ แจแแกแแคแแ แแกแแ แงแแแแแแฆแแฃแ แ แแแแชแแแแแแก แฃแแแขแแกแแแแกแแแแก. แแฃแแชแ, แแ แแก แกแแขแฃแแชแแแแ, แ แแแแกแแช แฉแแแแแแแก แแแแจแแแแแแแแแแ แฌแแแฆแแกแแฃแแแก แแแแแงแแคแแก แแ แแชแแกแแก แแแฎแแแฌแ แแ แแ แแแแชแแแแก แจแแกแ แฃแแแแแก แแ แ แแแ แแ แกแแแแแก:
- แจแแฅแแแแแ แแฃแแ-แแแกแแแฉแแ แ แฌแแกแแแแก แแแ แแแแฃแแ แแแแ แแแแ
- แแแฌแแ แแ แแฅแแแแ แกแแแฃแแแ แ แแ แแคแแแ แแ แแกแฌแแแแแ แแแก แแฃแจแแแแ API แกแแ แแแ แแก แแแแฎแแแแแแแแ
แแ แกแขแแขแแแจแ แแ แแฆแแฌแแ แแแ แแแแ แแฃแแฅแขแแก แแแแฎแแ แชแแแแแแแก แฉแแแแก แแ แ-แแ แ แแ แแแฅแขแแ แแแ แแแแก แแ แแแแแแแแ แ แแแแแแแแแก แแ แแแแแแแก แแแแแกแแญแ แแแแ.
แแแแแ แจแแกแแแแแ, แแฃ แ แแแแ แแฃแจแแแแก kube-scheduler
แแแแกแแแฃแแ แแแแ แฃแแแ แแฆแแแแจแแแก แแก แคแแฅแขแ, แ แแ kube-scheduler แแ แแ แแก แแแกแฃแฎแแกแแแแแแแ แแแแแแแก แแแ แแแแแ แแแแแแแแแแ - แแก แแฎแแแแ แแแกแฃแฎแแกแแแแแแแแ แแ แแแแแซแแก แแแแกแแแฆแแ แแแ, แ แแแแแแแแแช แแแแแแแกแแแแ แแแแ. แกแฎแแ แกแแขแงแแแแแ แ แแ แแแฅแแแ, kube-scheduler-แแก แแฃแจแแแแแก แจแแแแแ แแ แแก แแแแแซแแก แกแแฎแแแ, แ แแแแแกแแช แแแ แฃแแ แฃแแแแก API แกแแ แแแ แก แแแแแแแแแก แแแแฎแแแแแ แแ แแฅ แแแแแ แแแแ แแแกแ แแฃแจแแแแ.
แแแ แแแ แ แแแจแ, kube-scheduler แแแแแแก แแแแแซแแแแก แฉแแแแแแแแแแก, แ แแแแแแแแช pod แจแแแซแแแแ แแแแแแแแแก แแ แแแแแแขแแแแก แแแแแขแแแแก แจแแกแแแแแแกแแ. แจแแแแแแ, แแ แกแแแแแ แแแแแแฃแแ แแแแแซแ แแฆแแแก แฅแฃแแแแแก แแแ แแแแฃแ แ แแแแแแแแแก แแ แแแ แแขแแขแแแแก แแแแแขแแแแก แจแแกแแแแแแกแแ. แจแแแแแแ, แแ แฉแแฃแแแ แแแแแซแ, แ แแแแแกแแช แแฅแแก แฅแฃแแแแแก แแแฅแกแแแแแฃแ แ แ แแแแแแแแ. แแฃ แแ แแก แแแแแซแแแ, แ แแแแแแกแแช แแฅแแ แแแแแ แแแฅแกแแแแแฃแ แ แฅแฃแแ, แแ แฉแแฃแแแ แจแแแแฎแแแแแแ. แแ แแแแแแขแแแแก (แคแแแขแ แแชแแแก) แแ แแ แแแ แแขแแขแแแแก (แฅแฃแแแแแก) แแแแแขแแแแก แฉแแแแแแแแแแ แแ แแฆแฌแแ แ แจแแแแซแแแแ แแฎแแแแ
แแ แแแแแแฃแ แ แกแฎแแฃแแแก แแฆแฌแแ แ
แแแฃแฎแแแแแแ แแแแกแ, แ แแ แแฃแแแ แแแขแแก แแแแกแขแแ แแแแก แแแแ แ แแแแแแแแ แจแแแแ แฉแฃแแแแฃแแแ Nixys-แจแ, แฉแแแ แแแ แแแแแ แจแแแแฎแแแ แแแแแแแก แแแแแแแแแก แแ แแแแแแ แแฎแแแแ แแฎแแแฎแแ, แ แแแแกแแช แฉแแแแก แแ แ-แแ แ แแ แแแฅแขแก แกแญแแ แแแแแแ แแแ แแแแฃแแ แแแแชแแแแแแก แแแแ แ แแแแแแแแแก แจแแกแ แฃแแแแ (~ 100 CronJob แแ แแแฃแแ). แแ แแแแแแแก แแฆแฌแแ แแก แแแฅแกแแแแแฃแ แแ แแแกแแแแ แขแแแแแแแ, แฉแแแ แแแแฆแแ แแแแแแแแแ แแ แแ แแแแ แแกแแ แแแกแ, แ แแแแแก แคแแ แแแแแจแแช แฌแฃแแจแ แแ แแฎแแ แแฌแงแแแ cron แแแแชแแแ, แ แแช แฅแแแแก แแแ แแแแฃแ แแแขแแแ แแแแก CPU-แแ. cron แแแแชแแแแก แแแกแแจแแแแแ แแแแแแงแ แกแแแ แแแแแซแ แแแกแแแฃแขแฃแ แแ แแแแแขแฃแ แ แแแฎแแกแแแแแแแแแแ (แแแแแแฃแแแ 24 vCPU).
แแแแแแ แแฃแแแ, แจแแฃแซแแแแแแแ แแแแก แแฅแแ, แแฃ แ แแแแแแ แแ แ แแแกแญแแ แแแแ CronJob-แก แจแแกแ แฃแแแแแก, แ แแแแแ แจแแงแแแแแก แแแแแชแแแแแแก แแแชแฃแแแแ แแฃแแแแแแ แแชแแแแแ. แกแแจแฃแแแแ, kube-scheduler-แแก แแแ แแแแฃแ แ แแฃแจแแแแแก แแ แแก, แแแแแแฃแแ แแแแแซแ แแฌแแ แแแแแก 3-4 แกแแแฃแจแแ แแแกแขแแแชแแแก, แ แแช แฅแแแแก แแแขแแแ แแแแก ~20-30% แแแแแแฃแแ แแแแแซแแก CPU-แแ:
แแแแแ แแ แแแแแแ แแก แแ แแก, แ แแ แแแแฏแแ cron task pod-แแแแก แแแแแแแแ แจแแฉแแ แแ แกแแแ แแแแแซแแแแ แแ แ-แแ แแแ. แแแฃ, แแ แแแก แแแ แแแแฃแ แแแแแแขแจแ, แแ แช แแ แแ แแแแแซแ แแ แแงแ แแแแแแแแแ แแ แ-แแ แแ แแแแแซแแกแแแแก, แฎแแแ แแแแแ แฉแแ แแ แแแแแซแแ แแแฅแแแแแแแ แแแแแแแแแก 6-8 แแกแแ, แ แแช แฅแแแแแ CPU-แก แแแขแแแ แแแแก ~ 40-60%-แก:
แแ แแแแแแ แแแแแแแ แแ แแแกแแแฃแขแฃแ แแ แจแแแแฎแแแแแแ แกแแฎแจแแ แแ แแ แแแแฏแแ แแแ แแแแชแแแจแ แแงแ แแแแแก แแฎแแแ แแแ แกแแแก แแแแแจแแแแแก แแแแแแขแแแ.
kube-scheduler logging แแแแแก 10-แแแ (-v=10) แแแแ แแแ, แฉแแแ แแแแแฌแงแแ แฉแแฌแแ แ, แแฃ แ แแแแแแ แฅแฃแแ แแแแแแแ แแแแแแฃแแแ แแแแแซแแ แจแแคแแกแแแแก แแ แแชแแกแจแ. แแแแแแแแแก แแแ แแแแฃแ แ แแฃแจแแแแแก แแ แแก, แจแแแแแแ แแแคแแ แแแชแแ แจแแแซแแแแ แแแฎแแ แแฃแ แแแแแแจแ:
resource_allocation.go:78] cronjob-1574828880-mn7m4 -> Node03: BalancedResourceAllocation, capacity 23900 millicores 67167186944 memory bytes, total request 1387 millicores 4161694720 memory bytes, score 9
resource_allocation.go:78] cronjob-1574828880-mn7m4 -> Node02: BalancedResourceAllocation, capacity 23900 millicores 67167186944 memory bytes, total request 1347 millicores 4444810240 memory bytes, score 9
resource_allocation.go:78] cronjob-1574828880-mn7m4 -> Node03: LeastResourceAllocation, capacity 23900 millicores 67167186944 memory bytes, total request 1387 millicores 4161694720 memory bytes, score 9
resource_allocation.go:78] cronjob-1574828880-mn7m4 -> Node01: BalancedResourceAllocation, capacity 23900 millicores 67167186944 memory bytes, total request 1687 millicores 4790840320 memory bytes, score 9
resource_allocation.go:78] cronjob-1574828880-mn7m4 -> Node02: LeastResourceAllocation, capacity 23900 millicores 67167186944 memory bytes, total request 1347 millicores 4444810240 memory bytes, score 9
resource_allocation.go:78] cronjob-1574828880-mn7m4 -> Node01: LeastResourceAllocation, capacity 23900 millicores 67167186944 memory bytes, total request 1687 millicores 4790840320 memory bytes, score 9
generic_scheduler.go:726] cronjob-1574828880-mn7m4_project-stage -> Node01: NodeAffinityPriority, Score: (0)
generic_scheduler.go:726] cronjob-1574828880-mn7m4_project-stage -> Node02: NodeAffinityPriority, Score: (0)
generic_scheduler.go:726] cronjob-1574828880-mn7m4_project-stage -> Node03: NodeAffinityPriority, Score: (0)
interpod_affinity.go:237] cronjob-1574828880-mn7m4 -> Node01: InterPodAffinityPriority, Score: (0)
generic_scheduler.go:726] cronjob-1574828880-mn7m4_project-stage -> Node01: TaintTolerationPriority, Score: (10)
interpod_affinity.go:237] cronjob-1574828880-mn7m4 -> Node02: InterPodAffinityPriority, Score: (0)
generic_scheduler.go:726] cronjob-1574828880-mn7m4_project-stage -> Node02: TaintTolerationPriority, Score: (10)
selector_spreading.go:146] cronjob-1574828880-mn7m4 -> Node01: SelectorSpreadPriority, Score: (10)
interpod_affinity.go:237] cronjob-1574828880-mn7m4 -> Node03: InterPodAffinityPriority, Score: (0)
generic_scheduler.go:726] cronjob-1574828880-mn7m4_project-stage -> Node03: TaintTolerationPriority, Score: (10)
selector_spreading.go:146] cronjob-1574828880-mn7m4 -> Node02: SelectorSpreadPriority, Score: (10)
selector_spreading.go:146] cronjob-1574828880-mn7m4 -> Node03: SelectorSpreadPriority, Score: (10)
generic_scheduler.go:726] cronjob-1574828880-mn7m4_project-stage -> Node01: SelectorSpreadPriority, Score: (10)
generic_scheduler.go:726] cronjob-1574828880-mn7m4_project-stage -> Node02: SelectorSpreadPriority, Score: (10)
generic_scheduler.go:726] cronjob-1574828880-mn7m4_project-stage -> Node03: SelectorSpreadPriority, Score: (10)
generic_scheduler.go:781] Host Node01 => Score 100043
generic_scheduler.go:781] Host Node02 => Score 100043
generic_scheduler.go:781] Host Node03 => Score 100043
แแแแ. แแฃแ แแแแแแแแแ แแแฆแแแฃแแ แแแคแแ แแแชแแแก แแแฎแแแแแ แแแแกแฏแแแแแ, แแแแแแฃแแแ แแแแแซแแ แแแแแ แแแ แกแแแแแแ แฅแฃแแแแแก แแแแแแแ แ แ แแแแแแแแ แแ แแแแแแแแแกแแแแก แจแแแแฎแแแแแ แจแแแ แฉแ. แแ แแแแแแฃแ แ แแแแแแแแแก แแ แแก, แแฃแ แแแแแแ แแกแ แแแแแแงแฃแ แแแแแ:
resource_allocation.go:78] cronjob-1574211360-bzfkr -> Node02: BalancedResourceAllocation, capacity 23900 millicores 67167186944 memory bytes, total request 1587 millicores 4581125120 memory bytes, score 9
resource_allocation.go:78] cronjob-1574211360-bzfkr -> Node03: BalancedResourceAllocation, capacity 23900 millicores 67167186944 memory bytes, total request 1087 millicores 3532549120 memory bytes, score 9
resource_allocation.go:78] cronjob-1574211360-bzfkr -> Node02: LeastResourceAllocation, capacity 23900 millicores 67167186944 memory bytes, total request 1587 millicores 4581125120 memory bytes, score 9
resource_allocation.go:78] cronjob-1574211360-bzfkr -> Node01: BalancedResourceAllocation, capacity 23900 millicores 67167186944 memory bytes, total request 987 millicores 3322833920 memory bytes, score 9
resource_allocation.go:78] cronjob-1574211360-bzfkr -> Node01: LeastResourceAllocation, capacity 23900 millicores 67167186944 memory bytes, total request 987 millicores 3322833920 memory bytes, score 9
resource_allocation.go:78] cronjob-1574211360-bzfkr -> Node03: LeastResourceAllocation, capacity 23900 millicores 67167186944 memory bytes, total request 1087 millicores 3532549120 memory bytes, score 9
interpod_affinity.go:237] cronjob-1574211360-bzfkr -> Node03: InterPodAffinityPriority, Score: (0)
interpod_affinity.go:237] cronjob-1574211360-bzfkr -> Node02: InterPodAffinityPriority, Score: (0)
interpod_affinity.go:237] cronjob-1574211360-bzfkr -> Node01: InterPodAffinityPriority, Score: (0)
generic_scheduler.go:726] cronjob-1574211360-bzfkr_project-stage -> Node03: TaintTolerationPriority, Score: (10)
selector_spreading.go:146] cronjob-1574211360-bzfkr -> Node03: SelectorSpreadPriority, Score: (10)
selector_spreading.go:146] cronjob-1574211360-bzfkr -> Node02: SelectorSpreadPriority, Score: (10)
generic_scheduler.go:726] cronjob-1574211360-bzfkr_project-stage -> Node02: TaintTolerationPriority, Score: (10)
selector_spreading.go:146] cronjob-1574211360-bzfkr -> Node01: SelectorSpreadPriority, Score: (10)
generic_scheduler.go:726] cronjob-1574211360-bzfkr_project-stage -> Node03: NodeAffinityPriority, Score: (0)
generic_scheduler.go:726] cronjob-1574211360-bzfkr_project-stage -> Node03: SelectorSpreadPriority, Score: (10)
generic_scheduler.go:726] cronjob-1574211360-bzfkr_project-stage -> Node02: SelectorSpreadPriority, Score: (10)
generic_scheduler.go:726] cronjob-1574211360-bzfkr_project-stage -> Node01: TaintTolerationPriority, Score: (10)
generic_scheduler.go:726] cronjob-1574211360-bzfkr_project-stage -> Node02: NodeAffinityPriority, Score: (0)
generic_scheduler.go:726] cronjob-1574211360-bzfkr_project-stage -> Node01: NodeAffinityPriority, Score: (0)
generic_scheduler.go:726] cronjob-1574211360-bzfkr_project-stage -> Node01: SelectorSpreadPriority, Score: (10)
generic_scheduler.go:781] Host Node03 => Score 100041
generic_scheduler.go:781] Host Node02 => Score 100041
generic_scheduler.go:781] Host Node01 => Score 100038
แกแแแแแแแช แฉแแแก, แ แแ แแ แ-แแ แแแ แแแแแซแแ แกแฎแแแแ แแแแแแแ แกแแแแแแ แฅแฃแแ แแแแแ แแแ แแ แแแแขแแ แแแแแแแแ แแแแฎแแ แชแแแแแ แแฎแแแแ แแ แแ แ แแแแแซแแกแแแแก, แ แแแแแแแแช แแแฅแกแแแแแฃแ แ แฅแฃแแ แแแแแ แแแแก. แแแ แแแแ, แฉแแแ แแแแแแแแแ แแแแ แฌแแฃแแแแ, แ แแ แแ แแแแแแ แแแแแแแ แแแแก แแฃแกแขแแ แฆแแ แแแแแก แแแแแแแแแจแ.
แแ แแแแแแแก แแแแแญแ แแก แจแแแแแแแ แแแแแ แแแแ แฉแแแแแแแก แแจแแแ แ แแงแ - แแแแแแแแแแ แแฃแ แแแแแแ, แแแแแแ แ แ แแ แแแ แแขแแขแแ แแ แแแแแ แแแ แแแแแซแแ แฅแฃแแแแ แแ, แกแแญแแ แแแแแก แจแแแแฎแแแแแจแ, แแแแ แแแฃแแแ แแ แแแแฃแแแกแฎแแแแ kube-scheduler-แแก แแแแแขแแแ. แแฃแแชแ, แแฅ แแ แ แแแแจแแแแแแแแแ แกแแ แแฃแแแก แฌแแแแจแ แแแแแแแ แ:
- แญแ แแก แแแฅแกแแแแแฃแ แแแแแแ (10) แแแกแแฎแแแ แแฎแแแแ แแแแแแ แแ แแ แแแ แแขแแขแแกแแแแแก แแแแแแแแฃแแ แฅแฃแแแแ. แแฃแ แแแแแแแก แแแแแฎแกแแแแแฃแ แแแแแแ แแแจแ แฎแแแแแ, แ แแ แแฃแ แแแแแแจแ แแกแแฎแฃแแ แงแแแแ แแ แแแ แแขแแขแแกแแแแก, แแแแแซแแแ แแ แแกแ แแ แแแแแ แ แแแแแแแแแก แแแ แแแแแแ แแแ แแแแฃแ แแ แแ แแแแแแแก แแแแแแแแแจแ, แแแแ แแ แกแแแแแแ แจแแแแแ แแ แแแแแแแก แแแแแแแแแก แจแแแแฎแแแแแจแ แแแแกแฎแแแแแแฃแแแ. แแแ แแแแ, แจแแแแแซแแแ แแแแแกแแแแแ, แ แแ แแแแแแ แแ แแ แแแ แแขแแขแแกแแแแก, แฅแฃแแแแ แฎแแแแ โแแฃแแแกแแแจแโ แแ แฉแแแ แแ แแแแฅแแก แกแแจแฃแแแแแ แแแแแแแ, แ แแแแแ แแ แแแ แแขแแขแแกแแแแก แแแแแซแแ แแ แแแแฆแ แฅแฃแแแแ. แฉแแแ แแแขแแแฃแ แแ แแฆแแฌแแ แแ แแก แแ แแแแแแ
แกแแแแแฎแ Kubernetes-แแก แกแแชแแแ Github-แแ. แฌแแ แแก แแ แแก แแแแฆแแก แแแกแฃแฎแ แแแแแแแแแ แแแแกแแแ, แ แแ แแแแแก แแฎแแ แแแญแแ แ แแแแแแขแแแ Kubernetes v1.15,1.16, 1.17 แแ XNUMX แแแแแฎแแแแแแก. - แแ แแ แกแแแแแก แแแ แขแแแ แแแ แแแแก แแแกแแแแแแ, แแฃ แ แแแแ แแแแแ แแขแฃแ แแแแแขแแแแ แแฃแจแแแแก kube-scheduler แแแแแแแ. แแแแฎ, แจแแแแแ
แแแแฃแแแแขแแชแแ แแก แกแแ แฉแแแแแแแแแแ, แแแแ แแ แแก แแ แจแแแชแแแก แแแคแแ แแแชแแแก แแแแก แจแแกแแฎแแ, แแฃ แ แ แแแแแ แแขแฃแแ แฌแแแ แแแแญแแแ แแแแแแฃแ แแ แแแ แแขแแขแฃแ แแแแแขแแแแก. แแฅแแแ แจแแแแซแแแแ แแแฎแแ แฌแแแแแ แแ แแแแ แแแแฅแขแแ แแ แแแแฃแแแกแฎแแแแ kube-scheduler-แแก แฌแแกแแแ แแฎแแแแ แแฅแฌแงแแ แ แแแแแแ .
แแฆแกแแแแจแแแแแ, แ แแ แแ แแฎแแ แฉแแแ แจแแแซแแแแ แฉแแฌแแ แ, แ แแ แแแแแซแแ แแ แแแแฆแ แฅแฃแแแแ ImageLocalityPriority แแแแแขแแแแก แแแฎแแแแแ, แ แแแแแแช แแแแญแแแก แฅแฃแแแแก แแแแแซแก, แแฃ แแแก แฃแแแ แแฅแแก แแแแแแแชแแแก แแแกแแจแแแแแ แกแแญแแ แ แกแฃแ แแแ. แแแฃ, แแ แแ แแก, แ แแแแกแแช แแแแแแแชแแแก แแฎแแแ แแแ แกแแ แแแแแแแแ, cron แแแแชแแแแ แแแแฎแแ แฎแ แแ แแแแแซแแ แแแจแแแแ, แแแแแ แแฎแแแ แกแฃแ แแแแก แฉแแแแขแแแ แแแ แแแแแ แแก แ แแแกแขแ แแแแ แแ, แแแ แแแแ, แแ แแ แแแแแซแแ แแแแฆแ แฃแคแ แ แแแฆแแแ แกแแแแแแ แฅแฃแแ แแแกแแแแกแแแ แจแแแแ แแแแ. .
แ แแแแ แช แแแแแ แแแแฌแแ แ, แแฃแ แแแแแแจแ แฉแแแ แแแ แแฎแแแแแ แแแคแแ แแแชแแแก ImageLocalityPriority แแแแแขแแแแก แจแแคแแกแแแแก แจแแกแแฎแแ, แแกแ แ แแ, แฉแแแแ แแแ แแฃแแแก แจแแกแแแแฌแแแแแแ, แฉแแแ แแแแแแแขแแแแ แกแฃแ แแแ แแแแแแแชแแแก แแฎแแแ แแแ แกแแแ แแแกแแแ แแแแแซแจแ, แ แแก แจแแแแแแแช แแแแแแแแ แกแฌแแ แแ แแฃแจแแแแแ. . แแฃแกแขแแ ImageLocalityPriority แแแแแขแแแแก แแแแ แแงแ, แ แแ แแแแแแแแแก แแ แแแแแแ แกแแแแแแ แแจแแแแแแ แจแแแแแจแแแแแแ, แฃแคแ แ แฎแจแแ แแ แแก แกแฎแแ แ แแแแกแแแ แแงแ แแแแแแจแแ แแแฃแแ. แแแแก แแแแ, แ แแ แฉแแแ แแแ แแแแแฎแแ แฎแแ แแแแฃแแแกแฎแแแแ kube-scheduler-แแก แแ แแแ แแขแแขแแแแก แฉแแแแแแแแแแจแ แแแแแแฃแแ แแแแแขแแแแก แกแ แฃแแแ แแแแแ แแแ, แฉแแแ แแแฅแแแแ แกแแญแแ แแแแ pod-แแก แแแแแแแแแก แแแแแขแแแแก แแแฅแแแแ แแแ แแแ.
แแ แแแแแแแก แจแแกแแฎแแ แแแแชแฎแแแแแ
แฉแแแ แแแแแแแแ, แ แแ แแ แแแแแแแก แแแแแญแ แ แแแฅแกแแแแแฃแ แแ แแแแแ แแขแฃแแ แงแแคแแแแงแ, แแแฃ Kubernetes-แแก แซแแ แแแแแ แแ แแแฃแแแแ (แแฅ แแแฃแแแกแฎแแแแ แแแแฃแแแกแฎแแแแ kube-scheduler) แฃแแแ แแแ แฉแแก แฃแชแแแแแ. แแ แแแแแแแแ แแ แแแแแแ แแ แ แแแแแแแก แแแแแแแแญแ แ แแ แแแแ แแจแ แจแแแแแฅแแแ. แแแ แแแแ, แฉแแแ แแแแแแแ แแ แแแแแแแก แแแแแญแ แแก แแ แแแ แแแแขแแแแ, แ แแแแแแช แแแแแชแฎแแแแ แกแขแแขแแแก แจแแกแแแแแจแ - แแแแแขแแแแแ แแ แแคแแแแก แจแแฅแแแ แแ แกแแแฃแแแ แแก แแแฌแแ แ. Cron แแแแชแแแแแแก แแแแแแแแแก แแแแแแ แ แแแแฎแแแแ แแ แแก แแแขแแแ แแแแก แแแแแแ แแ แแแแแฌแแแแแ แกแแ แแแแแซแแ. แแ แแแแฎแแแแแก แจแแแซแแแแ แแแแแแแงแแคแแแแก แแ แกแแแฃแแ kube-scheduler แแแแแขแแแ, แแแแขแแ แฉแแแแ แแ แแแแแแแก แแแแแกแแญแ แแแแ แแแ แ แแ แแฅแแก แกแแแฃแแแ แ แแแแ แแแแก แแแฌแแ แแก.
แแแแแขแแแแแ แแฃแแ-แแแกแแแฉแแ แแก แจแแฅแแแแกแ แแ แแแแแ แแแแก แแแกแขแ แฃแฅแชแแแแ แแฆแฌแแ แแแแ แแฅ
- แกแแ แแแกแ แฃแแแ แแแแแแแกแแแก แ แแแแ แช Static Pod แงแแแแ แแแแกแขแแ แแ
- แจแแชแแแแแก แขแแแแ แแแขแแแ แฃแแแ แแงแแก แฃแแ แฃแแแแแงแแคแแแ แแ แจแแแแฎแแแแแจแ, แแฃ แแฅแขแแฃแ แ แแแแแฃแแ kube-scheduler-แแ แแแฃแฌแแแแแแแแ
- แแแแแแแแแกแแก แแแแแแ แ แแ แแแ แแขแแขแ แฃแแแ แแงแแก แแแแแซแแ แแ แกแแแฃแแ แ แแกแฃแ แกแแแแก แ แแแแแแแแ (LeastRequestedPriority)
แแแแฎแแ แชแแแแแแแก แแแแแฌแงแแแขแแแแแแแ
แแแฃแงแแแแแแแแ แฃแแแ แแฆแแแแจแแแก, แ แแ แฉแแแ แแแแแแฎแแ แชแแแแแแ แงแแแแ แกแแแฃแจแแแก Kubernetes v1.14.7-แจแ, แ แแแแแ แแก แแ แแก แแแ แกแแ, แ แแแแแแช แแแแแแงแแแแก แแ แแแฅแขแจแ. แแแแแฌแงแแ แแแแแคแแกแขแแก แแแฌแแ แแ แฉแแแแ แแฎแแแ แแฃแแ-แแแกแแแฉแแ แแกแแแแก. แแแแฆแแ แแแแฃแแแกแฎแแแแ แแแแแคแแกแขแ (/etc/kubernetes/manifests/kube-scheduler.yaml) แกแแคแฃแซแแแแ แแ แแแแแงแแแแแ แจแแแแแ แคแแ แแแแแ:
kind: Pod
metadata:
labels:
component: scheduler
tier: control-plane
name: kube-scheduler-cron
namespace: kube-system
spec:
containers:
- command:
- /usr/local/bin/kube-scheduler
- --address=0.0.0.0
- --port=10151
- --secure-port=10159
- --config=/etc/kubernetes/scheduler-custom.conf
- --authentication-kubeconfig=/etc/kubernetes/scheduler.conf
- --authorization-kubeconfig=/etc/kubernetes/scheduler.conf
- --v=2
image: gcr.io/google-containers/kube-scheduler:v1.14.7
imagePullPolicy: IfNotPresent
livenessProbe:
failureThreshold: 8
httpGet:
host: 127.0.0.1
path: /healthz
port: 10151
scheme: HTTP
initialDelaySeconds: 15
timeoutSeconds: 15
name: kube-scheduler-cron-container
resources:
requests:
cpu: '0.1'
volumeMounts:
- mountPath: /etc/kubernetes/scheduler.conf
name: kube-config
readOnly: true
- mountPath: /etc/localtime
name: localtime
readOnly: true
- mountPath: /etc/kubernetes/scheduler-custom.conf
name: scheduler-config
readOnly: true
- mountPath: /etc/kubernetes/scheduler-custom-policy-config.json
name: policy-config
readOnly: true
hostNetwork: true
priorityClassName: system-cluster-critical
volumes:
- hostPath:
path: /etc/kubernetes/scheduler.conf
type: FileOrCreate
name: kube-config
- hostPath:
path: /etc/localtime
name: localtime
- hostPath:
path: /etc/kubernetes/scheduler-custom.conf
type: FileOrCreate
name: scheduler-config
- hostPath:
path: /etc/kubernetes/scheduler-custom-policy-config.json
type: FileOrCreate
name: policy-config
แแแแแแ แซแแ แแแแแ แชแแแแแแแแแแก แจแแกแแฎแแ:
- แจแแชแแแแ pod แแ แแแแขแแแแแ แแก แกแแฎแแแ kube-scheduler-cron
- แแแแแแแแฃแแแ 10151 แแ 10159 แแแ แขแแแแก แแแแแงแแแแแ, แ แแแแ แช แแคแชแแ แแแแแกแแแฆแแ แ
hostNetwork: true
แแ แฉแแแ แแ แจแแแแแซแแแ แแแแแแแงแแแแ แแแแแ แแแ แขแแแ, แ แแแแ แช แแแแฃแแแกแฎแแแแ kube-scheduler (10251 แแ 10259) - --config แแแ แแแแขแ แแก แแแแแงแแแแแแ, แฉแแแ แแแแแแฃแกแขแแ แแแแคแแแฃแ แแชแแแก แคแแแแ, แ แแแแแแแช แฃแแแ แแแแฌแงแแก แกแแ แแแกแ
- แแแแคแแแฃแ แแชแแแก แคแแแแแก (scheduler-custom.conf) แแ แแแแแขแแแแก แคแแแแแก แแแแแแแแแก (scheduler-custom-policy-config.json) แแแแคแแแฃแ แแ แแแฃแแ แแแแขแแแ แฐแแกแขแแแแ
แแ แฃแแแ แแแแแแแแฌแงแแแก, แ แแ แฉแแแแก kube-scheduler-แก แแแกแญแแ แแแแ แแแแฃแแแกแฎแแแแแก แแกแแแแกแ แฃแคแแแแแแ. แจแแชแแแแแ แแแกแ แแแแกแขแแ แฃแแ แ แแแ:
kubectl edit clusterrole system:kube-scheduler
...
resourceNames:
- kube-scheduler
- kube-scheduler-cron
...
แแฎแแ แแแแแ แแแกแแฃแแ แแ แแแแแ, แแฃ แ แแก แฃแแแ แจแแแชแแแแแก แแแแคแแแฃแ แแชแแแก แคแแแแ แแ แแแแแแแแแก แแแแแขแแแแก แคแแแแ:
- แแแแคแแแฃแ แแชแแแก แคแแแแ (scheduler-custom.conf)
แแแแฃแแแกแฎแแแแ kube-scheduler แแแแคแแแฃแ แแชแแแก แแแกแแฆแแแแ, แแฅแแแ แฃแแแ แแแแแแงแแแแ แแแ แแแแขแ แ--write-config-to
แกแแฅแแ แแแแแแกแแแแฃแแแแขแแชแแ . แฉแแแ แแแแแแแแแกแแแ แแแฆแแแฃแ แแแแคแแแฃแ แแชแแแก แคแแแแจแ /etc/kubernetes/scheduler-custom.conf แแ แแแแชแแ แแแ แจแแแแแ แคแแ แแแแ:
apiVersion: kubescheduler.config.k8s.io/v1alpha1
kind: KubeSchedulerConfiguration
schedulerName: kube-scheduler-cron
bindTimeoutSeconds: 600
clientConnection:
acceptContentTypes: ""
burst: 100
contentType: application/vnd.kubernetes.protobuf
kubeconfig: /etc/kubernetes/scheduler.conf
qps: 50
disablePreemption: false
enableContentionProfiling: false
enableProfiling: false
failureDomains: kubernetes.io/hostname,failure-domain.beta.kubernetes.io/zone,failure-domain.beta.kubernetes.io/region
hardPodAffinitySymmetricWeight: 1
healthzBindAddress: 0.0.0.0:10151
leaderElection:
leaderElect: true
leaseDuration: 15s
lockObjectName: kube-scheduler-cron
lockObjectNamespace: kube-system
renewDeadline: 10s
resourceLock: endpoints
retryPeriod: 2s
metricsBindAddress: 0.0.0.0:10151
percentageOfNodesToScore: 0
algorithmSource:
policy:
file:
path: "/etc/kubernetes/scheduler-custom-policy-config.json"
แแแแแแ แซแแ แแแแแ แชแแแแแแแแแแก แจแแกแแฎแแ:
- แฉแแแ แแแแแงแแแแ schedulerName แฉแแแแ kube-scheduler-cron แกแแ แแแกแแก แกแแฎแแแแ.
- แแแ แแแแขแ แจแ
lockObjectName
แแฅแแแ แแกแแแ แฃแแแ แแแแงแแแแ แฉแแแแ แกแแ แแแกแแก แกแแฎแแแ แแ แแแ แฌแแฃแแแแ, แ แแ แแแ แแแแขแ แleaderElect
แแแงแแแแแฃแแแ true-แแ (แแฃ แแฅแแแ แแแฅแแ แแ แแ แซแแ แแแแแ แแแแแซแ, แจแแแแซแแแแ แแแแงแแแแ แแแ false-แแ). - แแแฃแแแแแ แคแแแแแก แแแ แแแ แแแแขแ แจแ แแแแแแแแแก แแแแแขแแแแก แแฆแฌแแ แแ
algorithmSource
.
แฆแแ แก แงแฃแ แแแฆแแแแ แแแแแแแแ แแแ แแแแ แ แแฃแแฅแขแก, แกแแแแช แฉแแแ แแแกแฌแแ แแแ แแแ แแแแขแ แแแก แแแกแแฆแแแแกแแแแก leaderElection
. แจแแชแแแแแแแก แขแแแแ แแแขแแแแก แฃแแ แฃแแแแแกแแงแแคแแ, แฉแแแ แแแแแแฅแขแแฃแ แแ (leaderElect
) แแแแแ แแก (แแแแแกแขแ แแก) แจแแ แฉแแแแก แแ แแชแแกแ แฉแแแแ แแฃแแ-แกแฅแแแฃแแแ แแก แแแแแแก แจแแ แแก แแแแแแแก แแ แแ แกแแแแแแ แฌแแ แขแแแแก แแแแแงแแแแแแ (resourceLock
) แกแแฎแแแแ kube-scheduler-cron (lockObjectName
) kube แกแแกแขแแแแก แกแแฎแแแแ แกแแแ แชแแจแ (lockObjectNamespace
). แ แแแแ แฃแแ แฃแแแแแงแแคแก Kubernetes แซแแ แแแแแ แแแแแแแแแขแแแแก แแแฆแแ แฎแแแแแกแแฌแแแแแแแแก (แแแ แจแแ แแก kube-scheduler), แจแแแแซแแแแ แแฎแแแแ
- แแแแแขแแแแก แคแแแแแก แแแแแแแแ (scheduler-custom-policy-config.json)
แ แแแแ แช แแแ แ แแแแฌแแ แ, แฉแแแ แจแแแแแซแแแ แแแแแ แแแแแ แ แแแแ แแแแแ แแขแฃแ แแแแแขแแแแกแแแ แแฃแจแแแแก แแแแฃแแแกแฎแแแแ kube-scheduler แแฎแแแแ แแแกแ แแแแแก แแแแแแแแ. แแแฃ, แฉแแแ แแ แจแแแแแซแแแ แแแแแฆแแ แคแแแแ แแแแแแแแแก แแแแแขแแแแ แแแแฃแแแกแฎแแแแ kube-scheduler-แแกแแแแก แแกแแแ, แ แแแแ แช แแแแคแแแฃแ แแชแแแก แคแแแแ. แแแแแ แแฆแแฌแแ แแ แแแแแแแแแก แแแแแขแแแ, แ แแแแแแช แแแแแแขแแ แแกแแแก /etc/kubernetes/scheduler-custom-policy-config.json แคแแแแจแ แจแแแแแแแแแ แแ:
{
"kind": "Policy",
"apiVersion": "v1",
"predicates": [
{
"name": "GeneralPredicates"
}
],
"priorities": [
{
"name": "ServiceSpreadingPriority",
"weight": 1
},
{
"name": "EqualPriority",
"weight": 1
},
{
"name": "LeastRequestedPriority",
"weight": 1
},
{
"name": "NodePreferAvoidPodsPriority",
"weight": 10000
},
{
"name": "NodeAffinityPriority",
"weight": 1
}
],
"hardPodAffinitySymmetricWeight" : 10,
"alwaysCheckAllPredicates" : false
}
แแแ แแแแ, kube-scheduler แฏแแ แแแแแแก แแแแแซแแแแก แฉแแแแแแแแแแก, แ แแแแแแแแแแช แจแแกแแซแแแแแแแ pod-แแก แแแแแแแแ GeneralPredicates แแแแแขแแแแก แแแฎแแแแแ (แ แแแแแแช แแแแชแแแก PodFitsResources, PodFitsHostPorts, HostName แแ MatchNodeSelector แแแแแขแแแแก แแแแแแแฅแขแก). แแ แจแแแแแ แแแแแแฃแแ แแแแแซแ แคแแกแแแแ แแ แแแ แแขแแขแแแแก แแแกแแแแก แแแแแขแแแแก แแแแ แแแแก แจแแกแแแแแแกแแ. แฉแแแแ แแแแชแแแแก แแแ แแแแแแก แจแแกแแกแ แฃแแแแแแ แแแแแฉแแแแ, แ แแ แแแแแขแแแแก แแกแแแ แแแแ แแแ แแฅแแแแแแ แแแขแแแแแฃแ แ แแแแแฌแงแแแขแ. แจแแแแฎแกแแแแแ, แ แแ แแแแแขแแแแก แแแแแแแฅแขแ แแแแ แแแขแแแฃแ แ แแฆแฌแแ แแแแแแ แฎแแแแแกแแฌแแแแแแ
แแแแแ แแฃแฌแแแแ แแฎแแแ kube-scheduler-แแก แแแแแคแแกแขแก, แ แแแแแแช แจแแแฅแแแแแ แแแแแก แแแกแแฌแงแแกแจแ, kube-scheduler-custom.yaml แแ แแแแแแแแกแแ แจแแแแแ แแแแแ /etc/kubernetes/manifests แกแแ แแแแแแ แแแแแซแแ. แแฃ แงแแแแแคแแ แ แกแฌแแ แแ แแแแแแแ, Kubelet แแแแแฃแจแแแแก แแแแก แแแแแแฃแ แแแแแซแแ แแ แฉแแแแ แแฎแแแ kube-scheduler-แแก แแฃแ แแแแแแจแ แแแแฎแแแ แแแคแแ แแแชแแแก, แ แแ แฉแแแแ แแแแแขแแแแก แคแแแแ แฌแแ แแแขแแแแ แแฅแแ แแแแแงแแแแแฃแแ:
Creating scheduler from configuration: {{ } [{GeneralPredicates <nil>}] [{ServiceSpreadingPriority 1 <nil>} {EqualPriority 1 <nil>} {LeastRequestedPriority 1 <nil>} {NodePreferAvoidPodsPriority 10000 <nil>} {NodeAffinityPriority 1 <nil>}] [] 10 false}
Registering predicate: GeneralPredicates
Predicate type GeneralPredicates already registered, reusing.
Registering priority: ServiceSpreadingPriority
Priority type ServiceSpreadingPriority already registered, reusing.
Registering priority: EqualPriority
Priority type EqualPriority already registered, reusing.
Registering priority: LeastRequestedPriority
Priority type LeastRequestedPriority already registered, reusing.
Registering priority: NodePreferAvoidPodsPriority
Priority type NodePreferAvoidPodsPriority already registered, reusing.
Registering priority: NodeAffinityPriority
Priority type NodeAffinityPriority already registered, reusing.
Creating scheduler with fit predicates 'map[GeneralPredicates:{}]' and priority functions 'map[EqualPriority:{} LeastRequestedPriority:{} NodeAffinityPriority:{} NodePreferAvoidPodsPriority:{} ServiceSpreadingPriority:{}]'
แแฎแแ แ แฉแแแ แแฎแแแแ แฉแแแแ CronJob-แแก แกแแแชแแคแแแแชแแแจแ แแแแแแแแ, แ แแ แแแกแ แแแแแแแแก แแแแแแแแแก แงแแแแ แแแแฎแแแแ แแแแฃแจแแแแแฃแแ แฃแแแ แแงแแก แฉแแแแ แแฎแแแ แแฃแแ-แแแกแแแฉแแ แแก แแแแ :
...
jobTemplate:
spec:
template:
spec:
schedulerName: kube-scheduler-cron
...
แแแกแแแแ
แกแแแแแแ แฏแแแจแ, แฉแแแ แแแแแฆแแ แแแแแขแแแแแ แแฃแแ-แแแกแแแฉแแ แ, แแแแ แแแแก แแแแแขแแแแก แฃแแแแแแฃแ แ แแแแ แแแแ, แ แแแแแก แแฃแจแแแแแก แฃแจแฃแแแแ แแฃแแแแแขแ แแแแแขแ แแแแแก. แแแ แแ แแแแกแ, แฉแแแ แแแแแงแแแแ แแฎแแแ แแแแแ แแก แแ แฉแแแ แฉแแแแ แแฃแแ-แแแแ แแแแก แแแแแแก แจแแ แแก แแ แจแแแแฎแแแแแจแ, แแฃ แซแแแแ แแแแแ แ แ แแแแ แแแแแแแ แแแฃแฌแแแแแแแ แแแฎแแแแ.
แ แแแฃแแแ แฃแแ แแแแแแแชแแแแแกแ แแ แกแแ แแแกแแแแก แแแแแแแแ แแ แซแแแแแแ แแแแฃแแแกแฎแแแแ kube-scheduler-แแก แแแจแแแแแแ แแ แงแแแแ cron แแแแชแแแ แแแแแแแแ แแแแแแแแ แแฎแแแแ. cron แแแแชแแแแแแก แแแแ แจแแฅแแแแแ แแแขแแแ แแแ แแฎแแ แแแแแแ แแ แแแฌแแแแแแ แงแแแแ แแแแแซแแ. แแแแก แแแแแแแแกแฌแแแแแแ, แ แแ แแ แแแแก แแแแชแแแแแแก แฃแแแขแแกแแแ แจแแกแ แฃแแแแฃแแแ แแแแแ แแแแแซแแแแ, แ แแแแ แช แแ แแแฅแขแแก แซแแ แแแแแ แแแแแแแชแแแแ, แแแแ แแแแจแแแแแแแแแ แจแแแแชแแ แ แแแแแแแก แแแแแแแแแแแแแก แ แแกแแ แ แแกแฃแ แกแแแแก แแแแแแแแแแก แแแแ. แแแแแขแแแแแ kube-scheduler-แแก แจแแแแฆแแแแก แจแแแแแ, แแ แแแแแแแแ แแฆแแ แฌแแ แแแแจแแ cron แแแแชแแแแแแก แแ แแแแแแแแ แ แแแแ แแแแแ แแแแแแจแแ แแแแ.
แแกแแแ แฌแแแแแแฎแแ แกแฎแแ แกแขแแขแแแแ แฉแแแแก แแแแแแ:
แขแ แแคแแแแก แแแ แแแ แแฃแแแ แแแขแแก แแแแกแขแแ แจแ Calico-แกแแแ แแ แแแ แฅแกแแแแก แแแแแขแแแแก แแแ แแแแขแแแแก แแแแแ แแแ Calico-แกแแแ แแ แแแ แ แแชแ Linux conntrack แแฆแแ แแ แแก แจแแแ แแแแแแแ แ แแแขแแก แแแแแ แแชแฎแแแก 4 แแแแแแแแ Kubernetes แแแแกแขแแ แแก แแแแแฎแแแแ แจแแคแแ แฎแแแแก แแแ แแจแ แแฃแแแแแแ แจแแคแแ แฎแแแแก แแแแแแแแแ แแ แแแแแชแแแแ แแแแแแ Kubernetes: แ แแขแแ แแ แแก แแกแ แแแแจแแแแแแแแแ แกแแกแขแแแแก แ แแกแฃแ แกแแแแก แแแ แแแแก แแแแคแแแฃแ แแชแแ?
แฌแงแแ แ: www.habr.com