เชธเซเชจเชฟเชถเซเชšเชฟเชค เชจเชฟเชฏเชฎเซ‹เชจเชพ เชตเซˆเชตเชฟเชงเซเชฏเชชเซ‚เชฐเซเชฃ เชธเซ‡เชŸ เชธเชพเชฅเซ‡ เชตเชงเชพเชฐเชพเชจเชพ เช•เซเชฏเซเชฌ-เชถเซ‡เชกเซเชฏเซเชฒเชฐ เชฌเชจเชพเชตเชตเซเช‚

เชธเซเชจเชฟเชถเซเชšเชฟเชค เชจเชฟเชฏเชฎเซ‹เชจเชพ เชตเซˆเชตเชฟเชงเซเชฏเชชเซ‚เชฐเซเชฃ เชธเซ‡เชŸ เชธเชพเชฅเซ‡ เชตเชงเชพเชฐเชพเชจเชพ เช•เซเชฏเซเชฌ-เชถเซ‡เชกเซเชฏเซเชฒเชฐ เชฌเชจเชพเชตเชตเซเช‚

เช•เซเชฌเซ‡-เชถเซ‡เชกเซเชฏเซเชฒเชฐ เช เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธเชจเซเช‚ เชเช• เช…เชญเชฟเชจเซเชจ เช˜เชŸเช• เช›เซ‡, เชœเซ‡ เชจเชฟเชฐเซเชฆเชฟเชทเซเชŸ เชจเซ€เชคเชฟเช“ เช…เชจเซเชธเชพเชฐ เชธเชฎเช—เซเชฐ เชจเซ‹เชกเซเชธเชฎเชพเช‚ เชชเซ‹เชกเซเชธ เชถเซ‡เชกเซเชฏเซ‚เชฒ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชœเชตเชพเชฌเชฆเชพเชฐ เช›เซ‡. เช˜เชฃเซ€เชตเชพเชฐ, เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เช•เซเชฒเชธเซเชŸเชฐเชจเซ€ เช•เชพเชฎเช—เซ€เชฐเซ€ เชฆเชฐเชฎเชฟเชฏเชพเชจ, เช†เชชเชฃเซ‡ เชชเซ‹เชกเซเชธ เชถเซ‡เชกเซเชฏเซ‚เชฒ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เช•เชˆ เชจเซ€เชคเชฟเช“เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ เชคเซ‡ เชตเชฟเชถเซ‡ เชตเชฟเชšเชพเชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เชจเชฅเซ€, เช•เชพเชฐเชฃ เช•เซ‡ เชกเชฟเชซเซ‹เชฒเซเชŸ เช•เซเชฏเซเชฌ-เชถเซ‡เชกเซเชฏเซ‚เชฒเชฐเชจเซ€ เชจเซ€เชคเชฟเช“เชจเซ‹ เชธเชฎเซ‚เชน เชฎเซ‹เชŸเชพเชญเชพเช—เชจเชพ เชฐเซ‹เชœเชฟเช‚เชฆเชพ เช•เชพเชฐเซเชฏเซ‹ เชฎเชพเชŸเซ‡ เชฏเซ‹เช—เซเชฏ เช›เซ‡. เชœเซ‹ เช•เซ‡, เชเชตเซ€ เชชเชฐเชฟเชธเซเชฅเชฟเชคเชฟเช“ เช›เซ‡ เชœเซเชฏเชพเชฐเซ‡ เช…เชฎเชพเชฐเชพ เชฎเชพเชŸเซ‡ เชถเซ€เช‚เช—เซ‹ เชซเชพเชณเชตเชตเชพเชจเซ€ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพเชจเซ‡ เชซเชพเช‡เชจ-เชŸเซเชฏเซเชจ เช•เชฐเชตเซ€ เชฎเชนเชคเซเชตเชชเซ‚เชฐเซเชฃ เช›เซ‡, เช…เชจเซ‡ เช† เช•เชพเชฐเซเชฏเชจเซ‡ เชชเซ‚เชฐเซเชฃ เช•เชฐเชตเชพเชจเซ€ เชฌเซ‡ เชฐเซ€เชคเซ‹ เช›เซ‡:

  1. เชจเชฟเชฏเชฎเซ‹เชจเชพ เช•เชธเซเชŸเชฎ เชธเซ‡เชŸ เชธเชพเชฅเซ‡ เช•เซเชฏเซ‚เชฌ-เชถเซ‡เชกเซเชฏเซ‚เชฒเชฐ เชฌเชจเชพเชตเซ‹
  2. เชคเชฎเชพเชฐเซเช‚ เชชเซ‹เชคเชพเชจเซเช‚ เชถเซ‡เชกเซเชฏเซ‚เชฒเชฐ เชฒเช–เซ‹ เช…เชจเซ‡ เชคเซ‡เชจเซ‡ API เชธเชฐเซเชตเชฐ เชตเชฟเชจเช‚เชคเซ€เช“ เชธเชพเชฅเซ‡ เช•เชพเชฎ เช•เชฐเชตเชพเชจเซเช‚ เชถเซ€เช–เชตเซ‹

