Kube-scheduler á¨áŠá áááľáľ áá á áŤá ááᣠáĽáąá á á°á ááąáľ ááá˛áá˝ áá°á¨áľ á ááśá˝ ááľáĽ áŤá ááľáá˝á áááááĽá á¨ááľáŤá áááááľ á áá áľá˘ áĽááá áá á¨áŠá áááľáľ áááľá°á á áá áŤá áľ áá á¨ááŁáŞ á¨áŠá¤-áááááĽá á ááá ááá˛áá˝ áľáĽáľáĽ áá áĽááááš á¨áááľ á°áááľ á°ááŁáŤáľ á°áľáá áľááá ááľáá˝á ááááľ á¨áľááš ááá˛áá˝ áĽá á áá áĽáá°ááá áá°áĽ á¨ááĽáá ᢠááá ááᣠááľáá˝á á¨ááá°áĽ áá°áąá ááľá°áŤá¨á á áľááá á áááá áľ áá áááłáá˝ á áᣠáĽá áá á á°ááŁá ááá¨ááá áááľ ááááśá˝ á áá˘
- á áĽá á¨ááá˝ áľáĽáľáĽ á¨áŠá¤-áááááĽá á ááá ááá áŠ
- á¨áŤáľáá áááááĽá ááťá áĽá á¨á¤áá á á áááá áĽáŤááá˝ áá áĽáá˛á°áŤ áŤáľá°ááŠáľá˘
á áá á˝áá ááľáĽ á á ááą ááŽáááłá˝á áá á¨áĽáśá ááľááá˝á áŤáá°áľá°áŤá¨á á¨áá á°ááł á˝áá ááááłáľ á¨ááááŞáŤáá ááĽáĽ á áááá áĽáááťáá á˘
á¨áŠá¤-áááááĽá á ááá áĽáá´áľ áĽáá°áá°áŤ á áá ááá˘áŤ
á á°ááá á¨áŠá¤-áááááĽá á ááá ááľáá˝á á ááĽáł ááááľ áááááľ áĽáá°ááá áľ áἠááŁá á¨áááŁá áá - áĽáą á¨áááá ááľ á¨ááááĽá áľá ááľááá ááááľ áááá°á áĽáť áá. á áá á áááá ᨠkube-scheduler áĽáŤ áá¤áľ á¨ááľááá ááááľ áľá áá, áá á áááŽááŤá áĽáŤá áá° á¤áá á á áááá ááááłá, áĽá áĽá፠áá áľáŤá áŤá áá.
á ááááŞáŤ, Kube-scheduler á ááŹá˛áŹáľáľ ááá˛áá˝ áá°á¨áľ ááą ááłááľáŁá¸á á¨áá˝ááŁá¸áá á¨á áááá˝ áááá áŤá áá
áŤá. á ááá áᣠá¨áá
áááá ááľáĽ áŤáá áĽáŤááłááą ááľááá ááááľ á
áľá፠á áá°áŁá¸á áááŞáŤáá˝ áá á¨áľ á¨á°áá°á ááĽáŚá˝á ááá ááᢠá áá¤áąá, á¨áá°áá á¨ááĽáĽ áĽááľ áŤáá ááľááá ááááľ á°ááá§á. á°ááłáłá á¨áá°á ááĽáĽ áŤáá¸á á áááá˝ áŤáᣠá ááľ á áááá° ááá¨áŁáᢠá¨á°áłá˘áá˝ áááá áĽá ááá፠(ááŁáŤáľ) áĽá á
áľá፠á¨áá°áŁá¸á (ááĽáĽ ááľáá á) ááá˛áá˝ á ááľáĽ áááá
á¨á˝áአá áŤá ááááŤ
á ááá˛áľ ááľáĽ á ááŤáł ááĽá áŤáá¸á á¨á°ááŤáŠ á¨áŠá áááľáľ áááľá°á á°á áĽáá á˘ááŠáᣠá ááááŞáŤ á¨ááľ áááááĽáá á˝áá áŤáá áá á á áᥠááᣠá¨ááŽáááśáťá˝á ááľáĽ á ááą áĽá áá áłá á°ááŁáŤáľá (~ 100 CronJob á áŤááľ) ááŤááľ á˛ááá áá áᢠá¨á˝ááŠá ááá፠á á°áťá áá á ááááá á ááľ áááᎠá°ááŞáľ áĽáá° ááłá áĽáááľáłáá ᣠá áá ááľáĽ ááŽá á°ááŁá á á°áá á ááľ áá ááááŤá ᣠáá á á á˛áአáá á¨á°áá°á áááľ áááĽáŤáᢠá¨ááŽá áľáŤáá áááľáŹáľ áśáľáľ á áááá˝ áášá á°ááłáłá áŁá áŞáŤáľ á°ááľá áá (á áĽáŤááłááą 24 vCPUs)á˘
á á°ááłáłá áá á¨ááĽá áľ ááἠáá á á á¨ááá áľáááááἠááŽááἠáá áŤá á áá áĽáá°ááá á áľááá áááá á ááťááᢠá á ááŤáᣠá áá°á á á¨áŠá¤-áááááĽá á°áᣠáĽáŤááłááą ááľááá ááááľ á¨3-4 á¨áĽáŤ á ááŁááá˝á áŤáŤááłáᣠáá á á áĽáŤááłááą ááľááá ááááľ á˛áአáá áŤááá áááľ ~20-30% áááĽáŤáá˘
á˝áአáŤáą á ááłááľ áá ááŽá á°ááŁá ááľáľ á¨áśáľáľ á áááá˝ á á ááą áá áááááĽá ááŤáá áŤáááᢠáááľá ᣠá á ááľ áá ᾠᣠáá ááą á áááá˝ á ááľ áá á ááľ á ááłáá°á ᣠá áááš áááľ á áááá˝ áá 6-8 á¨á°ááŁáŠ á ááá˝ áĽá¨á°áŠ áá á ᣠáá á ~ 40-60% á¨á˛áአáááľ áá ᨠá˘
á˝áአá ááá á áááá° áľáááá˝ áĽá á áá á áá á á˛áľ á¨áŽáą áĽáľá á¨á°áááá áľ áá áá ááááłáá˘
á¨áŠá¤-áááááĽá á°á áááἠááľáłááť á°á¨áá áá° á°á¨á 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
á¨áá áá¨áłáľ á¨ááťáá á áá°áá ááľááá ááááľ á¨áááš áŤááą á¨áá¨á¨áť ááĽáŚá˝á áĽááłáľáááá áĽá áľááá á á¨áá°ááá ááĽáĽ áááĄáľ áááľ á áááá˝ áĽáť áĽá áľ áááŁáľ á°á˝ááᢠáľááá á á˝áአá áľááá á ááłáá˝ áááááĽá áá áĽáá°ááá áĽááá á áá ááá˘
á˝ááŠá ááááłáľ á°á¨ááŞá áľáá°-ááá ááĽá ááá˝ áá á - ááááŚá˝á áá°ááľá ᣠááľááá ááááą ááĽáŚá˝á áĽááłááá áá á áľá፠áá¨áą áĽá á áľááá á¨áá á¨ááŁáŞáá á¨áŠá¤-áááááĽá á á᪠ááá˛áá˝á áŤáľá°áŤááᢠááá ᣠáĽáá áááľ ááá á˝ááŽá˝ á ááĽáááá-
- á á¨áá°áá á¨ááá˘áŤ á°á¨á (10) ᣠáá ááłááľ á
áľá፠á¨áá°áŁá¸á ááłáŽá˝ áĽáť á¨á°áá ááĽáŚá˝ ááá¸áŁá¨ááᢠá¨áá áŁáá á¨áááἠááľáłááťáá˝ ááľáĽ ᣠá áááἠááľáłááťáá˝ ááľáĽ áááłáŠ ááá á
áľááŤáὠᣠá áááá˝ á áá°á á áĽá á á˝áá ááá ááĽá ááľáĽ á°ááłáłá ááĽáŚá˝á áŤááŁá ᣠáá á á˝áá áĽá
áľ ááľáĽ áŤáá á¨áá¨á¨áť áá¤áľ á¨á°áᨠáááá áá¨áľ áá˝áá ᢠáľááá
, áá ááłááľ á
áľááŤáá˝, ááĽáĽ ááľáá á "á¨ááľá¨á á áľá°áááŁ" áá¨á°áłá áĽáá áá°áá°á áĽáá˝ááá, áĽá ááľááá ááááą áá¨áľáá á
áľá፠ááĽáŚá˝á áĽááłááá á¨ááá¨áłá áľ ááá ááááľ á¨ááá. áá
áá á˝áá á áááá ááá˝áá
ááá° ááłá á Github áá á¨áŠá áááľáľ áá¨ááťá˘ áá á˝áá á ááťáá áľ áá, á¨ááá˘áŤ áľáá á Kubernetes v1.15,1.16, 1.17 áĽá XNUMX ááááá˝ ááľáĽ áĽáá°áá¨áá á¨ááá˘áá˝ ááá˝ á°á°áĽáˇá. - áŠá¤-áááááĽá á áľáá á á áá áá á¨á¨áľááš á¨ááá˛áá˝ áľáĽáľáĽ áá áĽáá°áá°áŤ ááá¨áłáľ ááá ááááľ á¨ááᢠá áᣠááľáĽ
á°ááľ áá áááá á°ááááŻáᢠááĽá°áśášá áá¨áľ ááá á¨ááŁáŞáá á¨áŠá¤ áááááĽá á°ááŁáŁáŞ ááá˛áá˝á áááľá á¨áá˝ááľ á ááľáĽ áĽáť ááá˘á¨ááá áŽáśá˝ .
á ááľ áá á ááľ ááľááá ááááľ á ImageLocaityPriority ááᲠáá°á¨áľ ááĽáŚá˝á áĽááłáá°áá á ááááἠá¨áťáá á áá áááá¨áťáá áááľáŹáľ á áľáááá ááľá áŤáá áá° ááľááá ááááľ áá áááᢠáááľá á á˛áľ á¨áá°áá áŞáŤá áĽáľá á á°áááá áľ áá áľ á¨ááŽá áľáŤá á áááľ á áááá˝ áá áĽáá˛á°áŤ á ááľá¨á á á˛áľ ááľá á¨áśáá°á áááἠá¤áľ áá° áĽáááą á ááá¨áľ áááľ á áááá˝ á¨áŚáľá°áá á ááá á¨áá°á á¨áá¨á¨áť áá¤áľ á ááá°áá ᢠ.
á¨áá áĽáá°áťááŠáľ á áááἠááľáłááťáá˝ ááľáĽ áľá ImageLocaityPriority ááᲠáááá áá¨áá á áááá¨áľá, áľááá á¨áĽáá áááľ áááá°á˝, ááľáá á á á˛áą á¨áá°áá áŞáŤá áľáŞáľ áá° áśáľá°áá ááľááá ááááľ áŁááá, á¨á፠á áá áááááĽá á áľááá áá áŤá. . á¨áááááĽá á˝áá á áŁá á áá á áá á¨ááłá¨á á ImageLocalityPriority ááᲠááááŤáľ ááᣠáĽá áá á¨áá ááá áá ááŤáŤááᢠá ááŁáŞ á¨áŠá¤ áááááĽá ášá á áľá፠á¨áá°áŁá¸áá áááá ááľáĽ áŤááľá áĽáŤááłááąá ááá˛áá˝ áá á áá áá¨á áŁáááťáá˝áᣠá¨ááľ áááááĽá ááá˛áá˝á á°áááá á áľá°áłá°á áŤáľáááááá˘
á¨á˝áአááá
áá˝áአáááľáá á á°áťá áá á á¨á°áá°á áĽáá˛áá áĽáááááá ᣠáááľá ᣠá¨áŠá áááľáľ áá á áŤááľ (áĽáá áááľ ááŁáŞáá á¨áŠá¤-áááááĽá á áľáá áááľ áá) áłáááἠááá¨áľ á áá áľá˘ á˝ááá á á ááľ áŚáł áááłáľ áĽá á áá ááá á á ááááááᢠáľááá , á˝ááŠá ááááłáľ áá° áááľ á ááŤáŽá˝ á°áá°áá, á á áááš ááá˘áŤ áá á¨áłááá - á°á¨á᪠á¨áá á°ááł ááá á ááá á¨áŤáľáá ááťá. ᨠcron áľáŤáá˝á ááááľ ááá ááľáááľ áááąá á áśáľáľ á áááá˝ áĽáŠá áá¨ááá áá. áá ááľáááľ á ááŁá á¨áŠá¤-áááááĽá ááá˛áá˝ ááá áá˝áááŁáľááá á˝ááŤá˝áá ááááłáľ á¨áŤáľáá áááááĽá ááá ááá áááł á¨áááá˘
á°á¨á᪠á¨áŠá¤-áááááĽá á°áŞ áááá á áĽá ááá°ááŤáľ áááŞáŤáá˝ á ááľáĽ á°áĽáŤáá°ááá˘
- á áááááą á ááá á¨áááľá°á ááśá˝ áá áĽáá° Static Pod áá°ááŤáľ á áá áľá˘
- á¨áŠá¤ áááááĽá á áľáá áŤáá áá ááľ á¨áááá á¨áá á¨áľá á°áľ ááťáťá áá á¨áĽ á áá áľá˘
- áĽá áľ á áááá á áľ áá ááá á áľá፠á¨áá°á á á ááľááá ááááľ áá á¨ááá ááĽáśá˝ áĽááľ ááá á áá áľ (á˘áŤááľ á¨áá á¨á á áľááŤ)
á¨áááľáá áľáá áŤ
á 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
áľá áá áá áááŚá˝ á á ááŠ
- á¨ááľ áĽá ááŤáŁáá áľá áá° áŠá¤-áááááĽá-ááŽá ááá§á
- áááŤá áĽáá°á°ááá¸á á¨áá°áĽ á á áááá 10151 áĽá 10159 áááżáá˘
hostNetwork: true
áĽá áĽáá° ááŁáŞá á¨áŠá¤ áááááĽá (10251 áĽá 10259) á°ááłáłá áá°áŚá˝á áá áá á áá˝ááᢠ- ᨠ--config áá¤áľá á áá áá á áááááą áááá áŤáá áľá á¨ááááŞáŤ ááá ááá˝áá˘
- á¨á°ááá¨á á¨áá á¨áľ ááá (scheduler-custom.conf) áĽá á¨áááááĽá ááᲠááá (scheduler-custom-policy-config.json) á¨á áľá°ááá ááŤá
á¨á á¨áŠá¤ áááááĽá á ááá á¨ááŁáŞá áá á°ááłáłá á¨áá ááĽáśá˝á áĽáá°áááá á áááąá˘ á¨áááľá°á áááá áŤááľááĄ
kubectl edit clusterrole system:kube-scheduler
...
resourceNames:
- kube-scheduler
- kube-scheduler-cron
...
á áá á ááááŞáŤ ááá áĽá á áááááĽá ááᲠááá ááľáĽ áá ááŤá áĽááłáá áľ áĽááááááĄ-
- á¨áááá ááá (scheduler-custom.conf)
ááŁáŞáá á¨áŠá¤-áááááĽá á°á áá á¨áľ áááááľ áá¤áľá áá áá á ááŚáľ--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"
áľá áá áá áááŚá˝ á á ááŠ
- á¨áá áááááĽá áľáá áá° áŠá¤-áááááĽá-ááŽá á áááááłá˝á áľá á ááá á°ááá˘
- á áááŞáŤ
lockObjectName
áĽáá˛áá á¨á áááááłá˝áá áľá áááááľ áĽá áááŞáŤáá áá¨ááἠá ááĽááľleaderElect
áá° áĽáááľ á°áááĽáŻá (á ááľ áá ááľááá ááááľ áŤáá áá° áá°áľ áááá áľá˝ááá )ᢠ- áá° ááá á¨áááľá°áá ááááľ á áááŞáŤá ááľáĽ áŤáá á¨áááááĽá ááá˛áá˝ ááá፠áá áááżáá˘
algorithmSource
.
áááá áááŞáŤáá˝á á¨áááľá°áŤááá áľ ááá°ááá ááĽáĽ á áĽáááľ ááááá á áá áá leaderElection
. áľá
á°áľ ááťáťáá ááá¨áááĽáŁ á áľá˝ááá (leaderElect
) á ááľ á¨áá¨á¨áť ááĽáĽ á áá áá á áĽá á¨áŠá¤-áááááĽá ášá ááŤá¨á á᪠(ááľá°á) á¨ááá¨áĽ áá°áľ (ááľá°á)resourceLock
áŠá¤-áááááĽá-ááŽá (áľá)lockObjectName
) á kube-system namespace (lockObjectNamespace
). Kubernetes áĽáá´áľ áá áá áááá˝ (kube-schedulerá á¨ááŽ) á¨áá°á ááááľá áĽáá°ááŤá¨ááἠá ááľáĽ ááááá˘
- áááááĽá ááľáŤá ááᲠááá (scheduler-custom-policy-config.json)
áá°á áĽáŹ áĽáá°áťááŠáľáŁ ááŁáŞá á¨áŠá¤-áááááĽá á ááá á¨á¨áľááš ááá˛áá˝ áá á¨áá áŤáá áŽáľ á áá°áá°á áĽáť áĽáá°áá ááá áĽáá˝áááᢠáááľáᣠáá áĽáá° á¨áá á ááá áááŁáŞá á¨áŠá¤-áááááĽá á á᪠á¨áááááĽá ááá˛áá˝ áŤáá ááá ááááľ á áá˝ááᢠá /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 á ááááŞáŤ á ááľ ááľ á áááŤá áá¨á˛á˛áľáľáľ ááᲠ(á¨PodFitsResourcesᣠPodFitsHostPortsᣠHostName áĽá MatchNodeSelector ááá˛áá˝ áľáĽáľáĽá á¨ááŽ) á¨ááłááąáŁá¸áá ááśá˝ áááá áŤá áá
áŤáᢠáĽá á¨á፠áĽáŤááłááą ááľááá ááááľ á
áľá፠á áá°áŁá¸á áľááľá ááľáĽ á ááá˛áá˝ áľáĽáľáĽ áá á¨áľ ááááááᢠá¨á°ááŁáŤá˝áá áááłáá˝ áááááľáŁ áĽáá°áá
á áááľ á¨ááá˛áá˝ áľáĽáľáĽ áĽáŠ áááľá áĽáá°ááá á°áááá°ááᢠá¨áááá ááááŤááťá¸á áá á¨ááá˛áá˝ áľáĽáľáĽ áĽáá°ááá ááľáłááľá
á áááŤá ááááŞáŤ áá á¨áá áááá á á˛áąá á¨áŠá¤ áááááĽá á áľááá˝ áŠá¤-áááááĽá-custom.yaml áĽáá áĽáá áŤá áĽá á áá¨á°áá ááááľ /ááá°/kubernetes/á áŚáľáľ ááľá°á ááśá˝ áá ááááŁáᢠááá ááá á áľááá á¨á°á°áŤ áŠá¤ááľ á áĽáŤááłááą ááľááá ááááľ áá ááľ áŤáľááłá áĽá á á á˛áą á¨áŠá¤ áááááĽá áááἠáááἠááľáĽ á¨áááŞáŤ áááá˝á á á°áłáŤ áááł áá°áá áŠá áĽááŤáááĄ
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
...
áá°áá°ááŤ
á áá¨á¨áťáᣠáአá¨áá á¨áááááĽá á ááŁáĽ ááᲠáŤáá á°á¨á᪠á¨áŠá¤ áááááĽá á ááá á ááá°ááᣠáľáŤáá á ááĽáł á kubelet ááĽáĽá á¨áá°á¨áá áľ ááᢠá á°á¨ááŞá á áŽáá á᪠á áá ááááŤáľ á¨áááá á¨áá á áĽá á¨áŠá¤ áááááĽá ášá ááŤá¨á á á˛áľ á᪠áá፠á ááá á°ááá˘
áá°á á á áááŹá˝áá˝ áĽá á áááááśá˝ á ááŁáŞ á¨áŠá¤-áááááĽá á°á á áŠá áááááĽá ááŤáá áááĽááᣠáĽá ááá á¨ááŽá á°ááŁáŤáľ áá á áá áá° á á˛áą á°áááááᢠá cron á°ááŁáŤáľ á¨á°áá á¨á áááľ á áá á ááá á áááá˝ áá áĽáŠá á°á°áŤááˇáᢠá áĽááááš á¨ááŽá áľáŤáá˝ á¨ááŽáááą áá áá á áááŹá˝áá˝ áá á°ááłáłá á áá ááľááá ááááľ áá áĽáá°áá°áá አá¨áááľ ááľáĽ á ááľááŁáľ áá á ááĽáľ áĽáŚáľ ááááŤáľ ááľáá˝á á¨ááááłááľ á á°áá á áĽá á áááˇá. á°á¨ááŞáá á¨áŠá¤-áááááĽá á áľá°ááá áŤáľá°ááá á ááᣠá¨ááŽá áĽáŤáá˝á áĽáŠá áŁááá áááááĽá á¨áááŁáľ á˝ááŽá˝ á áá°ááąáá˘
á áĽááá˝á áá ááá˝ á˝ááá˝á áŤááĽáĄáĄ-
á¨áŤáᎠáá á áŠá áááľáľ áááľá°á ááľáĽ á¨áľáŤáá á áľá°áłá°á ᨠCalico áá á¨á ááłá¨ áá¨áĽ ááᲠââááľáá¸á፠á ááŤáŽá˝á áá¨áłáľ á¨ááááľ áŽááľáŤáá°á áá°áá áŤááá 4 ᨠiota ááľá°áááá˝ ááłááá˝ áŤáááá¨áĽ á¨áŠá áááľáľ áľáĽáľáĽá ááťáťá áᎠá¨áĽá¨ááľ áá áá°ááŤáľ áĽá á¨ááἠááłáá˝ áŠá áááľáľáĄ á¨áľáááľ ááĽáľ á áľá°áłá°áá áááá á áŁá á áľááá á¨ááá ááááľáá?
ááá: hab.com