рд╢реЗрдбреНрдпреБрд▓рд┐рдВрдЧ рдирд┐рдпрдорд╛рдВрдЪреНрдпрд╛ рд╕рд╛рдиреБрдХреВрд▓ рд╕рдВрдЪрд╛рд╕рд╣ рдЕрддрд┐рд░рд┐рдХреНрдд рдХреНрдпреВрдмреЗ-рд╢реЗрдбреНрдпреВрд▓рд░ рддрдпрд╛рд░ рдХрд░рдгреЗ

рд╢реЗрдбреНрдпреБрд▓рд┐рдВрдЧ рдирд┐рдпрдорд╛рдВрдЪреНрдпрд╛ рд╕рд╛рдиреБрдХреВрд▓ рд╕рдВрдЪрд╛рд╕рд╣ рдЕрддрд┐рд░рд┐рдХреНрдд рдХреНрдпреВрдмреЗ-рд╢реЗрдбреНрдпреВрд▓рд░ рддрдпрд╛рд░ рдХрд░рдгреЗ

рдХреБрдмреЗ-рд╢реЗрдбреНрдпреБрд▓рд░ рд╣рд╛ рдХреБрдмрд░реНрдиреЗрдЯреНрд╕рдЪрд╛ рдПрдХ рдЕрд╡рд┐рднрд╛рдЬреНрдп рдШрдЯрдХ рдЖрд╣реЗ, рдЬреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдзреЛрд░рдгрд╛рдВрдиреБрд╕рд╛рд░ рдиреЛрдбреНрд╕рдордзреНрдпреЗ рд╢реЗрдбреНрдпреВрд▓ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЬрдмрд╛рдмрджрд╛рд░ рдЖрд╣реЗ. рдмрд░реНтАНрдпрд╛рдЪрджрд╛, рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ рдХреНрд▓рд╕реНрдЯрд░рдЪреНрдпрд╛ рдСрдкрд░реЗрд╢рди рджрд░рдореНрдпрд╛рди, рдЖрдореНрд╣рд╛рд▓рд╛ рдкреЙрдб рд╢реЗрдбреНрдпреВрд▓ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдХреЛрдгрддреА рдкреЙрд▓рд┐рд╕реА рд╡рд╛рдкрд░рд▓реА рдЬрд╛рддреЗ рдпрд╛рдЪрд╛ рд╡рд┐рдЪрд╛рд░ рдХрд░рдгреНрдпрд╛рдЪреА рдЧрд░рдЬ рдирд╛рд╣реА, рдХрд╛рд░рдг рдбреАрдлреЙрд▓реНрдЯ рдХреНрдпреБрдм-рд╢реЗрдбреНрдпреБрд▓рд░рдЪреНрдпрд╛ рдзреЛрд░рдгрд╛рдВрдЪрд╛ рд╕рдВрдЪ рдмрд╣реБрддреЗрдХ рджреИрдирдВрджрд┐рди рдХрд╛рдорд╛рдВрд╕рд╛рдареА рдпреЛрдЧреНрдп рдЕрд╕рддреЛ. рддрдерд╛рдкрд┐, рдЕрд╢реА рдкрд░рд┐рд╕реНрдерд┐рддреА рдЕрд╕рддреЗ рдЬреЗрд╡реНрд╣рд╛ рдЖрдордЪреНрдпрд╛рд╕рд╛рдареА рд╢реЗрдВрдЧрд╛ рд╡рд╛рдЯрдк рдХрд░рдгреНрдпрд╛рдЪреНрдпрд╛ рдкреНрд░рдХреНрд░рд┐рдпреЗрд╕ рдмрд╛рд░рдХрд╛рдИрдиреЗ рдЯреНрдпреВрди рдХрд░рдгреЗ рдорд╣рддреНрддреНрд╡рд╛рдЪреЗ рдЕрд╕рддреЗ рдЖрдгрд┐ рд╣реЗ рдХрд╛рд░реНрдп рдкреВрд░реНрдг рдХрд░рдгреНрдпрд╛рдЪреЗ рджреЛрди рдорд╛рд░реНрдЧ рдЖрд╣реЗрдд:

  1. рдирд┐рдпрдорд╛рдВрдЪреНрдпрд╛ рд╕рд╛рдиреБрдХреВрд▓ рд╕рдВрдЪрд╛рд╕рд╣ рдХреНрдпреВрдмреЗ-рд╢реЗрдбреНрдпреВрд▓рд░ рддрдпрд╛рд░ рдХрд░рд╛
  2. рддреБрдордЪрд╛ рд╕реНрд╡рддрдГрдЪрд╛ рд╢реЗрдбреНрдпреБрд▓рд░ рд▓рд┐рд╣рд╛ рдЖрдгрд┐ API рд╕рд░реНрд╡реНрд╣рд░ рд╡рд┐рдирдВрддреНрдпрд╛рдВрд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рдгреНрдпрд╛рд╕ рд╢рд┐рдХрд╡рд╛

рдпрд╛ рд▓реЗрдЦрд╛рдд, рдореА рдЖрдордЪреНрдпрд╛ рдкреНрд░рдХрд▓реНрдкрд╛рдВрдкреИрдХреА рдПрдХрд╛рд╡рд░ рдЪреВрд▓рд╛рдВрдЪреНрдпрд╛ рдЕрд╕рдорд╛рди рд╢реЗрдбреНрдпреВрд▓рд┐рдВрдЧрдЪреНрдпрд╛ рд╕рдорд╕реНрдпреЗрдЪреЗ рдирд┐рд░рд╛рдХрд░рдг рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдкрд╣рд┐рд▓реНрдпрд╛ рдмрд┐рдВрджреВрдЪреНрдпрд╛ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрдЪреЗ рд╡рд░реНрдгрди рдХрд░реЗрди.

рдХреБрдмреЗ-рд╢реЗрдбреНрдпреБрд▓рд░ рдХрд╕реЗ рдХрд╛рд░реНрдп рдХрд░рддреЗ рдпрд╛рдЪрд╛ рдереЛрдбрдХреНрдпрд╛рдд рдкрд░рд┐рдЪрдп

рд╣реЗ рд╡рд┐рд╢реЗрд╖рддрдГ рд▓рдХреНрд╖рд╛рдд рдШреЗрдгреНрдпрд╛рд╕рд╛рд░рдЦреЗ рдЖрд╣реЗ рдХреА рдХреБрдмреЗ-рд╢реЗрдбреНрдпреВрд▓рд░ рдереЗрдЯ рд╢реЗрдбреНрдпреВрд▓рд┐рдВрдЧ рд╢реЗрдбреНрдпреВрд▓рд╕рд╛рдареА рдЬрдмрд╛рдмрджрд╛рд░ рдирд╛рд╣реА - рддреЛ рдХреЗрд╡рд│ рдкреЙрдб рдХреЛрдгрддреНрдпрд╛ рдиреЛрдбрд╡рд░ рдареЗрд╡рд╛рдпрдЪрд╛ рд╣реЗ рдард░рд╡рдгреНрдпрд╛рд╕рд╛рдареА рдЬрдмрд╛рдмрджрд╛рд░ рдЖрд╣реЗ. рджреБрд╕-рдпрд╛ рд╢рдмреНрджрд╛рдд, рдХреНрдпреВрдмреЗ-рд╢реЗрдбреНрдпреВрд▓рд░рдЪреНрдпрд╛ рдХрд╛рд░реНрдпрд╛рдЪрд╛ рдкрд░рд┐рдгрд╛рдо рдореНрд╣рдгрдЬреЗ рдиреЛрдбрдЪреЗ рдирд╛рд╡, рдЬреЗ рд╢реЗрдбреНрдпреВрд▓рд┐рдВрдЧ рд╡рд┐рдирдВрддреАрд╕рд╛рдареА рдПрдкреАрдЖрдп рд╕рд░реНрд╡реНрд╣рд░рдХрдбреЗ рдкрд░рдд рдпреЗрддреЗ рдЖрдгрд┐ рддрд┐рдереЗрдЪ рддреНрдпрд╛рдЪреЗ рдХрд╛рдо рд╕рдВрдкрддреЗ.