เช† เชฒเซ‡เช–เชฎเชพเช‚, เชนเซเช‚ เช…เชฎเชพเชฐเชพ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸเชฎเชพเช‚เชจเชพ เชเช• เชชเชฐ เชนเชฐเซเชฅเชจเชพ เช…เชธเชฎเชพเชจ เชถเซ‡เชกเซเชฏเซ‚เชฒเชจเซ€ เชธเชฎเชธเซเชฏเชพเชจเซ‡ เช‰เช•เซ‡เชฒเชตเชพ เชฎเชพเชŸเซ‡เชจเชพ เชชเซเชฐเชฅเชฎ เชฎเซเชฆเซเชฆเชพเชจเชพ เช…เชฎเชฒเซ€เช•เชฐเชฃเชจเซเช‚ เชตเชฐเซเชฃเชจ เช•เชฐเซ€เชถ.

เช•เซเชฌเซ‡-เชถเซ‡เชกเซเชฏเซเชฒเชฐ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช•เชพเชฐเซเชฏ เช•เชฐเซ‡ เช›เซ‡ เชคเซ‡เชจเซ‹ เชธเช‚เช•เซเชทเชฟเชชเซเชค เชชเชฐเชฟเชšเชฏ

เช–เชพเชธ เช•เชฐเซ€เชจเซ‡ เช เชนเช•เซ€เช•เชคเชจเซ€ เชจเซ‹เช‚เชง เชฒเซ‡เชตเซ€ เชฏเซ‹เช—เซเชฏ เช›เซ‡ เช•เซ‡ เช•เซเชฌเซ‡-เชถเซ‡เชกเซเชฏเซเชฒเชฐ เชชเซ‹เชกเชจเซ‡ เชธเซ€เชงเชพ เชถเซ‡เชกเซเชฏเซ‚เชฒ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชœเชตเชพเชฌเชฆเชพเชฐ เชจเชฅเซ€ - เชคเซ‡ เชซเช•เซเชค เชคเซ‡ เชจเซ‹เชก เชจเช•เซเช•เซ€ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชœเชตเชพเชฌเชฆเชพเชฐ เช›เซ‡ เช•เซ‡ เชœเซ‡เชจเชพ เชชเชฐ เชชเซ‹เชก เชฎเซ‚เช•เชตเซ‹. เชฌเซ€เชœเชพ เชถเชฌเซเชฆเซ‹เชฎเชพเช‚ เช•เชนเซ€เช เชคเซ‹, เช•เซเชฏเซเชฌเซ‡-เชถเซ‡เชกเซเชฏเซเชฒเชฐเชจเชพ เช•เชพเชฐเซเชฏเชจเซเช‚ เชชเชฐเชฟเชฃเชพเชฎ เช เชจเซ‹เชกเชจเซเช‚ เชจเชพเชฎ เช›เซ‡, เชœเซ‡ เชคเซ‡ เชถเซ‡เชกเซเชฏเซเชฒเชฟเช‚เช— เชตเชฟเชจเช‚เชคเซ€ เชฎเชพเชŸเซ‡ 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 เชญเช‚เชกเชพเชฐ. เชฒเช–เชตเชพเชจเชพ เชธเชฎเชฏเซ‡, เชตเชฟเช•เชพเชธเช•เชฐเซเชคเชพเช“ เชคเชฐเชซเชฅเซ€ เชชเซเชฐเชคเชฟเชธเชพเชฆ เชฎเชณเซเชฏเซ‹ เช•เซ‡ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ v1.15,1.16, 1.17 เช…เชจเซ‡ XNUMX เช…เชชเชกเซ‡เชŸเซเชธเชฎเชพเช‚ เชฒเซ‹เช—เซ€เช‚เช— เชธเชชเซ‹เชฐเซเชŸ เช‰เชฎเซ‡เชฐเชตเชพเชฎเชพเช‚ เช†เชตเชถเซ‡.
  2. เช•เซเชฏเซ‚เชฌ-เชถเซ‡เชกเซเชฏเซเชฒเชฐ เชนเชพเชฒเชฎเชพเช‚ เช•เชฏเชพ เชšเซ‹เช•เซเช•เชธ เชจเซ€เชคเชฟเช“ เชธเชพเชฅเซ‡ เช•เชพเชฎ เช•เชฐเซ‡ เช›เซ‡ เชคเซ‡ เชธเชฎเชœเชตเชพเชจเซ‹ เช•เซ‹เชˆ เชธเชฐเชณ เชฐเชธเซเชคเซ‹ เชจเชฅเซ€. เชนเชพ, เชฎเชพเช‚ เชฆเชธเซเชคเชพเชตเซ‡เชœเซ€เช•เชฐเชฃ เช† เชธเซ‚เชšเชฟ เชธเซ‚เชšเชฟเชฌเชฆเซเชง เช›เซ‡, เชชเชฐเช‚เชคเซ เชคเซ‡เชฎเชพเช‚ เชฆเชฐเซ‡เช• เชชเซเชฐเชพเชฅเชฎเชฟเช•เชคเชพ เชจเซ€เชคเชฟเช“ เชฎเชพเชŸเซ‡ เช•เชฏเชพ เชšเซ‹เช•เซเช•เชธ เชตเชœเชจ เชธเซ‹เช‚เชชเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเชพ เช›เซ‡ เชคเซ‡ เชตเชฟเชถเซ‡เชจเซ€ เชฎเชพเชนเชฟเชคเซ€ เชถเชพเชฎเซ‡เชฒ เชจเชฅเซ€. เชคเชฎเซ‡ เชตเชœเชจ เชœเซ‹เชˆ เชถเช•เซ‹ เช›เซ‹ เช…เชฅเชตเชพ เชกเชฟเชซเซ‰เชฒเซเชŸ เช•เซเชฏเซเชฌ-เชถเซ‡เชกเซเชฏเซ‚เชฒเชฐเชจเซ€ เชชเซ‰เชฒเชฟเชธเซ€เชฎเชพเช‚ เชซเซ‡เชฐเชซเชพเชฐ เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹ เชธเซเชคเซเชฐเซ‹เชค เช•เซ‹เชกเซเชธ.

เช เชจเซ‹เช‚เชงเชตเซเช‚ เชฏเซ‹เช—เซเชฏ เช›เซ‡ เช•เซ‡ เชเช•เชตเชพเชฐ เช…เชฎเซ‡ เชฐเซ‡เช•เซ‹เชฐเซเชก เช•เชฐเซ€ เชถเช•เซเชฏเชพ เช•เซ‡ เชจเซ‹เชกเชจเซ‡ ImageLocalityPriority เชจเซ€เชคเชฟ เช…เชจเซเชธเชพเชฐ เชชเซ‹เชˆเชจเซเชŸ เชฎเชณเซเชฏเชพ เชจเชฅเซ€, เชœเซ‡ เชจเซ‹เชกเชจเซ‡ เชชเซ‹เชˆเชจเซเชŸ เช†เชชเซ‡ เช›เซ‡ เชœเซ‹ เชคเซ‡เชจเซ€ เชชเชพเชธเซ‡ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เชšเชฒเชพเชตเชตเชพ เชฎเชพเชŸเซ‡ เชœเชฐเซ‚เชฐเซ€ เช‡เชฎเซ‡เชœ เชนเซ‹เชฏ โ€‹โ€‹เชคเซ‹. เชเชŸเชฒเซ‡ เช•เซ‡, เชเชชเซเชฒเซ€เช•เซ‡เชถเชจเชจเซเช‚ เชจเชตเซเช‚ เชตเชฐเซเชเชจ เชฐเซ‹เชฒเช†เช‰เชŸ เชฅเชฏเซเช‚ เชคเซ‡ เชธเชฎเชฏเซ‡, เช•เซเชฐเซ‹เชจ เชŸเชพเชธเซเช• เชฌเซ‡ เชจเซ‹เชกเซเชธ เชชเชฐ เชšเชพเชฒเชตเชพ เชฎเชพเชŸเซ‡ เชตเซเชฏเชตเชธเซเชฅเชพเชชเชฟเชค เชนเชคเซเช‚, เชกเซ‹เช•เชฐ เชฐเชœเชฟเชธเซเชŸเซเชฐเซ€เชฎเชพเช‚เชฅเซ€ เชคเซ‡เชฎเชจเซ‡ เชเช• เชจเชตเซ€ เชˆเชฎเซ‡เชœ เชกเชพเช‰เชจเชฒเซ‹เชก เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เชนเชคเซ€, เช…เชจเซ‡ เช†เชฎ เชฌเซ‡ เชจเซ‹เชกเซเชธเชจเซ‡ เชคเซเชฐเซ€เชœเชพเชจเซ€ เชคเซเชฒเชจเชพเชฎเชพเช‚ เช‰เชšเซเชš เช…เช‚เชคเชฟเชฎ เชธเซเช•เซ‹เชฐ เชฎเชณเซเชฏเซ‹ เชนเชคเซ‹. .