рдкреНрд░рдердо, рдХреНрдпреВрдмреЗ-рд╢реЗрдбреНрдпреВрд▓рд░ рдиреЛрдбреНрд╕рдЪреА рдПрдХ рд╕реВрдЪреА рд╕рдВрдХрд▓рд┐рдд рдХрд░рддреЛ рдЬреНрдпрд╛рд╡рд░ рдкреЙрдб рд╢реЗрдбреНрдпреВрд▓ рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ рдкреНрд░реЗрдбрд┐рдХреЗрдЯреНрд╕ рдзреЛрд░рдгрд╛рдВрдиреБрд╕рд╛рд░. рдкреБрдвреЗ, рдпрд╛ рд╕реВрдЪреАрддреАрд▓ рдкреНрд░рддреНрдпреЗрдХ рдиреЛрдбрд▓рд╛ рдкреНрд░рд╛рдзрд╛рдиреНрдпрдХреНрд░рдо рдзреЛрд░рдгрд╛рдВрдиреБрд╕рд╛рд░ рдард░рд╛рд╡рд┐рдХ рдЧреБрдг рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛рдд. рдкрд░рд┐рдгрд╛рдореА, рдЬрд╛рд╕реНрддреАрдд рдЬрд╛рд╕реНрдд рдЧреБрдгрд╛рдВрд╕рд╣ рдиреЛрдб рдирд┐рд╡рдбрд▓рд╛ рдЬрд╛рддреЛ. рд╕рдорд╛рди рдХрдорд╛рд▓ рд╕реНрдХреЛрдЕрд░ рдЕрд╕рд▓реЗрд▓реЗ рдиреЛрдбреНрд╕ рдЕрд╕рд▓реНрдпрд╛рд╕, рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдПрдХ рдирд┐рд╡рдбрд▓рд╛ рдЬрд╛рддреЛ. рдЕрдВрджрд╛рдЬ (рдлрд┐рд▓реНрдЯрд░рд┐рдВрдЧ) рдЖрдгрд┐ рдкреНрд░рд╛рдзрд╛рдиреНрдпрдХреНрд░рдо (рд╕реНрдХреЛрдЕрд░рд┐рдВрдЧ) рдзреЛрд░рдгрд╛рдВрдЪреА рдпрд╛рджреА рдЖрдгрд┐ рд╡рд░реНрдгрди рдпрд╛рдордзреНрдпреЗ рдЖрдврд│реВ рд╢рдХрддреЗ рджрд╕реНрддрдРрд╡рдЬреАрдХрд░рдг.

рд╕рдорд╕реНрдпрд╛ рд╢рд░реАрд░рд╛рдЪреЗ рд╡рд░реНрдгрди

Nixys рдпреЗрдереЗ рдореЛрдареНрдпрд╛ рд╕рдВрдЦреНрдпреЗрдиреЗ рд╡рд┐рд╡рд┐рдз Kubernetes рдХреНрд▓рд╕реНрдЯрд░реНрд╕рдЪреА рджреЗрдЦрднрд╛рд▓ рдХреЗрд▓реА рдЬрд╛рдд рдЕрд╕реВрдирд╣реА, рдЖрдореНрд╣рд╛рд▓рд╛ рдкрд╣рд┐рд▓реНрдпрд╛рдВрджрд╛ рд╢реЗрдбреНрдпреВрд▓рд┐рдВрдЧ рдкреЙрдбреНрд╕рдЪреА рд╕рдорд╕реНрдпрд╛ рдЕрдЧрджреА рдЕрд▓реАрдХрдбреЗрдЪ рдЖрд▓реА, рдЬреЗрд╡реНрд╣рд╛ рдЖрдордЪреНрдпрд╛ рдкреНрд░рдХрд▓реНрдкрд╛рдВрдкреИрдХреА рдПрдХрд╛рд▓рд╛ рдореЛрдареНрдпрд╛ рдкреНрд░рдорд╛рдгрд╛рдд рдирд┐рдпрддрдХрд╛рд▓рд┐рдХ рдХрд╛рд░реНрдпреЗ (~100 CronJob рд╕рдВрд╕реНрдерд╛) рдЪрд╛рд▓рд╡рд╛рдпрдЪреА рд╣реЛрддреА. рд╕рдорд╕реНрдпреЗрдЪреЗ рд╡рд░реНрдгрди рд╢рдХреНрдп рддрд┐рддрдХреЗ рд╕реЛрдкреЗ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдЖрдореНрд╣реА рдПрдХ рдорд╛рдпрдХреНрд░реЛрд╕рд░реНрд╡реНрд╣рд┐рд╕рдЪреЗ рдЙрджрд╛рд╣рд░рдг рдШреЗрдК, рдЬреНрдпрд╛рдордзреНрдпреЗ CPU рд╡рд░ рдХрд╛рд╣реА рднрд╛рд░ рдирд┐рд░реНрдорд╛рдг рдХрд░реВрди рдорд┐рдирд┐рдЯрд╛рддреВрди рдПрдХрджрд╛ рдХреНрд░реЙрди рдХрд╛рд░реНрдп рд╕реБрд░реВ рдХреЗрд▓реЗ рдЬрд╛рддреЗ. рдХреНрд░реЙрди рдХрд╛рд░реНрдп рдЪрд╛рд▓рд╡рд┐рдгреНрдпрд╛рд╕рд╛рдареА, рдкреВрд░реНрдгрдкрдгреЗ рд╕рдорд╛рди рд╡реИрд╢рд┐рд╖реНрдЯреНрдпрд╛рдВрд╕рд╣ рддреАрди рдиреЛрдбреНрд╕ рд╡рд╛рдЯрдк рдХреЗрд▓реЗ рдЧреЗрд▓реЗ (рдкреНрд░рддреНрдпреЗрдХ рд╡рд░ 24 vCPU).

рддреНрдпрд╛рдЪ рд╡реЗрд│реА, рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛рдЪреА рдорд╛рддреНрд░рд╛ рд╕рддрдд рдмрджрд▓рдд рдЕрд╕рд▓реНрдпрд╛рдиреЗ рдХреНрд░реЛрдирдЬреЙрдм рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рд╣реЛрдгреНрдпрд╛рд╕рд╛рдареА рдХрд┐рддреА рд╡реЗрд│ рд▓рд╛рдЧреЗрд▓ рд╣реЗ рдЕрдЪреВрдХрдкрдгреЗ рд╕рд╛рдВрдЧрдгреЗ рдЕрд╢рдХреНрдп рдЖрд╣реЗ. рд╕рд░рд╛рд╕рд░реА, рдХреНрдпреВрдмреЗ-рд╢реЗрдбреНрдпреБрд▓рд░рдЪреНрдпрд╛ рд╕рд╛рдорд╛рдиреНрдп рдСрдкрд░реЗрд╢рди рджрд░рдореНрдпрд╛рди, рдкреНрд░рддреНрдпреЗрдХ рдиреЛрдб 3-4 рдЬреЙрдм рдЗрдВрд╕реНрдЯрдиреНрд╕ рдЪрд╛рд▓рд╡рддреЗ, рдЬреЗ рдкреНрд░рддреНрдпреЗрдХ рдиреЛрдбрдЪреНрдпрд╛ CPU рд╡рд░ ~20-30% рд▓реЛрдб рддрдпрд╛рд░ рдХрд░рддрд╛рдд:

рд╢реЗрдбреНрдпреБрд▓рд┐рдВрдЧ рдирд┐рдпрдорд╛рдВрдЪреНрдпрд╛ рд╕рд╛рдиреБрдХреВрд▓ рд╕рдВрдЪрд╛рд╕рд╣ рдЕрддрд┐рд░рд┐рдХреНрдд рдХреНрдпреВрдмреЗ-рд╢реЗрдбреНрдпреВрд▓рд░ рддрдпрд╛рд░ рдХрд░рдгреЗ

рд╕рдорд╕реНрдпрд╛ рд╣реА рдЖрд╣реЗ рдХреА рдХрдзреАрдХрдзреА рдХреНрд░реЙрди рдЯрд╛рд╕реНрдХ рдкреЙрдбреНрд╕ рддреАрди рдиреЛрдбреНрд╕рдкреИрдХреА рдПрдХрд╛рд╡рд░ рд╢реЗрдбреНрдпреВрд▓ рдХрд░рдгреЗ рдерд╛рдВрдмрд╡рддрд╛рдд. рдореНрд╣рдгрдЬреЗрдЪ, рдХрд╛рд╣реА рд╡реЗрд│реЗрд╕, рдПрдХрд╛ рдиреЛрдбреНрд╕рд╕рд╛рдареА рдПрдХрд╣реА рдкреЙрдб рдирд┐рдпреЛрдЬрд┐рдд рдХреЗрд▓реЗрд▓рд╛ рдирд╡реНрд╣рддрд╛, рддрд░ рдЗрддрд░ рджреЛрди рдиреЛрдбреНрд╕рд╡рд░ рдЯрд╛рд╕реНрдХрдЪреНрдпрд╛ 6-8 рдкреНрд░рддреА рдЪрд╛рд▓реВ рд╣реЛрддреНрдпрд╛, рдЬреНрдпрд╛рдореБрд│реЗ CPU рд▓реЛрдбрдЪреНрдпрд╛ ~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

рдЬреНрдпрд╛рд╡рд░реВрди рдЕрд╕реЗ рджрд┐рд╕реВрди рдпреЗрддреЗ рдХреА рдиреЛрдбреНрд╕рдкреИрдХреА рдПрдХрд╛рдиреЗ рдЗрддрд░рд╛рдВрдкреЗрдХреНрд╖рд╛ рдХрдореА рдЕрдВрддрд┐рдо рдЧреБрдг рдорд┐рд│рд╡рд▓реЗ, рдЖрдгрд┐ рдореНрд╣рдгреВрди рдирд┐рдпреЛрдЬрди рдлрдХреНрдд рджреЛрди рдиреЛрдбреНрд╕рд╕рд╛рдареА рдХреЗрд▓реЗ рдЧреЗрд▓реЗ рдЬреНрдпрд╛рдВрдиреА рдЬрд╛рд╕реНрддреАрдд рдЬрд╛рд╕реНрдд рдЧреБрдг рдорд┐рд│рд╡рд┐рд▓реЗ. рдЕрд╢рд╛ рдкреНрд░рдХрд╛рд░реЗ, рдЖрдореНрд╣рд╛рд▓рд╛ рдирд┐рд╢реНрдЪрд┐рддрдкрдгреЗ рдЦрд╛рддреНрд░реА рдкрдЯрд▓реА рдХреА рд╕рдорд╕реНрдпрд╛ рд╢реЗрдбреНрдпрд╛рдВрдЪреНрдпрд╛ рд╢реЗрдбреНрдпреВрд▓рд┐рдВрдЧрдордзреНрдпреЗ рддрдВрддреЛрддрдВрдд рдЖрд╣реЗ.