เชœเซ‡เชฎ เชฎเซ‡เช‚ เช‰เชชเชฐ เชฒเช–เซเชฏเซเช‚ เช›เซ‡ เชคเซ‡เชฎ, เชฒเซ‹เช—เชฎเชพเช‚ เช…เชฎเชจเซ‡ ImageLocalityPriority เชจเซ€เชคเชฟเชจเชพ เชฎเซ‚เชฒเซเชฏเชพเช‚เช•เชจ เชตเชฟเชถเซ‡เชจเซ€ เชฎเชพเชนเชฟเชคเซ€ เชฆเซ‡เช–เชพเชคเซ€ เชจเชฅเซ€, เชคเซ‡เชฅเซ€ เช…เชฎเชพเชฐเซ€ เชงเชพเชฐเชฃเชพเชจเซ‡ เชšเช•เชพเชธเชตเชพ เชฎเชพเชŸเซ‡, เช…เชฎเซ‡ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเชจเชพ เชจเชตเชพ เชธเช‚เชธเซเช•เชฐเชฃ เชธเชพเชฅเซ‡เชจเซ€ เช›เชฌเซ€เชจเซ‡ เชคเซเชฐเซ€เชœเชพ เชจเซ‹เชก เชชเชฐ เชซเซ‡เช‚เช•เซ€ เชฆเซ€เชงเซ€ เช›เซ‡, เชœเซ‡ เชชเช›เซ€ เชถเซ‡เชกเซเชฏเซเชฒเชฟเช‚เช— เชฏเซ‹เช—เซเชฏ เชฐเซ€เชคเซ‡ เช•เชพเชฐเซเชฏ เช•เชฐเซ‡ เช›เซ‡. . เชคเซ‡ เชšเซ‹เช•เซเช•เชธ เชฐเซ€เชคเซ‡ ImageLocalityPriority เชจเซ€เชคเชฟเชจเซ‡ เช•เชพเชฐเชฃเซ‡ เชนเชคเซเช‚ เช•เซ‡ เชถเซ‡เชกเซเชฏเซ‚เชฒเชฟเช‚เช— เชธเชฎเชธเซเชฏเชพ เช–เซ‚เชฌ เชœ เชญเชพเช—เซเชฏเซ‡ เชœ เชœเซ‹เชตเชพ เชฎเชณเซ€ เชนเชคเซ€; เชตเชงเซ เชตเช–เชค เชคเซ‡ เช•เช‚เชˆเช• เช…เชจเซเชฏ เชธเชพเชฅเซ‡ เชธเช‚เช•เชณเชพเชฏเซ‡เชฒเซ€ เชนเชคเซ€. เชกเชฟเชซเซ‰เชฒเซเชŸ เช•เซเชฏเซเชฌ-เชถเซ‡เชกเซเชฏเซ‚เชฒเชฐเชจเซ€ เชชเซเชฐเชพเชฅเชฎเชฟเช•เชคเชพเช“เชจเซ€ เชธเซ‚เชšเชฟเชฎเชพเช‚ เช…เชฎเซ‡ เชฆเชฐเซ‡เช• เชจเซ€เชคเชฟเช“เชจเซ‡ เชธเช‚เชชเซ‚เชฐเซเชฃเชชเชฃเซ‡ เชกเชฟเชฌเช— เช•เชฐเซ€ เชถเช•เซเชฏเชพ เชจ เชนเซ‹เชตเชพเชจเซ‡ เช•เชพเชฐเชฃเซ‡, เช…เชฎเชจเซ‡ เชชเซ‹เชก เชถเซ‡เชกเซเชฏเซ‚เชฒเชฟเช‚เช— เชจเซ€เชคเชฟเช“เชจเชพ เชฒเชตเชšเซ€เช• เชธเช‚เชšเชพเชฒเชจเชจเซ€ เชœเชฐเซ‚เชฐ เชนเชคเซ€.

เชธเชฎเชธเซเชฏเชพเชจเซ€ เชฐเชšเชจเชพ

เช…เชฎเซ‡ เช‡เชšเซเช›เซ€เช เช›เซ€เช เช•เซ‡ เชธเชฎเชธเซเชฏเชพเชจเซ‹ เช‰เช•เซ‡เชฒ เชถเช•เซเชฏ เชคเซ‡เชŸเชฒเซ‹ เชšเซ‹เช•เซเช•เชธ เชนเซ‹เชตเซ‹ เชœเซ‹เชˆเช, เชเชŸเชฒเซ‡ เช•เซ‡, เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธเชจเซ€ เชฎเซเช–เซเชฏ เชธเช‚เชธเซเชฅเชพเช“ (เช…เชนเซ€เช‚ เช…เชฎเชพเชฐเซ‹ เชฎเชคเชฒเชฌ เชกเชฟเชซเซ‹เชฒเซเชŸ เช•เซเชฏเซเชฌ-เชถเซ‡เชกเซเชฏเซ‚เชฒเชฐ) เชฏเชฅเชพเชตเชค เชฐเชนเซ‡เชตเซ‹ เชœเซ‹เชˆเช. เช…เชฎเซ‡ เชธเชฎเชธเซเชฏเชพเชจเซ‡ เชเช• เชœเช—เซเชฏเชพเช เชนเชฒ เช•เชฐเซ€เชจเซ‡ เชฌเซ€เชœเซ€ เชœเช—เซเชฏเชพเช เชฌเชจเชพเชตเชตเชพ เชฎเชพเช‚เช—เชคเชพ เชจ เชนเชคเชพ. เช†เชฎ, เช…เชฎเซ‡ เชธเชฎเชธเซเชฏเชพเชจเซ‡ เช‰เช•เซ‡เชฒเชตเชพ เชฎเชพเชŸเซ‡เชจเชพ เชฌเซ‡ เชตเชฟเช•เชฒเซเชชเซ‹ เชชเชฐ เช†เชตเซเชฏเชพ, เชœเซ‡เชจเซ€ เชœเชพเชนเซ‡เชฐเชพเชค เชฒเซ‡เช–เชจเซ€ เชชเซเชฐเชธเซเชคเชพเชตเชจเชพเชฎเชพเช‚ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เชนเชคเซ€ - เชเช• เชตเชงเชพเชฐเชพเชจเซเช‚ เชถเซ‡เชกเซเชฏเซ‚เชฒเชฐ เชฌเชจเชพเชตเชตเซเช‚ เช…เชฅเชตเชพ เชคเชฎเชพเชฐเซเช‚ เชชเซ‹เชคเชพเชจเซเช‚ เชฒเช–เชตเซเช‚. เช•เซเชฐเซ‹เชจ เช•เชพเชฐเซเชฏเซ‹เชจเซ‡ เชธเซเชจเชฟเชถเซเชšเชฟเชค เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡เชจเซ€ เชฎเซเช–เซเชฏ เช†เชตเชถเซเชฏเช•เชคเชพ เช เช›เซ‡ เช•เซ‡ เชญเชพเชฐเชจเซ‡ เชคเซเชฐเชฃ เช—เชพเช‚เช เซ‹เชฎเชพเช‚ เชธเชฎเชพเชจเชฐเซ‚เชชเซ‡ เชตเชฟเชคเชฐเชฟเชค เช•เชฐเชตเซ‹. เช† เชœเชฐเซ‚เชฐเชฟเชฏเชพเชค เชนเชพเชฒเชจเซ€ เช•เซเชฏเซเชฌเซ‡-เชถเซ‡เชกเซเชฏเซเชฒเชฐ เชจเซ€เชคเชฟเช“ เชฆเซเชตเชพเชฐเชพ เชธเช‚เชคเซ‹เชทเซ€ เชถเช•เชพเชฏ เช›เซ‡, เชคเซ‡เชฅเซ€ เช…เชฎเชพเชฐเซ€ เชธเชฎเชธเซเชฏเชพเชจเซ‡ เช‰เช•เซ‡เชฒเชตเชพ เชฎเชพเชŸเซ‡ เชคเชฎเชพเชฐเชพ เชชเซ‹เชคเชพเชจเชพ เชถเซ‡เชกเซเชฏเซ‚เชฒเชฐ เชฒเช–เชตเชพเชจเซ‹ เช•เซ‹เชˆ เช…เชฐเซเชฅ เชจเชฅเซ€.