рд╕рдорд╕реНрдпреЗрдЪреЗ рдирд┐рд░рд╛рдХрд░рдг рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдкреБрдвреАрд▓ рдЕрд▓реНрдЧреЛрд░рд┐рджрдо рдЖрдордЪреНрдпрд╛рд╕рд╛рдареА рд╕реНрдкрд╖реНрдЯ рд╣реЛрддреЗ - рд▓реЙрдЧрдЪреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рд╛, рдиреЛрдбрд▓рд╛ рдХреЛрдгрддреНрдпрд╛ рдкреНрд░рд╛рдзрд╛рдиреНрдпрд╛рдиреЗ рдЧреБрдг рдорд┐рд│рд╛рд▓реЗ рдирд╛рд╣реАрдд рд╣реЗ рд╕рдордЬреВрди рдШреНрдпрд╛ рдЖрдгрд┐ рдЖрд╡рд╢реНрдпрдХ рдЕрд╕рд▓реНрдпрд╛рд╕, рдбреАрдлреЙрд▓реНрдЯ рдХреНрдпреВрдм-рд╢реЗрдбреНрдпреВрд▓рд░рдЪреА рдзреЛрд░рдгреЗ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░рд╛. рддрдерд╛рдкрд┐, рдпреЗрдереЗ рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рджреЛрди рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдЕрдбрдЪрдгреАрдВрдЪрд╛ рд╕рд╛рдордирд╛ рдХрд░рд╛рд╡рд╛ рд▓рд╛рдЧрддреЛ:

  1. рдХрдорд╛рд▓ рд▓реЙрдЧрд┐рдВрдЧ рд╕реНрддрд░рд╛рд╡рд░ (10), рдХреЗрд╡рд│ рдХрд╛рд╣реА рдкреНрд░рд╛рдзрд╛рдиреНрдпрд╛рдВрд╕рд╛рдареА рдорд┐рд│рд╡рд▓реЗрд▓реЗ рдЧреБрдг рдкреНрд░рддрд┐рдмрд┐рдВрдмрд┐рдд рд╣реЛрддрд╛рдд. рдиреЛрдВрджреАрдВрдЪреНрдпрд╛ рд╡рд░реАрд▓ рдЙрддрд╛рд░реНтАНрдпрд╛рдд, рддреБрдореНрд╣реА рдкрд╛рд╣реВ рд╢рдХрддрд╛ рдХреА, рд▓реЙрдЧрдордзреНрдпреЗ рдкрд░рд╛рд╡рд░реНрддрд┐рдд рд╣реЛрдгрд╛рд▒реНрдпрд╛ рд╕рд░реНрд╡ рдкреНрд░рд╛рдзрд╛рдиреНрдпрдХреНрд░рдорд╛рдВрд╕рд╛рдареА, рдиреЛрдбреНрд╕ рд╕рд╛рдорд╛рдиреНрдп рдЖрдгрд┐ рд╕рдорд╕реНрдпрд╛ рд╢реЗрдбреНрдпреВрд▓рд┐рдВрдЧрдордзреНрдпреЗ рд╕рдорд╛рди рдЧреБрдг рдорд┐рд│рд╡рддрд╛рдд, рдкрд░рдВрддреБ рд╕рдорд╕реНрдпрд╛ рдирд┐рдпреЛрдЬрдирд╛рдЪреНрдпрд╛ рдмрд╛рдмрддреАрдд рдЕрдВрддрд┐рдо рдкрд░рд┐рдгрд╛рдо рднрд┐рдиреНрди рдЕрд╕рддреЛ. рдЕрд╢рд╛ рдкреНрд░рдХрд╛рд░реЗ, рдЖрдореНрд╣реА рдЕрд╕рд╛ рдирд┐рд╖реНрдХрд░реНрд╖ рдХрд╛рдвреВ рд╢рдХрддреЛ рдХреА рдХрд╛рд╣реА рдкреНрд░рд╛рдзрд╛рдиреНрдпрдХреНрд░рдорд╛рдВрд╕рд╛рдареА, рд╕реНрдХреЛрдЕрд░рд┐рдВрдЧ "рдкрдбрджреНрдпрд╛рдорд╛рдЧреАрд▓" рд╣реЛрддреЗ рдЖрдгрд┐ рдХреЛрдгрддреНрдпрд╛ рдкреНрд░рд╛рдзрд╛рдиреНрдпрд╛рд╕рд╛рдареА рдиреЛрдбрд▓рд╛ рдЧреБрдг рдорд┐рд│рд╛рд▓реЗ рдирд╛рд╣реАрдд рд╣реЗ рд╕рдордЬрдгреНрдпрд╛рдЪрд╛ рдХреЛрдгрддрд╛рд╣реА рдорд╛рд░реНрдЧ рдЖрдордЪреНрдпрд╛рдХрдбреЗ рдирд╛рд╣реА. рдЖрдореНрд╣реА рдпрд╛ рд╕рдорд╕реНрдпреЗрдЪреЗ рддрдкрд╢реАрд▓рд╡рд╛рд░ рд╡рд░реНрдгрди рдХреЗрд▓реЗ рдЖрд╣реЗ рд╕рдорд╕реНрдпрд╛ Github рд╡рд░ Kubernetes рднрд╛рдВрдбрд╛рд░. рд▓реЗрдЦрдирд╛рдЪреНрдпрд╛ рд╡реЗрд│реА, рд╡рд┐рдХрд╛рд╕рдХрд╛рдВрдХрдбреВрди рдкреНрд░рддрд┐рд╕рд╛рдж рдкреНрд░рд╛рдкреНрдд рдЭрд╛рд▓рд╛ рдХреА рд▓реЙрдЧрд┐рдВрдЧ рд╕рдорд░реНрдерди Kubernetes v1.15,1.16, 1.17 рдЖрдгрд┐ XNUMX рдЕрджреНрдпрддрдирд╛рдВрдордзреНрдпреЗ рдЬреЛрдбрд▓реЗ рдЬрд╛рдИрд▓.
  2. рдХреБрдмреЗ-рд╢реЗрдбреНрдпреБрд▓рд░ рд╕рдзреНрдпрд╛ рдХреЛрдгрддреНрдпрд╛ рдкреЙрд▓рд┐рд╕реАрдВрдЪреНрдпрд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдВрдЪрд╛рд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рдд рдЖрд╣реЗ рд╣реЗ рд╕рдордЬрдгреНрдпрд╛рдЪрд╛ рдХреЛрдгрддрд╛рд╣реА рд╕реЛрдкрд╛ рдорд╛рд░реНрдЧ рдирд╛рд╣реА. рд╣реЛрдп, рдордзреНрдпреЗ рджрд╕реНрддрдРрд╡рдЬреАрдХрд░рдг рд╣реА рдпрд╛рджреА рд╕реВрдЪреАрдмрджреНрдз рдЖрд╣реЗ, рдкрд░рдВрддреБ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рд╛рдзрд╛рдиреНрдп рдзреЛрд░рдгрд╛рдВрдирд╛ рдХреЛрдгрддреЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рдЬрди рдирд┐рдпреБрдХреНрдд рдХреЗрд▓реЗ рдЖрд╣реЗ рдпрд╛рдмрджреНрджрд▓ рдорд╛рд╣рд┐рддреА рддреНрдпрд╛рдд рдирд╛рд╣реА. рддреБрдореНрд╣реА рд╡рдЬрди рдкрд╛рд╣реВ рд╢рдХрддрд╛ рдХрд┐рдВрд╡рд╛ рдбреАрдлреЙрд▓реНрдЯ рдХреНрдпреБрдм-рд╢реЗрдбреНрдпреБрд▓рд░рдЪреА рдзреЛрд░рдгреЗ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реВ рд╢рдХрддрд╛ рд╕реНрд░реЛрдд рдХреЛрдб.

рд╣реЗ рд▓рдХреНрд╖рд╛рдд рдШреЗрдгреНрдпрд╛рд╕рд╛рд░рдЦреЗ рдЖрд╣реЗ рдХреА рдПрдХрджрд╛ рдЖрдореНрд╣реА рд░реЗрдХреЙрд░реНрдб рдХрд░реВ рд╢рдХрд▓реЛ рдХреА рдЗрдореЗрдЬрд▓реЛрдХреЕрд▓рд┐рдЯреА рдкреНрд░рд╛рдпреЛрд░рд┐рдЯреА рдкреЙрд▓рд┐рд╕реАрдиреБрд╕рд╛рд░ рдиреЛрдбрд▓рд╛ рдкреЙрдЗрдВрдЯ рдорд┐рд│рд╛рд▓реЗ рдирд╛рд╣реАрдд, рдЬреЗ рдЕтАНреЕрдкреНрд▓рд┐рдХреЗрд╢рди рдЪрд╛рд▓рд╡рдгреНрдпрд╛рд╕рд╛рдареА рдЖрд╡рд╢реНрдпрдХ рдЕрд╕рд▓реЗрд▓реА рдЗрдореЗрдЬ рдЖрдзреАрдкрд╛рд╕реВрди рдЕрд╕рд▓реНрдпрд╛рд╕ рдиреЛрдбрд▓рд╛ рдкреЙрдЗрдВрдЯ рджреЗрддреЗ. рдореНрд╣рдгрдЬреЗрдЪ, рдЕреЕрдкреНрд▓рд┐рдХреЗрд╢рдирдЪреА рдирд╡реАрди рдЖрд╡реГрддреНрддреА рдЖрдгрд▓реА рдЧреЗрд▓реА рддреНрдпрд╛ рд╡реЗрд│реА, рдХреНрд░реЙрди рдЯрд╛рд╕реНрдХ рджреЛрди рдиреЛрдбреНрд╕рд╡рд░ рдЪрд╛рд▓рдгреНрдпрд╛рд╕ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрд┐рдд рдХреЗрд▓реЗ рдЧреЗрд▓реЗ, рдбреЙрдХрд░ рд░реЗрдЬрд┐рд╕реНрдЯреНрд░реАрдордзреВрди рддреНрдпрд╛рдВрдЪреНрдпрд╛рд╕рд╛рдареА рдПрдХ рдирд╡реАрди рдкреНрд░рддрд┐рдорд╛ рдбрд╛рдЙрдирд▓реЛрдб рдХреЗрд▓реА рдЧреЗрд▓реА рдЖрдгрд┐ рдЕрд╢рд╛ рдкреНрд░рдХрд╛рд░реЗ рджреЛрди рдиреЛрдбреНрд╕рд▓рд╛ рддрд┐рд╕рд▒реНрдпрд╛рдЪреНрдпрд╛ рддреБрд▓рдиреЗрдд рдЙрдЪреНрдЪ рдЕрдВрддрд┐рдо рд╕реНрдХреЛрдЕрд░ рдкреНрд░рд╛рдкреНрдд рдЭрд╛рд▓рд╛. .

рдореА рд╡рд░ рд▓рд┐рд╣рд┐рд▓реНрдпрд╛рдкреНрд░рдорд╛рдгреЗ, рд▓реЙрдЧрдордзреНрдпреЗ рдЖрдореНрд╣рд╛рд▓рд╛ ImageLocalityPriority рдзреЛрд░рдгрд╛рдЪреНрдпрд╛ рдореВрд▓реНрдпрдорд╛рдкрдирд╛рдмрджреНрджрд▓ рдорд╛рд╣рд┐рддреА рджрд┐рд╕рдд рдирд╛рд╣реА, рддреНрдпрд╛рдореБрд│реЗ рдЖрдордЪреА рдзрд╛рд░рдгрд╛ рддрдкрд╛рд╕рдгреНрдпрд╛рд╕рд╛рдареА, рдЖрдореНрд╣реА рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рдЪреНрдпрд╛ рдирд╡реАрди рдЖрд╡реГрддреНрддреАрд╕рд╣ рдкреНрд░рддрд┐рдорд╛ рддрд┐рд╕рд▒реНрдпрд╛ рдиреЛрдбрд╡рд░ рдЯрд╛рдХрд▓реА, рддреНрдпрд╛рдирдВрддрд░ рд╢реЗрдбреНрдпреВрд▓рд┐рдВрдЧ рдпреЛрдЧреНрдпрд░рд┐рддреНрдпрд╛ рдХрд╛рд░реНрдп рдХрд░рддреЗ. . ImageLocalityPriority рдзреЛрд░рдгрд╛рдореБрд│реЗ рд╢реЗрдбреНрдпреБрд▓рд┐рдВрдЧрдЪреА рд╕рдорд╕реНрдпрд╛ рдЕрдЧрджреА рдХреНрд╡рдЪрд┐рддрдЪ рдЖрдврд│реВрди рдЖрд▓реА рд╣реЛрддреА; рдЕрдзрд┐рдХ рд╡реЗрд│рд╛ рддреА рджреБрд╕рд░реНтАНрдпрд╛ рдХрд╢рд╛рд╢реА рддрд░реА рд╕рдВрдмрдВрдзрд┐рдд рд╣реЛрддреА. рдбреАрдлреЙрд▓реНрдЯ рдХреНрдпреВрдм-рд╢реЗрдбреНрдпреБрд▓рд░рдЪреНрдпрд╛ рдкреНрд░рд╛рдзрд╛рдиреНрдпрдХреНрд░рдорд╛рдВрдЪреНрдпрд╛ рдпрд╛рджреАрддреАрд▓ рдкреНрд░рддреНрдпреЗрдХ рдкреЙрд▓рд┐рд╕реА рдЖрдореНрд╣реА рдкреВрд░реНрдгрдкрдгреЗ рдбреАрдмрдЧ рдХрд░реВ рд╢рдХрд▓реЛ рдирд╛рд╣реА рдпрд╛ рд╡рд╕реНрддреБрд╕реНрдерд┐рддреАрдореБрд│реЗ, рдЖрдореНрд╣рд╛рд▓рд╛ рдкреЙрдб рд╢реЗрдбреНрдпреБрд▓рд┐рдВрдЧ рдкреЙрд▓рд┐рд╕реАрдВрдЪреНрдпрд╛ рд▓рд╡рдЪрд┐рдХ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдирд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА.

рд╕рдорд╕реНрдпреЗрдЪреА рдирд┐рд░реНрдорд┐рддреА

рдЖрдореНрд╣рд╛рд▓рд╛ рд╕рдорд╕реНрдпреЗрдЪреЗ рдирд┐рд░рд╛рдХрд░рдг рд╢рдХреНрдп рддрд┐рддрдХреЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЕрд╕рд╛рд╡реЗ рдЕрд╕реЗ рд╡рд╛рдЯрдд рд╣реЛрддреЗ, рдореНрд╣рдгрдЬреЗ, рдХреБрдмрд░реНрдиреЗрдЯреНрд╕рдЪреЗ рдореБрдЦреНрдп рдШрдЯрдХ (рдпреЗрдереЗ рдЖрдордЪрд╛ рдЕрд░реНрде рдбреАрдлреЙрд▓реНрдЯ рдХреНрдпреБрдм-рд╢реЗрдбреНрдпреВрд▓рд░) рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рдЕрд╕рд╛рд╡рд╛. рдЖрдореНрд╣рд╛рд▓рд╛ рд╕рдорд╕реНрдпрд╛ рдПрдХрд╛ рдард┐рдХрд╛рдгреА рд╕реЛрдбрд╡рд╛рдпрдЪреА рдирд╡реНрд╣рддреА рдЖрдгрд┐ рддреА рджреБрд╕рд▒реНрдпрд╛ рдард┐рдХрд╛рдгреА рдирд┐рд░реНрдорд╛рдг рдХрд░рд╛рдпрдЪреА рд╣реЛрддреА. рдЕрд╢рд╛ рдкреНрд░рдХрд╛рд░реЗ, рдЖрдореНрд╣реА рд╕рдорд╕реНрдпреЗрдЪреЗ рдирд┐рд░рд╛рдХрд░рдг рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рджреЛрди рдкрд░реНрдпрд╛рдпрд╛рдВрд╡рд░ рдЖрд▓реЛ, рдЬреЗ рд▓реЗрдЦрд╛рдЪреНрдпрд╛ рдкреНрд░рд╕реНрддрд╛рд╡рдиреЗрдд рдШреЛрд╖рд┐рдд рдХреЗрд▓реЗ рдЧреЗрд▓реЗ рд╣реЛрддреЗ - рдЕрддрд┐рд░рд┐рдХреНрдд рд╢реЗрдбреНрдпреВрд▓рд░ рддрдпрд╛рд░ рдХрд░рдгреЗ рдХрд┐рдВрд╡рд╛ рд╕реНрд╡рддрдГрдЪреЗ рд▓реЗрдЦрди. рдХреНрд░реЙрди рдЯрд╛рд╕реНрдХ рд╢реЗрдбреНрдпреВрд▓ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдореБрдЦреНрдп рдЖрд╡рд╢реНрдпрдХрддрд╛ рдореНрд╣рдгрдЬреЗ рд▓реЛрдб рддреАрди рдиреЛрдбреНрд╕рдордзреНрдпреЗ рд╕рдорд╛рди рд░реАрддреАрдиреЗ рд╡рд┐рддрд░рд┐рдд рдХрд░рдгреЗ. рд╣реА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╡рд┐рджреНрдпрдорд╛рди рдХреНрдпреВрдмреЗ-рд╢реЗрдбреНрдпреВрд▓рд░ рдзреЛрд░рдгрд╛рдВрджреНрд╡рд╛рд░реЗ рдкреВрд░реНрдг рдХреЗрд▓реА рдЬрд╛рдК рд╢рдХрддреЗ, рдореНрд╣рдгреВрди рдЖрдордЪреНрдпрд╛ рд╕рдорд╕реНрдпреЗрдЪреЗ рдирд┐рд░рд╛рдХрд░рдг рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рд╕реНрд╡рддрдГрдЪреЗ рд╢реЗрдбреНрдпреВрд▓рд░ рд▓рд┐рд╣рд┐рдгреНрдпрд╛рдд рдХрд╛рд╣реА рдЕрд░реНрде рдирд╛рд╣реА.