เชตเชงเชพเชฐเชพเชจเชพ เช•เซเชฏเซเชฌ-เชถเซ‡เชกเซเชฏเซเชฒเชฐ เชฌเชจเชพเชตเชตเชพ เช…เชจเซ‡ เชœเชฎเชพเชตเชตเชพ เชฎเชพเชŸเซ‡เชจเซ€ เชธเซ‚เชšเชจเชพเช“ เชตเชฐเซเชฃเชตเซ‡เชฒ เช›เซ‡ เชฆเชธเซเชคเชพเชตเซ‡เชœเซ€เช•เชฐเชฃ. เชœเซ‹ เช•เซ‡, เช…เชฎเชจเซ‡ เชเชตเซเช‚ เชฒเชพเช—เชคเซเช‚ เชนเชคเซเช‚ เช•เซ‡ เชกเชฟเชชเซเชฒเซ‹เชฏเชฎเซ‡เชจเซเชŸ เชเชจเซเชŸเชฟเชŸเซ€ เช•เซเชฏเซเชฌเซ‡-เชถเซ‡เชกเซเชฏเซเชฒเชฐ เชœเซ‡เชตเซ€ เชœเชŸเชฟเชฒ เชธเซ‡เชตเชพเชจเชพ เชธเช‚เชšเชพเชฒเชจเชฎเชพเช‚ เช–เชพเชฎเซ€ เชธเชนเชฟเชทเซเชฃเซเชคเชพเชจเซ‡ เชธเซเชจเชฟเชถเซเชšเชฟเชค เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชชเซ‚เชฐเชคเซ€ เชจ เชนเชคเซ€, เชคเซ‡เชฅเซ€ เช…เชฎเซ‡ เชเช• เชจเชตเชพ เช•เซเชฏเซเชฌ-เชถเซ‡เชกเซเชฏเซ‚เชฒเชฐเชจเซ‡ เชธเซเชŸเซ‡เชŸเชฟเช• เชชเซ‹เชก เชคเชฐเซ€เช•เซ‡ เชœเชฎเชพเชตเชตเชพเชจเซเช‚ เชจเช•เซเช•เซ€ เช•เชฐเซเชฏเซเช‚, เชœเซ‡เชจเซเช‚ เชธเซ€เชงเซเช‚ เชจเชฟเชฐเซ€เช•เซเชทเชฃ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเชถเซ‡. เช•เซเชฌเซ‡เชฒเซ‡เชŸ เชฆเซเชตเชพเชฐเชพ. เช†เชฎ, เชจเชตเชพ เช•เซเชฏเซ‚เชฌ-เชถเซ‡เชกเซเชฏเซ‚เชฒเชฐ เชฎเชพเชŸเซ‡ เช…เชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ เชจเซ€เชšเซ‡เชจเซ€ เชœเชฐเซ‚เชฐเชฟเชฏเชพเชคเซ‹ เช›เซ‡:

  1. เชธเซ‡เชตเชพเชจเซ‡ เชคเชฎเชพเชฎ เช•เซเชฒเชธเซเชŸเชฐ เชฎเชพเชธเซเชŸเชฐเซเชธ เชชเชฐ เชธเซเชŸเซ‡เชŸเชฟเช• เชชเซ‹เชก เชคเชฐเซ€เช•เซ‡ เชœเชฎเชพเชตเชตเซ€ เช†เชตเชถเซเชฏเช• เช›เซ‡
  2. เช•เซเชฏเซเชฌเซ‡-เชถเซ‡เชกเซเชฏเซเชฒเชฐ เชธเชพเชฅเซ‡ เชธเช•เซเชฐเชฟเชฏ เชชเซ‹เชก เช…เชจเซเชชเชฒเชฌเซเชง เชนเซ‹เชฏ เชคเซ‡เชตเชพ เช•เชฟเชธเซเชธเชพเชฎเชพเช‚ เช–เชพเชฎเซ€ เชธเชนเชฟเชทเซเชฃเซเชคเชพ เชชเซเชฐเชฆเชพเชจ เช•เชฐเชตเซ€ เช†เชตเชถเซเชฏเช• เช›เซ‡
  3. เช†เชฏเซ‹เชœเชจ เช•เชฐเชคเซ€ เชตเช–เชคเซ‡ เชฎเซเช–เซเชฏ เช…เช—เซเชฐเชคเชพ เชจเซ‹เชก เชชเชฐ เช‰เชชเชฒเชฌเซเชง เชธเช‚เชธเชพเชงเชจเซ‹เชจเซ€ เชธเช‚เช–เซเชฏเชพ เชนเซ‹เชตเซ€ เชœเซ‹เชˆเช (LeastRequestedPriority)

เช…เชฎเชฒเซ€เช•เชฐเชฃ เช‰เช•เซ‡เชฒเซ‹

เชคเซ‡ เชคเชฐเชค เชœ เชจเซ‹เช‚เชงเชตเซเช‚ เชฏเซ‹เช—เซเชฏ เช›เซ‡ เช•เซ‡ เช…เชฎเซ‡ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ 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) เชจเซเช‚ เช—เซ‹เช เชตเซ‡เชฒเซเช‚ เชฎเชพเช‰เชจเซเชŸเชฟเช‚เช—

เชญเซ‚เชฒเชถเซ‹ เชจเชนเซ€เช‚ เช•เซ‡ เช…เชฎเชพเชฐเชพ เช•เซเชฏเซเชฌเซ‡-เชถเซ‡เชกเซเชฏเซ‚เชฒเชฐเชจเซ‡ เชกเชฟเชซเซ‹เชฒเซเชŸเชจเชพ เชธเชฎเชพเชจ เช…เชงเชฟเช•เชพเชฐเซ‹เชจเซ€ เชœเชฐเซ‚เชฐ เชชเชกเชถเซ‡. เชคเซ‡เชจเซ€ เช•เซเชฒเชธเซเชŸเชฐ เชญเซ‚เชฎเชฟเช•เชพ เชธเช‚เชชเชพเชฆเชฟเชค เช•เชฐเซ‹:

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. เช…เชฎเซ‡ เช…เชฎเชพเชฐเซ€ เช•เซเชฏเซเชฌ-เชถเซ‡เชกเซเชฏเซ‚เชฒเชฐ-เช•เซเชฐเซ‹เชจ เชธเซ‡เชตเชพเชจเชพ เชจเชพเชฎ เชชเชฐ เชถเซ‡เชกเซเชฏเซ‚เชฒเชฐเชจเซ‡เชฎ เชธเซ‡เชŸ เช•เชฐเซ€เช เช›เซ€เช.
  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
}

เช†เชฎ, เช•เซเชฏเซเชฌ-เชถเซ‡เชกเซเชฏเซเชฒเชฐ เชธเซŒเชชเซเชฐเชฅเชฎ เชจเซ‹เชกเซเชธเชจเซ€ เชธเซ‚เชšเชฟเชจเซเช‚ เชธเช‚เช•เชฒเชจ เช•เชฐเซ‡ เช›เซ‡ เชœเซ‡เชฎเชพเช‚ เชธเชพเชฎเชพเชจเซเชฏ เชชเซเชฐเซ€เชกเชฟเช•เซ‡เชŸเซเชธ เชจเซ€เชคเชฟ (เชœเซ‡เชฎเชพเช‚ PodFitsResources, PodFitsHostPorts, HostName เช…เชจเซ‡ MatchNodeSelector เชจเซ€เชคเชฟเช“เชจเซ‹ เชธเชฎเซ‚เชน เชถเชพเชฎเซ‡เชฒ เช›เซ‡) เช…เชจเซเชธเชพเชฐ เชชเซ‹เชก เชธเซเชจเชฟเชถเซเชšเชฟเชค เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡. เช…เชจเซ‡ เชชเช›เซ€ เชฆเชฐเซ‡เช• เชจเซ‹เชกเชจเซเช‚ เชฎเซ‚เชฒเซเชฏเชพเช‚เช•เชจ เช…เช—เซเชฐเชคเชพ เชเชฐเซ‡เชฎเชพเช‚ เชจเซ€เชคเชฟเช“เชจเชพ เชธเซ‡เชŸ เช…เชจเซเชธเชพเชฐ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡. เช…เชฎเชพเชฐเชพ เช•เชพเชฐเซเชฏเชจเซ€ เชถเชฐเชคเซ‹เชจเซ‡ เชชเชฐเชฟเชชเซ‚เชฐเซเชฃ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, เช…เชฎเซ‡ เชตเชฟเชšเชพเชฐเซเชฏเซเช‚ เช•เซ‡ เช†เชตเซ€ เชจเซ€เชคเชฟเช“เชจเซ‹ เชธเชฎเซ‚เชน เชถเซเชฐเซ‡เชทเซเช  เช‰เช•เซ‡เชฒ เชนเชถเซ‡. เชนเซเช‚ เชคเชฎเชจเซ‡ เชฏเชพเชฆ เช•เชฐเชพเชตเซเช‚ เช•เซ‡ เชคเซ‡เชฎเชจเชพ เชตเชฟเช—เชคเชตเชพเชฐ เชตเชฐเซเชฃเชจเซ‹ เชธเชพเชฅเซ‡ เชจเซ€เชคเชฟเช“เชจเซ‹ เชธเชฎเซ‚เชน เช†เชฎเชพเช‚ เช‰เชชเชฒเชฌเซเชง เช›เซ‡ เชฆเชธเซเชคเชพเชตเซ‡เชœเซ€เช•เชฐเชฃ. เชคเชฎเชพเชฐเชพ เช•เชพเชฐเซเชฏเชจเซ‡ เชชเซ‚เชฐเซเชฃ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, เชคเชฎเซ‡ เช‰เชชเชฏเซ‹เช—เชฎเชพเช‚ เชฒเซ‡เชตเชพเชคเซ€ เชจเซ€เชคเชฟเช“เชจเชพ เชธเซ‡เชŸเชจเซ‡ เชฌเชฆเชฒเซ€ เชถเช•เซ‹ เช›เซ‹ เช…เชจเซ‡ เชคเซ‡เชฎเชจเซ‡ เชฏเซ‹เช—เซเชฏ เชตเชœเชจ เชธเซ‹เช‚เชชเซ€ เชถเช•เซ‹ เช›เซ‹.