рдЕрддрд┐рд░рд┐рдХреНрдд рдХреНрдпреВрдм-рд╢реЗрдбреНрдпреБрд▓рд░ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдгрд┐ рддреИрдирд╛рдд рдХрд░рдгреНрдпрд╛рдЪреНрдпрд╛ рд╕реВрдЪрдирд╛рдВрдордзреНрдпреЗ рд╡рд░реНрдгрди рдХреЗрд▓реЗ рдЖрд╣реЗ рджрд╕реНрддрдРрд╡рдЬреАрдХрд░рдг. рддрдерд╛рдкрд┐, рдЖрдореНрд╣рд╛рд▓рд╛ рдЕрд╕реЗ рд╡рд╛рдЯрд▓реЗ рдХреА рдХреНрдпреВрдмреЗ-рд╢реЗрдбреНрдпреВрд▓рд░ рд╕рд╛рд░рдЦреНрдпрд╛ рдЧрдВрднреАрд░ рд╕реЗрд╡реЗрдЪреНрдпрд╛ рдСрдкрд░реЗрд╢рдирдордзреНрдпреЗ рджреЛрд╖ рд╕рд╣рд┐рд╖реНрдгреБрддрд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЙрдкрдпреЛрдЬрди рд╕рдВрд╕реНрдерд╛ рдкреБрд░реЗрд╢реА рдирд╛рд╣реА, рдореНрд╣рдгреВрди рдЖрдореНрд╣реА рдПрдХ рдирд╡реАрди рдХреНрдпреВрдмреЗ-рд╢реЗрдбреНрдпреВрд▓рд░ рд╕реНрдерд┐рд░ рдкреЙрдб рдореНрд╣рдгреВрди рддреИрдирд╛рдд рдХрд░рдгреНрдпрд╛рдЪрд╛ рдирд┐рд░реНрдгрдп рдШреЗрддрд▓рд╛, рдЬреНрдпрд╛рдЪреЗ рдереЗрдЯ рдирд┐рд░реАрдХреНрд╖рдг рдХреЗрд▓реЗ рдЬрд╛рдИрд▓. рдХреБрдмреЗрд▓реЗрдЯ рджреНрд╡рд╛рд░реЗ. рдЕрд╢рд╛ рдкреНрд░рдХрд╛рд░реЗ, рдирд╡реАрди рдХреНрдпреВрдмреЗ-рд╢реЗрдбреНрдпреБрд▓рд░рд╕рд╛рдареА рдЖрдордЪреНрдпрд╛рдХрдбреЗ рдЦрд╛рд▓реАрд▓ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЖрд╣реЗрдд:

  1. рд╕реЗрд╡рд╛ рд╕рд░реНрд╡ рдХреНрд▓рд╕реНрдЯрд░ рдорд╛рд╕реНрдЯрд░реНрд╕рд╡рд░ рд╕реНрдерд┐рд░ рдкреЙрдб рдореНрд╣рдгреВрди рддреИрдирд╛рдд рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ
  2. рдХреНрдпреВрдмреЗ-рд╢реЗрдбреНрдпреВрд▓рд░рд╕рд╣ рд╕рдХреНрд░рд┐рдп рдкреЙрдб рдЕрдиреБрдкрд▓рдмреНрдз рдЕрд╕рд▓реНрдпрд╛рд╕ рдлреЙрд▓реНрдЯ рдЯреЙрд▓рд░рдиреНрд╕ рдкреНрд░рджрд╛рди рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ
  3. рдирд┐рдпреЛрдЬрди рдХрд░рддрд╛рдирд╛ рдореБрдЦреНрдп рдкреНрд░рд╛рдзрд╛рдиреНрдп рдиреЛрдбрд╡рд░ рдЙрдкрд▓рдмреНрдз рд╕рдВрд╕рд╛рдзрдирд╛рдВрдЪреА рд╕рдВрдЦреНрдпрд╛ рдЕрд╕рд╛рд╡реА (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

рдореБрдЦреНрдп рдмрджрд▓рд╛рдВрдмрджреНрджрд▓ рдереЛрдбрдХреНрдпрд╛рдд:

  1. рдкреЙрдб рдЖрдгрд┐ рдХрдВрдЯреЗрдирд░рдЪреЗ рдирд╛рд╡ kube-scheduler-cron рдЕрд╕реЗ рдмрджрд▓рд▓реЗ
  2. рдкрд░реНрдпрд╛рдп рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреЗрд▓реНрдпрд╛рдиреБрд╕рд╛рд░ рдкреЛрд░реНрдЯ 10151 рдЖрдгрд┐ 10159 рдЪрд╛ рд╡рд╛рдкрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЗрд▓рд╛ hostNetwork: true рдЖрдгрд┐ рдЖрдореНрд╣реА рдбреАрдлреЙрд▓реНрдЯ рдХреНрдпреВрдм-рд╢реЗрдбреНрдпреБрд▓рд░ (10251 рдЖрдгрд┐ 10259) рд╕рд╛рд░рдЦреЗ рдкреЛрд░реНрдЯ рд╡рд╛рдкрд░реВ рд╢рдХрдд рдирд╛рд╣реА
  3. --config рдкреЕрд░рд╛рдореАрдЯрд░ рд╡рд╛рдкрд░реВрди, рдЖрдореНрд╣реА рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдлрд╛рдЗрд▓ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЗрд▓реА рдЖрд╣реЗ рдЬреНрдпрд╛рд╕рд╣ рд╕реЗрд╡рд╛ рд╕реБрд░реВ рдХрд░рд╛рд╡реА
  4. рд╣реЛрд╕реНрдЯрдХрдбреВрди рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдлрд╛рдЗрд▓ (scheduler-custom.conf) рдЖрдгрд┐ рд╢реЗрдбреНрдпреВрд▓рд┐рдВрдЧ рдкреЙрд▓рд┐рд╕реА рдлрд╛рдЗрд▓ (scheduler-custom-policy-config.json) рдЪреЗ рдХреЙрдиреНрдлрд┐рдЧрд░ рдХреЗрд▓реЗрд▓реЗ рдорд╛рдЙрдВрдЯрд┐рдВрдЧ

рдЖрдордЪреНрдпрд╛ kube-рд╢реЗрдбреНрдпреБрд▓рд░рд▓рд╛ рдбреАрдлреЙрд▓реНрдЯ рдкреНрд░рдорд╛рдгреЗрдЪ рдЕрдзрд┐рдХрд╛рд░рд╛рдВрдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЕрд╕реЗрд▓ рд╣реЗ рд╡рд┐рд╕рд░реВ рдирдХрд╛. рддреНрдпрд╛рдЪреА рдХреНрд▓рд╕реНрдЯрд░ рднреВрдорд┐рдХрд╛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рд╛:

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"

рдореБрдЦреНрдп рдмрджрд▓рд╛рдВрдмрджреНрджрд▓ рдереЛрдбрдХреНрдпрд╛рдд:

  1. рдЖрдореНрд╣реА рдЖрдордЪреНрдпрд╛ kube-scheduler-cron рд╕реЗрд╡реЗрдЪреНрдпрд╛ рдирд╛рд╡рд╛рд╡рд░ рд╢реЗрдбреНрдпреВрд▓рд░рдирд╛рд╡ рд╕реЗрдЯ рдХрд░рддреЛ.
  2. рдкреЕрд░рд╛рдореАрдЯрд░рдордзреНрдпреЗ lockObjectName рддреБрдореНрд╣рд╛рд▓рд╛ рдЖрдордЪреНрдпрд╛ рд╕реЗрд╡реЗрдЪреЗ рдирд╛рд╡ рджреЗрдЦреАрд▓ рд╕реЗрдЯ рдХрд░рд╛рд╡реЗ рд▓рд╛рдЧреЗрд▓ рдЖрдгрд┐ рдкреЕрд░рд╛рдореАрдЯрд░ рдЕрд╕рд▓реНрдпрд╛рдЪреА рдЦрд╛рддреНрд░реА рдХрд░рд╛ leaderElect рд╕рддреНрдп рд╡рд░ рд╕реЗрдЯ рдХрд░рд╛ (рдЬрд░ рддреБрдордЪреНрдпрд╛рдХрдбреЗ рдПрдХ рдорд╛рд╕реНрдЯрд░ рдиреЛрдб рдЕрд╕реЗрд▓, рддрд░ рддреБрдореНрд╣реА рддреЗ рдЕрд╕рддреНрдп рд╡рд░ рд╕реЗрдЯ рдХрд░реВ рд╢рдХрддрд╛).
  3. рдкреЕрд░рд╛рдореАрдЯрд░рдордзреНрдпреЗ рд╢реЗрдбреНрдпреВрд▓рд┐рдВрдЧ рдзреЛрд░рдгрд╛рдВрдЪреНрдпрд╛ рд╡рд░реНрдгрдирд╛рд╕рд╣ рдлрд╛рдЗрд▓рдЪрд╛ рдорд╛рд░реНрдЧ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЗрд▓рд╛ algorithmSource.

рджреБрд╕рд▒реНрдпрд╛ рдмрд┐рдВрджреВрдХрдбреЗ рдмрд╛рд░рдХрд╛рдИрдиреЗ рд▓рдХреНрд╖ рджреЗрдгреЗ рдпреЛрдЧреНрдп рдЖрд╣реЗ, рдЬрд┐рдереЗ рдЖрдореНрд╣реА рдХреА рд╕рд╛рдареА рдкреЕрд░рд╛рдореАрдЯрд░реНрд╕ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рддреЛ leaderElection. рджреЛрд╖ рд╕рд╣рд┐рд╖реНрдгреБрддрд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдЖрдореНрд╣реА рд╕рдХреНрд╖рдо рдХреЗрд▓реЗ рдЖрд╣реЗ (leaderElect) рдЖрдордЪреНрдпрд╛ рдХреНрдпреВрдмреЗ-рд╢реЗрдбреНрдпреБрд▓рд░рдЪреНрдпрд╛ рдкреЙрдбреНрд╕рдордзреНрдпреЗ рдиреЗрддрд╛ (рдорд╛рд╕реНрдЯрд░) рдирд┐рд╡рдбрдгреНрдпрд╛рдЪреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рддреНрдпрд╛рдВрдЪреНрдпрд╛рд╕рд╛рдареА рдПрдХрд▓ рдПрдВрдбрдкреЙрдЗрдВрдЯ рд╡рд╛рдкрд░реВрди (resourceLock) рдирд╛рд╡рд╛рдЪреЗ kube-scheduler-cron (lockObjectName) рдХреБрдмреЗ-рд╕рд┐рд╕реНрдЯрдо рдиреЗрдорд╕реНрдкреЗрд╕рдордзреНрдпреЗ (lockObjectNamespace). рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ рдореБрдЦреНрдп рдШрдЯрдХрд╛рдВрдЪреА рдЙрдЪреНрдЪ рдЙрдкрд▓рдмреНрдзрддрд╛ рдХрд╢реА рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддреЗ (рдХреНрдпреБрдмреЗ-рд╢реЗрдбреНрдпреВрд▓рд░рд╕рд╣) рдордзреНрдпреЗ рдЖрдврд│реВ рд╢рдХрддреЗ рд▓реЗрдЦ.

  • рд╢реЗрдбреНрдпреБрд▓рд┐рдВрдЧ рдкреЙрд▓рд┐рд╕реА рдлрд╛рдЗрд▓ (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-рд╢реЗрдбреНрдпреВрд▓рд░ рдкреНрд░рдердо рдиреЛрдбреНрд╕рдЪреА рд╕реВрдЪреА рд╕рдВрдХрд▓рд┐рдд рдХрд░рддреЛ рдЬреНрдпрд╛рдд рдкреЙрдб рд╢реЗрдбреНрдпреВрд▓ рдХреЗрд▓рд╛ рдЬрд╛рдК рд╢рдХрддреЛ рдЬрдирд░рд▓ рдкреНрд░реЗрдбрд┐рдХреЗрдЯреНрд╕ рдзреЛрд░рдгрд╛рдиреБрд╕рд╛рд░ (рдЬреНрдпрд╛рдд PodFitsResources, PodFitsHostPorts, HostName рдЖрдгрд┐ MatchNodeSelector рдзреЛрд░рдгрд╛рдВрдЪрд╛ рд╕рдВрдЪ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЖрд╣реЗ). рдЖрдгрд┐ рдирдВрддрд░ рдкреНрд░рддреНрдпреЗрдХ рдиреЛрдбрдЪреЗ рдореВрд▓реНрдпрдорд╛рдкрди рдкреНрд░рд╛рдзрд╛рдиреНрдпрдХреНрд░рдорд╛рдВрдЪреНрдпрд╛ рдзреЛрд░рдгрд╛рдВрдЪреНрдпрд╛ рд╕рдВрдЪрд╛рдиреБрд╕рд╛рд░ рдХреЗрд▓реЗ рдЬрд╛рддреЗ. рдЖрдордЪреНрдпрд╛ рдХрд╛рд░реНрдпрд╛рдЪреНрдпрд╛ рдЕрдЯреАрдВрдЪреА рдкреВрд░реНрддрддрд╛ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдЖрдореНрд╣реА рдЕрд╕рд╛ рд╡рд┐рдЪрд╛рд░ рдХреЗрд▓рд╛ рдХреА рдзреЛрд░рдгрд╛рдВрдЪрд╛ рд╕рдВрдЪ рд╣рд╛ рд╕рд░реНрд╡реЛрддреНрддрдо рдЙрдкрд╛рдп рдЕрд╕реЗрд▓. рдореА рддреБрдореНрд╣рд╛рд▓рд╛ рдЖрдард╡рдг рдХрд░реВрди рджреЗрддреЛ рдХреА рддреНрдпрд╛рдВрдЪреНрдпрд╛ рддрдкрд╢реАрд▓рд╡рд╛рд░ рд╡рд░реНрдгрдирд╛рдВрд╕рд╣ рдзреЛрд░рдгрд╛рдВрдЪрд╛ рд╕рдВрдЪ рдЙрдкрд▓рдмреНрдз рдЖрд╣реЗ рджрд╕реНрддрдРрд╡рдЬреАрдХрд░рдг. рддреБрдордЪреЗ рдХрд╛рд░реНрдп рдкреВрд░реНрдг рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рддреБрдореНрд╣реА рдлрдХреНрдд рд╡рд╛рдкрд░рд▓реЗрд▓реНрдпрд╛ рдзреЛрд░рдгрд╛рдВрдЪрд╛ рд╕рдВрдЪ рдмрджрд▓реВ рд╢рдХрддрд╛ рдЖрдгрд┐ рддреНрдпрд╛рдВрдирд╛ рдпреЛрдЧреНрдп рд╡рдЬрди рдирд┐рдпреБрдХреНрдд рдХрд░реВ рд╢рдХрддрд╛.

рдЪрд▓рд╛ рдирд╡реАрди kube-scheduler рдЪреНрдпрд╛ рдореЕрдирд┐рдлреЗрд╕реНрдЯрд▓рд╛ рдХреЙрд▓ рдХрд░реВрдпрд╛, рдЬреЛ рдЖрдкрдг рдзрдбреНрдпрд╛рдЪреНрдпрд╛ рд╕реБрд░реБрд╡рд╛рддреАрд▓рд╛ рддрдпрд╛рд░ рдХреЗрд▓рд╛ рдЖрд╣реЗ, kube-scheduler-custom.yaml рдЖрдгрд┐ рддреНрдпрд╛рд▓рд╛ рдЦрд╛рд▓реАрд▓ рдкрде /etc/kubernetes/manifests рдордзреНрдпреЗ рддреАрди рдорд╛рд╕реНрдЯрд░ рдиреЛрдбреНрд╕рд╡рд░ рдареЗрд╡рд╛. рд╕рд░реНрд╡рдХрд╛рд╣реА рдпреЛрдЧреНрдпрд░рд┐рддреНрдпрд╛ рдХреЗрд▓реЗ рдЕрд╕рд▓реНрдпрд╛рд╕, рдХреБрдмреЗрд▓реЗрдЯ рдкреНрд░рддреНрдпреЗрдХ рдиреЛрдбрд╡рд░ рдПрдХ рдкреЙрдб рд▓рд╛рдБрдЪ рдХрд░реЗрд▓ рдЖрдгрд┐ рдЖрдордЪреНрдпрд╛ рдирд╡реАрди kube-рд╢реЗрдбреНрдпреБрд▓рд░рдЪреНрдпрд╛ рд▓реЙрдЧрдордзреНрдпреЗ рдЖрдореНрд╣рд╛рд▓рд╛ рдЖрдордЪреА рдкреЙрд▓рд┐рд╕реА рдлрд╛рдЗрд▓ рдпрд╢рд╕реНрд╡реАрд░рд┐рддреНрдпрд╛ рд▓рд╛рдЧреВ рдЭрд╛рд▓реНрдпрд╛рдЪреА рдорд╛рд╣рд┐рддреА рджрд┐рд╕реЗрд▓:

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:{}]'

рдЖрддрд╛ рдлрдХреНрдд рдЖрдордЪреНрдпрд╛ рдХреНрд░реЛрдирдЬреЙрдмрдЪреНрдпрд╛ рд╡реИрд╢рд┐рд╖реНрдЯреНрдпрд╛рдордзреНрдпреЗ рд╕реВрдЪрд┐рдд рдХрд░рдгреЗ рдмрд╛рдХреА рдЖрд╣реЗ рдХреА рддреНрдпрд╛рдЪреНрдпрд╛ рдкреЙрдбреНрд╕ рд╢реЗрдбреНрдпреВрд▓ рдХрд░рдгреНрдпрд╛рдЪреНрдпрд╛ рд╕рд░реНрд╡ рд╡рд┐рдирдВрддреНрдпрд╛ рдЖрдордЪреНрдпрд╛ рдирд╡реАрди kube-рд╢реЗрдбреНрдпреБрд▓рд░рджреНрд╡рд╛рд░реЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗрд▓реНрдпрд╛ рдкрд╛рд╣рд┐рдЬреЗрдд:

...
 jobTemplate:
    spec:
      template:
        spec:
          schedulerName: kube-scheduler-cron
...

рдирд┐рд╖реНрдХрд░реНрд╖

рд╢реЗрд╡рдЯреА, рдЖрдореНрд╣рд╛рд▓рд╛ рд╢реЗрдбреНрдпреБрд▓рд┐рдВрдЧ рдкреЙрд▓рд┐рд╕реАрдЪреНрдпрд╛ рдЕрдирдиреНрдп рд╕рдВрдЪрд╛рд╕рд╣ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдХреНрдпреВрдмреЗ-рд╢реЗрдбреНрдпреВрд▓рд░ рдорд┐рд│рд╛рд▓рд╛, рдЬреНрдпрд╛рдЪреНрдпрд╛ рдХрд╛рдорд╛рдЪреЗ рдереЗрдЯ рдХреБрдмреЗрд▓реЗрдЯрджреНрд╡рд╛рд░реЗ рдирд┐рд░реАрдХреНрд╖рдг рдХреЗрд▓реЗ рдЬрд╛рддреЗ. рдпрд╛рд╡реНрдпрддрд┐рд░рд┐рдХреНрдд, рдЬреБрдирд╛ рдиреЗрддрд╛ рдХрд╛рд╣реА рдХрд╛рд░рдгрд╛рд╕реНрддрд╡ рдЕрдиреБрдкрд▓рдмреНрдз рдЭрд╛рд▓реНрдпрд╛рд╕ рдЖрдореНрд╣реА рдЖрдордЪреНрдпрд╛ рдХреБрдмреЗ-рд╢реЗрдбреНрдпреБрд▓рд░рдЪреНрдпрд╛ рд╢реЗрдВрдЧрд╛рдВрдЪреНрдпрд╛ рджрд░рдореНрдпрд╛рди рдирд╡реАрди рдиреЗрддреНрдпрд╛рдЪреА рдирд┐рд╡рдб рдХреЗрд▓реА рдЖрд╣реЗ.

рдбреАрдлреЙрд▓реНрдЯ рдХреНрдпреВрдм-рд╢реЗрдбреНрдпреВрд▓рд░рджреНрд╡рд╛рд░реЗ рдирд┐рдпрдорд┐рдд рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдЖрдгрд┐ рд╕реЗрд╡рд╛ рд╢реЗрдбреНрдпреВрд▓ рдХреЗрд▓реНрдпрд╛ рдЬрд╛рддрд╛рдд рдЖрдгрд┐ рд╕рд░реНрд╡ рдХреНрд░реЙрди рдХрд╛рд░реНрдпреЗ рдкреВрд░реНрдгрдкрдгреЗ рдирд╡реАрдирдХрдбреЗ рд╣рд╕реНрддрд╛рдВрддрд░рд┐рдд рдХреЗрд▓реА рдЧреЗрд▓реА рдЖрд╣реЗрдд. рдХреНрд░реЙрди рдЯрд╛рд╕реНрдХрджреНрд╡рд╛рд░реЗ рддрдпрд╛рд░ рдХреЗрд▓реЗрд▓рд╛ рд▓реЛрдб рдЖрддрд╛ рд╕рд░реНрд╡ рдиреЛрдбреНрд╕рдордзреНрдпреЗ рд╕рдорд╛рди рд░реАрддреАрдиреЗ рд╡рд┐рддрд░реАрдд рдХреЗрд▓рд╛ рдЬрд╛рддреЛ. рдкреНрд░рдХрд▓реНрдкрд╛рдЪреНрдпрд╛ рдореБрдЦреНрдп рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рдВрдкреНрд░рдорд╛рдгреЗрдЪ рдмрд╣реБрддреЗрдХ рдХреНрд░реЙрди рдХрд╛рд░реНрдпреЗ рддреНрдпрд╛рдЪ рдиреЛрдбреНрд╕рд╡рд░ рдЪрд╛рд▓рд╡рд┐рд▓реА рдЬрд╛рддрд╛рдд рд╣реЗ рд▓рдХреНрд╖рд╛рдд рдШреЗрддрд╛, рдпрд╛рдореБрд│реЗ рд╕рдВрд╕рд╛рдзрдирд╛рдВрдЪреНрдпрд╛ рдХрдорддрд░рддреЗрдореБрд│реЗ рдкреЙрдб рд╣рд▓рд╡рд┐рдгреНрдпрд╛рдЪрд╛ рдзреЛрдХрд╛ рд▓рдХреНрд╖рдгреАрдпрд░реАрддреНрдпрд╛ рдХрдореА рдЭрд╛рд▓рд╛ рдЖрд╣реЗ. рдЕрддрд┐рд░рд┐рдХреНрдд рдХреНрдпреВрдмреЗ-рд╢реЗрдбреНрдпреВрд▓рд░ рд╕рд╛рджрд░ рдХреЗрд▓реНрдпрд╛рдирдВрддрд░, рдХреНрд░реЙрди рдХрд╛рд░реНрдпрд╛рдВрдЪреНрдпрд╛ рдЕрд╕рдорд╛рди рд╢реЗрдбреНрдпреВрд▓рд┐рдВрдЧрд╕рд╣ рд╕рдорд╕реНрдпрд╛ рдЙрджреНрднрд╡рд▓реНрдпрд╛ рдирд╛рд╣реАрдд.

рдЖрдордЪреНрдпрд╛ рдмреНрд▓реЙрдЧрд╡рд░реАрд▓ рдЗрддрд░ рд▓реЗрдЦ рджреЗрдЦреАрд▓ рд╡рд╛рдЪрд╛:

рд╕реНрддреНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