เชšเชพเชฒเซ‹ เชจเชตเชพ kube-scheduler เชจเชพ เชฎเซ‡เชจเชฟเชซเซ‡เชธเซเชŸเชจเซ‡ เช•เซ‰เชฒ เช•เชฐเซ€เช, เชœเซ‡ เช†เชชเชฃเซ‡ เชชเซเชฐเช•เชฐเชฃเชจเซ€ เชถเชฐเซ‚เช†เชคเชฎเชพเช‚ เชฌเชจเชพเชตเซ‡เชฒ เช›เซ‡, kube-scheduler-custom.yaml เช…เชจเซ‡ เชคเซ‡เชจเซ‡ เชจเซ€เชšเซ‡เชจเชพ เชชเชพเชฅ /etc/kubernetes/manifests เชฎเชพเช‚ เชคเซเชฐเชฃ เชฎเซเช–เซเชฏ เชจเซ‹เชก เชชเชฐ เชฎเซ‚เช•เซ‹. เชœเซ‹ เชฌเชงเซเช‚ เชฏเซ‹เช—เซเชฏ เชฐเซ€เชคเซ‡ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เชนเซ‹เชฏ, เชคเซ‹ เช•เซเชฌเซ‡เชฒเซ‡เชŸ เชฆเชฐเซ‡เช• เชจเซ‹เชก เชชเชฐ เชชเซ‹เชก เชฒเซ‹เชจเซเชš เช•เชฐเชถเซ‡, เช…เชจเซ‡ เช…เชฎเชพเชฐเชพ เชจเชตเชพ เช•เซเชฏเซเชฌ-เชถเซ‡เชกเซเชฏเซ‚เชฒเชฐเชจเชพ เชฒเซ‹เช—เชฎเชพเช‚ เช…เชฎเซ‡ เชฎเชพเชนเชฟเชคเซ€ เชœเซ‹เชˆเชถเซเช‚ เช•เซ‡ เช…เชฎเชพเชฐเซ€ เชชเซ‹เชฒเชฟเชธเซ€ เชซเชพเช‡เชฒ เชธเชซเชณเชคเชพเชชเซ‚เชฐเซเชตเช• เชฒเชพเช—เซ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เชนเชคเซ€:

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

เชนเชตเซ‡ เชœเซ‡ เชฌเชพเช•เซ€ เช›เซ‡ เชคเซ‡ เช…เชฎเชพเชฐเชพ เช•เซเชฐเซ‹เชจเชœเซ‹เชฌเชจเชพ เชธเซเชชเซ‡เช•เชฎเชพเช‚ เชธเซ‚เชšเชตเชตเชพเชจเซเช‚ เช›เซ‡ เช•เซ‡ เชคเซ‡เชจเชพ เชชเซ‹เชกเซเชธ เชถเซ‡เชกเซเชฏเซ‚เชฒ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡เชจเซ€ เชคเชฎเชพเชฎ เชตเชฟเชจเช‚เชคเซ€เช“ เช…เชฎเชพเชฐเชพ เชจเชตเชพ เช•เซเชฏเซเชฌ-เชถเซ‡เชกเซเชฏเซ‚เชฒเชฐ เชฆเซเชตเชพเชฐเชพ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ เช•เชฐเชตเซ€ เชœเซ‹เชˆเช:

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

เชจเชฟเชทเซเช•เชฐเซเชท

เช†เช–เชฐเซ‡, เช…เชฎเชจเซ‡ เชถเซ‡เชกเซเชฏเซเชฒเชฟเช‚เช— เชจเซ€เชคเชฟเช“เชจเชพ เช…เชจเชจเซเชฏ เชธเซ‡เชŸ เชธเชพเชฅเซ‡ เชตเชงเชพเชฐเชพเชจเชพ เช•เซเชฏเซเชฌ-เชถเซ‡เชกเซเชฏเซ‚เชฒเชฐ เชฎเชณเซเชฏเชพ, เชœเซ‡เชจเซเช‚ เช•เชพเชฎ เชธเซ€เชงเซเช‚ เช•เซเชฌเซ‡เชฒเซ‡เชŸ เชฆเซเชตเชพเชฐเชพ เชฎเซ‹เชจเชฟเชŸเชฐ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡. เช† เช‰เชชเชฐเชพเช‚เชค, เชœเซ‚เชจเชพ เชจเซ‡เชคเชพ เช•เซ‹เชˆ เช•เชพเชฐเชฃเชธเชฐ เช…เชจเซเชชเชฒเชฌเซเชง เชฅเชพเชฏ เชคเซ‹ เช…เชฎเซ‡ เช…เชฎเชพเชฐเชพ เช•เซเชฌเซ‡-เชถเซ‡เชกเซเชฏเซเชฒเชฐเชจเซ€ เชถเซ€เช‚เช—เซ‹ เชตเชšเซเชšเซ‡ เชจเชตเชพ เชจเซ‡เชคเชพเชจเซ€ เชšเซ‚เช‚เชŸเชฃเซ€ เช—เซ‹เช เชตเซ€ เช›เซ‡.

เชจเชฟเชฏเชฎเชฟเชค เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเซ‹ เช…เชจเซ‡ เชธเซ‡เชตเชพเช“ เชกเชฟเชซเซ‹เชฒเซเชŸ เช•เซเชฏเซเชฌ-เชถเซ‡เชกเซเชฏเซเชฒเชฐ เชฆเซเชตเชพเชฐเชพ เชธเซเชจเชฟเชถเซเชšเชฟเชค เช•เชฐเชตเชพเชจเซเช‚ เชšเชพเชฒเซ เชฐเชพเช–เซ‡ เช›เซ‡, เช…เชจเซ‡ เชคเชฎเชพเชฎ เช•เซเชฐเซ‹เชจ เช•เชพเชฐเซเชฏเซ‹ เชธเช‚เชชเซ‚เชฐเซเชฃเชชเชฃเซ‡ เชจเชตเชพเชฎเชพเช‚ เชธเซเชฅเชพเชจเชพเช‚เชคเชฐเชฟเชค เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเชพ เช›เซ‡. เช•เซเชฐเซ‹เชจ เช•เชพเชฐเซเชฏเซ‹ เชฆเซเชตเชพเชฐเชพ เชฌเชจเชพเชตเซ‡เชฒ เชฒเซ‹เชก เชนเชตเซ‡ เชคเชฎเชพเชฎ เชจเซ‹เชกเซเชธเชฎเชพเช‚ เชธเชฎเชพเชจเชฐเซ‚เชชเซ‡ เชตเชฟเชคเชฐเชฟเชค เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡. เชฎเซ‹เชŸเชพ เชญเชพเช—เชจเชพ เช•เซเชฐเซ‹เชจ เช•เชพเชฐเซเชฏเซ‹ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸเชจเชพ เชฎเซเช–เซเชฏ เช•เชพเชฐเซเชฏเช•เซเชฐเชฎเซ‹ เชœเซ‡เชตเชพ เชœ เชจเซ‹เชกเซเชธ เชชเชฐ เชšเชฒเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ เชคเซ‡ เชงเซเชฏเชพเชจเชฎเชพเช‚ เชฒเซ‡เชคเชพ, เช†เชจเชพเชฅเซ€ เชธเช‚เชธเชพเชงเชจเซ‹เชจเซ€ เช…เช›เชคเชจเซ‡ เช•เชพเชฐเชฃเซ‡ เชชเซ‹เชกเซเชธ เช–เชธเซ‡เชกเชตเชพเชจเซเช‚ เชœเซ‹เช–เชฎ เชจเซ‹เช‚เชงเชชเชพเชคเซเชฐ เชฐเซ€เชคเซ‡ เช˜เชŸเซเชฏเซเช‚ เช›เซ‡. เชตเชงเชพเชฐเชพเชจเชพ เช•เซเชฏเซเชฌ-เชถเซ‡เชกเซเชฏเซเชฒเชฐเชจเซ€ เชฐเชœเซ‚เช†เชค เช•เชฐเซเชฏเชพ เชชเช›เซ€, เช•เซเชฐเซ‹เชจ เช•เชพเชฐเซเชฏเซ‹เชจเชพ เช…เชธเชฎเชพเชจ เชธเชฎเชฏเชชเชคเซเชฐเช• เชธเชพเชฅเซ‡ เชธเชฎเชธเซเชฏเชพเช“ เชŠเชญเซ€ เชฅเชˆ เชจเชฅเซ€.

เช…เชฎเชพเชฐเชพ เชฌเซเชฒเซ‹เช— เชชเชฐ เช…เชจเซเชฏ เชฒเซ‡เช–เซ‹ เชชเชฃ เชตเชพเช‚เชšเซ‹:

เชธเซ‹เชฐเซเชธ: www.habr.com

เชเช• เชŸเชฟเชชเซเชชเชฃเซ€ เช‰เชฎเซ‡เชฐเซ‹