เดทเต†เดกเตเดฏเต‚เดณเดฟเด‚เด—เต เดจเดฟเดฏเดฎเด™เตเด™เดณเตเดŸเต† เด’เดฐเต เด‡เดทเตโ€ŒเดŸเดพเดจเตเดธเตƒเดค เดธเต†เดฑเตเดฑเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด’เดฐเต เด…เดงเดฟเด• เด•เตเดฏเต‚เดฌเต-เดทเต†เดกเตเดฏเต‚เดณเตผ เดธเตƒเดทเตโ€ŒเดŸเดฟเด•เตเด•เตเดจเตเดจเต

เดทเต†เดกเตเดฏเต‚เดณเดฟเด‚เด—เต เดจเดฟเดฏเดฎเด™เตเด™เดณเตเดŸเต† เด’เดฐเต เด‡เดทเตโ€ŒเดŸเดพเดจเตเดธเตƒเดค เดธเต†เดฑเตเดฑเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด’เดฐเต เด…เดงเดฟเด• เด•เตเดฏเต‚เดฌเต-เดทเต†เดกเตเดฏเต‚เดณเตผ เดธเตƒเดทเตโ€ŒเดŸเดฟเด•เตเด•เตเดจเตเดจเต

เด•เตเดฌเต†เตผเดจเต†เดฑเตเดฑเดธเดฟเตปเตเดฑเต† เด’เดฐเต เด…เดตเดฟเดญเดพเดœเตเดฏ เด˜เดŸเด•เดฎเดพเดฃเต เด•เตเดฏเต‚เดฌเต-เดทเต†เดกเตเดฏเต‚เดณเตผ, เด‡เดคเต เดจเดฟเตผเดฆเตเดฆเดฟเดทเตเดŸ เดจเดฏเด™เตเด™เตพเด•เตเด•เต เด…เดจเตเดธเตƒเดคเดฎเดพเดฏเดฟ เดจเต‹เดกเตเด•เดณเดฟเดฒเตเดŸเดจเต€เดณเด‚ เดชเต‹เดกเตเด•เตพ เดทเต†เดกเตเดฏเต‚เตพ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต เด‰เดคเตเดคเดฐเดตเดพเดฆเดฟเดฏเดพเดฃเต. เดฎเดฟเด•เตเด•เดชเตเดชเต‹เดดเตเด‚, เด’เดฐเต เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเต เด•เตเดฒเดธเตเดฑเตเดฑเดฑเดฟเตปเตเดฑเต† เดชเตเดฐเดตเตผเดคเตเดคเดจ เดธเดฎเดฏเดคเตเดคเต, เดชเต‹เดกเตเด•เตพ เดทเต†เดกเตเดฏเต‚เตพ เดšเต†เดฏเตเดฏเดพเตป เดเดคเต เดชเต‹เดณเดฟเดธเดฟเด•เดณเดพเดฃเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเต†เดจเตเดจเต เดžเด™เตเด™เตพ เดšเดฟเดจเตเดคเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเดฟเดฒเตเดฒ, เด•เดพเดฐเดฃเด‚ เดกเดฟเดซเต‹เตพเดŸเตเดŸเต เด•เตเดฏเต‚เดฌเต-เดทเต†เดกเตเดฏเต‚เดณเดฑเดฟเตปเตเดฑเต† เดชเต‹เดณเดฟเดธเดฟเด•เดณเตเดŸเต† เดธเต†เดฑเตเดฑเต เดฎเดฟเด•เตเด• เดฆเตˆเดจเด‚เดฆเดฟเดจ เดœเต‹เดฒเดฟเด•เตพเด•เตเด•เตเด‚ เด…เดจเตเดฏเต‹เดœเตเดฏเดฎเดพเดฃเต. เดŽเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด‚, เดชเต‹เดกเตเด•เตพ เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจ เดชเตเดฐเด•เตเดฐเดฟเดฏ เดจเดจเตเดจเดพเดฏเดฟ เด•เตเดฐเดฎเต€เด•เดฐเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเต เดชเตเดฐเดงเดพเดจเดฎเดพเดฏ เดธเดพเดนเดšเดฐเตเดฏเด™เตเด™เดณเตเดฃเตเดŸเต, เด•เต‚เดŸเดพเดคเต† เดˆ เดšเตเดฎเดคเดฒ เดจเดฟเตผเดตเดนเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดฐเดฃเตเดŸเต เดตเดดเดฟเด•เดณเตเดฃเตเดŸเต:

  1. เด’เดฐเต เด‡เดทเตโ€ŒเดŸเดพเดจเตเดธเตƒเดค เดจเดฟเดฏเดฎเด™เตเด™เดณเตเดณเตเดณ เด’เดฐเต เด•เตเดฏเต‚เดฌเต-เดทเต†เดกเตเดฏเต‚เดณเตผ เดธเตƒเดทเตโ€ŒเดŸเดฟเด•เตเด•เตเด•
  2. เดจเดฟเด™เตเด™เดณเตเดŸเต† เดธเตเดตเดจเตเดคเด‚ เดทเต†เดกเตเดฏเต‚เดณเตผ เดŽเดดเตเดคเดฟ API เดธเต†เตผเดตเตผ เด…เดญเตเดฏเตผเดคเตเดฅเดจเด•เตพเด•เตเด•เตŠเดชเตเดชเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เดพเตป เดชเด เดฟเดชเตเดชเดฟเด•เตเด•เตเด•

เดˆ เดฒเต‡เด–เดจเดคเตเดคเดฟเตฝ, เดžเด™เตเด™เดณเตเดŸเต† เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเตเด•เดณเดฟเดฒเตŠเดจเตเดจเดฟเตฝ เดšเต‚เดณเด•เดณเตเดŸเต† เด…เดธเดฎเดฎเดพเดฏ เดทเต†เดกเตเดฏเต‚เดณเดฟเตปเตเดฑเต† เดชเตเดฐเดถเตเดจเด‚ เดชเดฐเดฟเดนเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เด†เดฆเตเดฏ เดชเต‹เดฏเดฟเตปเตเดฑเต เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เตเดจเตเดจเดคเต เดžเดพเตป เดตเดฟเดตเดฐเดฟเด•เตเด•เตเด‚.

เด•เตเดฏเต‚เดฌเต เดทเต†เดกเตเดฏเต‚เดณเตผ เดŽเด™เตเด™เดจเต† เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต เดŽเดจเตเดจเดคเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เด’เดฐเต เดนเตเดฐเดธเตเดต เด†เดฎเตเด–เด‚

เดชเต‹เดกเตเด•เตพ เดจเต‡เดฐเดฟเดŸเตเดŸเต เดทเต†เดกเตเดฏเต‚เตพ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต เด•เตเดฏเต‚เดฌเต-เดทเต†เดกเตเดฏเต‚เดณเตผ เด‰เดคเตเดคเดฐเดตเดพเดฆเดฟเดฏเดฒเตเดฒ เดŽเดจเตเดจ เดตเดธเตเดคเตเดค เดชเตเดฐเดคเตเดฏเต‡เด•เด‚ เดถเตเดฐเดฆเตเดงเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเดพเดฃเต - เดชเต‹เดกเต เดธเตเดฅเดพเดชเดฟเด•เตเด•เต‡เดฃเตเดŸ เดจเต‹เดกเต เดจเดฟเตผเดฃเตเดฃเดฏเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เด‰เดคเตเดคเดฐเดตเดพเดฆเดฟเดคเตเดคเด‚ เดฎเดพเดคเตเดฐเดฎเดพเดฃเต เด‡เดคเดฟเดจเต. เดฎเดฑเตเดฑเตŠเดฐเต เดตเดฟเดงเดคเตเดคเดฟเตฝ เดชเดฑเดžเตเดžเดพเตฝ, เด•เตเดฏเต‚เดฌเต-เดทเต†เดกเตเดฏเต‚เดณเดฑเตเดŸเต† เดชเตเดฐเดตเตผเดคเตเดคเดจเดคเตเดคเดฟเตปเตเดฑเต† เดซเดฒเด‚ เดจเต‹เดกเดฟเตปเตเดฑเต† เดชเต‡เดฐเดพเดฃเต, เด…เดคเต เดทเต†เดกเตเดฏเต‚เดณเดฟเด‚เด—เต เด…เดญเตเดฏเตผเดคเตเดฅเดจเดฏเตเด•เตเด•เดพเดฏเดฟ API เดธเต†เตผเดตเดฑเดฟเดฒเต‡เด•เตเด•เต เดฎเดŸเด™เตเด™เตเดจเตเดจเต, เด…เดตเดฟเดŸเต†เดฏเดพเดฃเต เด…เดคเดฟเตปเตเดฑเต† เดœเต‹เดฒเดฟ เด…เดตเดธเดพเดจเดฟเด•เตเด•เตเดจเตเดจเดคเต.

เด†เดฆเตเดฏเด‚, kube-scheduler, เดชเตเดฐเต†เดกเดฟเด•เตเด•เต‡เดฑเตเดฑเต เดชเต‹เดณเดฟเดธเดฟเด•เตพเด•เตเด•เต เด…เดจเตเดธเตƒเดคเดฎเดพเดฏเดฟ เดชเต‹เดกเต เดทเต†เดกเตเดฏเต‚เตพ เดšเต†เดฏเตเดฏเดพเตป เด•เดดเดฟเดฏเตเดจเตเดจ เดจเต‹เดกเตเด•เดณเตเดŸเต† เด’เดฐเต เดฒเดฟเดธเตเดฑเตเดฑเต เด•เด‚เดชเตˆเตฝ เดšเต†เดฏเตเดฏเตเดจเตเดจเต. เด…เดŸเตเดคเตเดคเดคเดพเดฏเดฟ, เดˆ เดฒเดฟเดธเตเดฑเตเดฑเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เด“เดฐเต‹ เดจเต‹เดกเดฟเดจเตเด‚ เดฎเตเตปเด—เดฃเดจเดพ เดจเดฏเด™เตเด™เตพเด•เตเด•เต เด…เดจเตเดธเตƒเดคเดฎเดพเดฏเดฟ เดจเดฟเดถเตเดšเดฟเดค เดŽเดฃเตเดฃเด‚ เดชเต‹เดฏเดฟเตปเตเดฑเตเด•เตพ เดฒเดญเดฟเด•เตเด•เตเด‚. เดซเดฒเดฎเดพเดฏเดฟ, เดชเดฐเดฎเดพเดตเดงเดฟ เดŽเดฃเตเดฃเด‚ เดชเต‹เดฏเดฟเตปเตเดฑเตเด•เดณเตเดณเตเดณ เดจเต‹เดกเต เดคเดฟเดฐเดžเตเดžเต†เดŸเตเดคเตเดคเต. เด’เดฐเต‡ เดชเดฐเดฎเดพเดตเดงเดฟ เดธเตเด•เต‹เตผ เด‰เดณเตเดณ เดจเต‹เดกเตเด•เตพ เด‰เดฃเตเดŸเต†เด™เตเด•เดฟเตฝ, เด•เตเดฐเดฎเดฐเดนเดฟเดคเดฎเดพเดฏ เด’เดจเตเดจเต เดคเดฟเดฐเดžเตเดžเต†เดŸเตเด•เตเด•เดชเตเดชเต†เดŸเตเด‚. เดชเตเดฐเดตเดšเดจเด™เตเด™เตพ (เดซเดฟเตฝเดŸเตเดŸเดฑเดฟเด‚เด—เต), เดฎเตเตปเด—เดฃเดจเด•เตพ (เดธเตเด•เต‹เดฑเดฟเด‚เด—เต) เดจเดฏเด™เตเด™เดณเตเดŸเต† เด’เดฐเต เดฒเดฟเดธเตเดฑเตเดฑเตเด‚ เดตเดฟเดตเดฐเดฃเดตเตเด‚ เด‡เดคเดฟเตฝ เด•เดพเดฃเดพเด‚ เดชเตเดฐเดฎเดพเดฃเต€เด•เดฐเดฃเด‚.

เดชเตเดฐเดถเตเดจเดฎเตเดณเตเดณ เดถเดฐเต€เดฐเดคเตเดคเดฟเตปเตเดฑเต† เดตเดฟเดตเดฐเดฃเด‚

Nixys-เตฝ เดจเดฟเดฐเดตเดงเดฟ เดตเตเดฏเดคเตเดฏเดธเตเดค Kubernetes เด•เตเดฒเดธเตเดฑเตเดฑเดฑเตเด•เตพ เดชเดฐเดฟเดชเดพเดฒเดฟเด•เตเด•เดชเตเดชเต†เดŸเตเดจเตเดจเตเดฃเตเดŸเต†เด™เตเด•เดฟเดฒเตเด‚, เดžเด™เตเด™เดณเตเดŸเต† เดชเตเดฐเต‹เดœเด•เตโ€Œเดฑเตเดฑเตเด•เดณเดฟเดฒเตŠเดจเตเดจเดฟเดจเต เดงเดพเดฐเดพเดณเด‚ เดชเต€เดฐเดฟเดฏเต‹เดกเดฟเด•เต เดŸเดพเดธเตโ€Œเด•เตเด•เตเด•เตพ (~100 CronJob เดŽเตปเตเดฑเดฟเดฑเตเดฑเดฟเด•เตพ) เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เต‡เดฃเตเดŸเดฟ เดตเดจเตเดจเดชเตเดชเต‹เตพ, เด…เดŸเตเดคเตเดคเดฟเดŸเต†เดฏเดพเดฃเต เดชเต‹เดกเตเด•เตพ เดทเต†เดกเตเดฏเต‚เตพ เดšเต†เดฏเตเดฏเตเดจเตเดจ เดชเตเดฐเดถเตเดจเด‚ เดžเด™เตเด™เตพ เด†เดฆเตเดฏเด‚ เดจเต‡เดฐเดฟเดŸเตเดŸเดคเต. เดชเตเดฐเดถเตโ€Œเดจเดคเตเดคเดฟเตปเตเดฑเต† เดตเดฟเดตเดฐเดฃเด‚ เด•เดดเดฟเดฏเตเดจเตเดจเดคเตเดฐ เดฒเดณเดฟเดคเดฎเดพเด•เตเด•เดพเตป, เดžเด™เตเด™เตพ เด’เดฐเต เดฎเตˆเด•เตเดฐเต‹เดธเตผเดตเต€เดธเต เด‰เดฆเดพเดนเดฐเดฃเดฎเดพเดฏเดฟ เดŽเดŸเตเด•เตเด•เตเด‚, เด…เดคเดฟเดจเตเดณเตเดณเดฟเตฝ เดฎเดฟเดจเดฟเดฑเตเดฑเดฟเตฝ เด’เดฐเดฟเด•เตเด•เตฝ เด’เดฐเต เด•เตเดฐเต‹เตบ เดŸเดพเดธเตโ€Œเด•เต เดธเดฎเดพเดฐเด‚เดญเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดธเดฟเดชเดฟเดฏเตเดตเดฟเตฝ เด•เตเดฑเดšเตเดšเต เดฒเต‹เดกเต เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต. เด•เตเดฐเต‹เตบ เดŸเดพเดธเตโ€Œเด•เต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต, เดคเดฟเด•เดšเตเดšเตเด‚ เดธเดฎเดพเดจเดฎเดพเดฏ เดธเตเดตเดญเดพเดตเดธเดตเดฟเดถเต‡เดทเดคเด•เดณเตเดณเตเดณ เดฎเต‚เดจเตเดจเต เดจเต‹เดกเตเด•เตพ เด…เดจเตเดตเดฆเดฟเดšเตเดšเต (เด“เดฐเต‹เดจเตเดจเดฟเดฒเตเด‚ 24 vCPU-เด•เตพ).

เด…เดคเต‡เดธเดฎเดฏเด‚, เด‡เตปเดชเตเดŸเตเดŸเต เดกเดพเดฑเตเดฑเดฏเตเดŸเต† เด…เดณเดตเต เดจเดฟเดฐเดจเตเดคเดฐเด‚ เดฎเดพเดฑเดฟเด•เตเด•เตŠเดฃเตเดŸเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเดพเตฝ, เด•เตเดฐเต‹เตบเดœเต‹เดฌเต เดŽเด•เตเดธเดฟเด•เตเดฏเต‚เดŸเตเดŸเต เดšเต†เดฏเตเดฏเดพเตป เดŽเดคเตเดฐ เดธเดฎเดฏเดฎเต†เดŸเตเด•เตเด•เตเดฎเต†เดจเตเดจเต เด•เตƒเดคเตเดฏเดฎเดพเดฏเดฟ เดชเดฑเดฏเดพเตป เด•เดดเดฟเดฏเดฟเดฒเตเดฒ. เดถเดฐเดพเดถเดฐเดฟ, เด•เตเดฏเต‚เดฌเต-เดทเต†เดกเตเดฏเต‚เดณเดฑเดฟเตปเตเดฑเต† เดธเดพเดงเดพเดฐเดฃ เดชเตเดฐเดตเตผเดคเตเดคเดจ เดธเดฎเดฏเดคเตเดคเต, เด“เดฐเต‹ เดจเต‹เดกเตเด‚ 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

เด…เดคเดฟเตฝ เดจเดฟเดจเตเดจเต เดจเต‹เดกเตเด•เดณเดฟเดฒเตŠเดจเตเดจเต เดฎเดฑเตเดฑเตเดณเตเดณเดตเดฏเต† เด…เดชเต‡เด•เตเดทเดฟเดšเตเดšเต เด•เตเดฑเดšเตเดšเต เด…เดจเตเดคเดฟเดฎ เดชเต‹เดฏเดฟเตปเตเดฑเตเด•เตพ เดจเต‡เดŸเดฟเดฏเดคเดพเดฏเดฟ เด•เดพเดฃเดพเตป เด•เดดเดฟเดฏเตเด‚, เด…เดคเดฟเดจเดพเตฝ เดชเดฐเดฎเดพเดตเดงเดฟ เดธเตเด•เต‹เตผ เดจเต‡เดŸเดฟเดฏ เดฐเดฃเตเดŸเต เดจเต‹เดกเตเด•เตพเด•เตเด•เดพเดฏเดฟ เดฎเดพเดคเตเดฐเดฎเดพเดฃเต เด†เดธเต‚เดคเตเดฐเดฃเด‚ เดจเดŸเดคเตเดคเดฟเดฏเดคเต. เด…เดคเดฟเดจเดพเตฝ, เดชเต‹เดกเตเด•เดณเตเดŸเต† เดทเต†เดกเตเดฏเต‚เดณเดฟเด‚เด—เดฟเดฒเดพเดฃเต เดชเตเดฐเดถเตเดจเด‚ เด•เตƒเดคเตเดฏเดฎเดพเดฏเดฟ เด‰เดณเตเดณเดคเต†เดจเตเดจเต เดžเด™เตเด™เตพเด•เตเด•เต เด‰เดฑเดชเตเดชเดพเดฏเดฟ.

เดชเตเดฐเดถเตเดจเด‚ เดชเดฐเดฟเดนเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เด•เต‚เดŸเตเดคเตฝ เด…เตฝเด—เต‹เดฐเดฟเดคเด‚ เดžเด™เตเด™เตพเด•เตเด•เต เดตเตเดฏเด•เตเดคเดฎเดพเดฃเต - เดฒเต‹เด—เตเด•เตพ เดตเดฟเดถเด•เดฒเดจเด‚ เดšเต†เดฏเตเดฏเตเด•, เดจเต‹เดกเต เดŽเดจเตเดคเต เดฎเตเตปเด—เดฃเดจ เดชเตเดฐเด•เดพเดฐเด‚ เดชเต‹เดฏเดฟเตปเตเดฑเตเด•เตพ เดธเตเด•เต‹เตผ เดšเต†เดฏเตเดคเดฟเดŸเตเดŸเดฟเดฒเตเดฒเต†เดจเตเดจเต เดฎเดจเดธเดฟเดฒเดพเด•เตเด•เตเด•, เด†เดตเดถเตเดฏเดฎเต†เด™เตเด•เดฟเตฝ เดกเดฟเดซเต‹เตพเดŸเตเดŸเต เด•เตเดฏเต‚เดฌเต-เดทเต†เดกเตเดฏเต‚เดณเดฑเดฟเตปเตเดฑเต† เดจเดฏเด™เตเด™เตพ เด•เตเดฐเดฎเต€เด•เดฐเดฟเด•เตเด•เตเด•. เดŽเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด‚, เด‡เดตเดฟเดŸเต† เดžเด™เตเด™เตพ เดฐเดฃเตเดŸเต เดชเตเดฐเดงเดพเดจ เดฌเตเดฆเตเดงเดฟเดฎเตเดŸเตเดŸเตเด•เตพ เด…เดญเดฟเดฎเตเด–เต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเต:

  1. เดชเดฐเดฎเดพเดตเดงเดฟ เดฒเต‹เด—เดฟเด‚เด—เต เดฒเต†เดตเดฒเดฟเตฝ (10), เดšเดฟเดฒ เดฎเตเตปเด—เดฃเดจเด•เตพเด•เตเด•เดพเดฏเดฟ เดฎเดพเดคเตเดฐเด‚ เดจเต‡เดŸเดฟเดฏ เดชเต‹เดฏเดฟเตปเตเดฑเตเด•เตพ เดชเตเดฐเดคเดฟเดซเดฒเดฟเด•เตเด•เตเดจเตเดจเต. เดฒเต‹เด—เตเด•เดณเตเดŸเต† เดฎเตเด•เดณเดฟเดฒเต† เด‰เดฆเตเดงเดฐเดฃเดฟเดฏเดฟเตฝ, เดฒเต‹เด—เตเด•เดณเดฟเตฝ เดชเตเดฐเดคเดฟเดซเดฒเดฟเด•เตเด•เตเดจเตเดจ เดŽเดฒเตเดฒเดพ เดฎเตเตปเด—เดฃเดจเด•เตพเด•เตเด•เตเด‚ เดจเต‹เดกเตเด•เตพ เดธเดพเดงเดพเดฐเดฃเดฏเดฟเดฒเตเด‚ เดชเตเดฐเดถเตโ€Œเดจ เดทเต†เดกเตเดฏเต‚เดณเดฟเด‚เด—เดฟเดฒเตเด‚ เด’เดฐเต‡ เดŽเดฃเตเดฃเด‚ เดชเต‹เดฏเดฟเตปเตเดฑเตเด•เตพ เดธเตโ€Œเด•เต‹เตผ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดพเดฏเดฟ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด•เดพเดฃเดพเตป เด•เดดเดฟเดฏเตเด‚, เดŽเดจเตเดจเดพเตฝ เดชเตเดฐเดถเตโ€Œเดจ เด†เดธเต‚เดคเตเดฐเดฃเดคเตเดคเดฟเตปเตเดฑเต† เด•เดพเดฐเตเดฏเดคเตเดคเดฟเตฝ เด…เดจเตเดคเดฟเดฎ เดซเดฒเด‚ เดตเตเดฏเดคเตเดฏเดธเตเดคเดฎเดพเดฃเต. เด…เดคเดฟเดจเดพเตฝ, เดšเดฟเดฒ เดฎเตเตปเด—เดฃเดจเด•เตพเด•เตเด•เดพเดฏเดฟ, เดธเตโ€Œเด•เต‹เดฑเดฟเด‚เด—เต "เดคเดฟเดฐเดถเตเดถเต€เดฒเดฏเตเด•เตเด•เต เดชเดฟเดจเตเดจเดฟเตฝ" เดธเด‚เดญเดตเดฟเด•เตเด•เตเดจเตเดจเตเดตเต†เดจเตเดจเต เดจเดฎเตเด•เตเด•เต เดจเดฟเด—เดฎเดจเด‚ เดšเต†เดฏเตเดฏเดพเด‚, เด•เต‚เดŸเดพเดคเต† เดจเต‹เดกเดฟเดจเต เดเดคเต เดฎเตเตปเด—เดฃเดจเดฏเตเด•เตเด•เดพเดฃเต เดชเต‹เดฏเดฟเตปเตเดฑเตเด•เตพ เดฒเดญเดฟเดšเตเดšเดฟเดฒเตเดฒเต†เดจเตเดจเต เดฎเดจเดธเดฟเดฒเดพเด•เตเด•เดพเตป เดžเด™เตเด™เตพเด•เตเด•เต เดฎเดพเตผเด—เดฎเดฟเดฒเตเดฒ. เดˆ เดชเตเดฐเดถเตเดจเด‚ เดžเด™เตเด™เตพ เดตเดฟเดถเดฆเดฎเดพเดฏเดฟ เดตเดฟเดตเดฐเดฟเดšเตเดšเต เด‡เดทเตเดฏเต‚ เด—เดฟเดคเตเดคเดฌเดฟเดฒเต† เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเต เดถเต‡เด–เดฐเด‚. เดŽเดดเตเดคเตเดจเตเดจ เดธเดฎเดฏเดคเตเดคเต, Kubernetes v1.15,1.16, 1.17, XNUMX เด…เดชเตโ€Œเดกเต‡เดฑเตเดฑเตเด•เดณเดฟเตฝ เดฒเต‹เด—เดฟเด‚เด—เต เดชเดฟเดจเตเดคเตเดฃ เดšเต‡เตผเด•เตเด•เตเดฎเต†เดจเตเดจเต เดกเดตเดฒเดชเตเดชเตผเดฎเดพเดฐเดฟเตฝ เดจเดฟเดจเตเดจเต เด’เดฐเต เดชเตเดฐเดคเดฟเด•เดฐเดฃเด‚ เดฒเดญเดฟเดšเตเดšเต.
  2. เดเดคเต เดจเดฟเตผเดฆเตเดฆเดฟเดทเตเดŸ เดจเดฏเด™เตเด™เดณเดฟเดฒเดพเดฃเต kube-scheduler เดจเดฟเดฒเดตเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเดคเต†เดจเตเดจเต เดฎเดจเดธเดฟเดฒเดพเด•เตเด•เดพเตป เดŽเดณเตเดชเตเดชเดตเดดเดฟเดฏเดฟเดฒเตเดฒ. เด…เดคเต†, เด‡เตป เดชเตเดฐเดฎเดพเดฃเต€เด•เดฐเดฃเด‚ เดˆ เดฒเดฟเดธเตโ€Œเดฑเตเดฑเต เดฒเดฟเดธเตโ€Œเดฑเตเดฑเต เดšเต†เดฏเตโ€ŒเดคเดฟเดŸเตเดŸเตเดฃเตเดŸเต, เดŽเดจเตเดจเดพเตฝ เด“เดฐเต‹ เดฎเตเตปเด—เดฃเดจ เดจเดฏเด™เตเด™เตพเด•เตเด•เตเด‚ เดเดคเตŠเด•เตเด•เต† เดจเดฟเตผเดฆเดฟเดทเตเดŸ เดคเต‚เด•เตเด•เด™เตเด™เดณเดพเดฃเต เดจเตฝเด•เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเต เดŽเดจเตเดจเดคเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เดตเดฟเดตเดฐเด™เตเด™เตพ เด‡เดคเดฟเตฝ เด…เดŸเด™เตเด™เดฟเดฏเดฟเดŸเตเดŸเดฟเดฒเตเดฒ. เดกเดฟเดซเต‹เตพเดŸเตเดŸเต เด•เตเดฏเต‚เดฌเต-เดทเต†เดกเตเดฏเต‚เดณเดฑเดฟเตปเตเดฑเต† เดญเดพเดฐเด™เตเด™เตพ เด•เดพเดฃเดพเดจเต‹ เดจเดฏเด™เตเด™เตพ เดŽเดกเดฟเดฑเตเดฑเต เดšเต†เดฏเตเดฏเดพเดจเต‹ เดฎเดพเดคเตเดฐเดฎเต‡ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด•เดดเดฟเดฏเต‚ เดธเต‹เดดเตเดธเต เด•เต‹เดกเตเด•เตพ.

เด‡เดฎเต‡เดœเต เดฒเต‹เด•เตเด•เดพเดฒเดฟเดฑเตเดฑเดฟ เดชเตเดฐเดฏเต‹เดฑเดฟเดฑเตเดฑเดฟ เดชเต‹เดณเดฟเดธเดฟ เด…เดจเตเดธเดฐเดฟเดšเตเดšเต เด’เดฐเต เดจเต‹เดกเดฟเดจเต เดชเต‹เดฏเดฟเตปเตเดฑเตเด•เตพ เดฒเดญเดฟเดšเตเดšเดฟเดŸเตเดŸเดฟเดฒเตเดฒเต†เดจเตเดจเต เด’เดฐเดฟเด•เตเด•เตฝ เดฐเต‡เด–เดชเตเดชเต†เดŸเตเดคเตเดคเดพเตป เดžเด™เตเด™เตพเด•เตเด•เต เด•เดดเดฟเดžเตเดžเต เดŽเดจเตเดจเดคเต เดถเตเดฐเดฆเตเดงเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเดพเดฃเต, เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เด†เดตเดถเตเดฏเดฎเดพเดฏ เด‡เดฎเต‡เดœเต เด‡เดคเดฟเดจเด•เด‚ เด‰เดฃเตเดŸเต†เด™เตเด•เดฟเตฝ เด’เดฐเต เดจเต‹เดกเดฟเดจเต เด…เดตเดพเตผเดกเต เดจเตฝเด•เตเดจเตเดจเต. เด…เดคเดพเดฏเดคเต, เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตปเตเดฑเต† เด’เดฐเต เดชเตเดคเดฟเดฏ เดชเดคเดฟเดชเตเดชเต เดชเตเดฑเดคเตเดคเดฟเดฑเด•เตเด•เดฟเดฏ เดธเดฎเดฏเดคเตเดคเต, เด•เตเดฐเต‹เตบ เดŸเดพเดธเตโ€Œเด•เต เดฐเดฃเตเดŸเต เดจเต‹เดกเตเด•เดณเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดžเตเดžเต, เดกเต‹เด•เตเด•เตผ เดฐเดœเดฟเดธเตเดŸเตเดฐเดฟเดฏเดฟเตฝ เดจเดฟเดจเตเดจเต เด’เดฐเต เดชเตเดคเดฟเดฏ เดšเดฟเดคเตเดฐเด‚ เด…เดตเดฏเดฟเดฒเต‡เด•เตเด•เต เดกเต—เตบเดฒเต‹เดกเต เดšเต†เดฏเตเดคเต, เด…เด™เตเด™เดจเต† เดฐเดฃเตเดŸเต เดจเต‹เดกเตเด•เตพเด•เตเด•เต เดฎเต‚เดจเตเดจเดพเดฎเดคเตเดคเต‡เดคเดฟเดจเต† เด…เดชเต‡เด•เตเดทเดฟเดšเตเดšเต เด‰เดฏเตผเดจเตเดจ เด…เดจเตเดคเดฟเดฎ เดธเตเด•เต‹เตผ เดฒเดญเดฟเดšเตเดšเต. .

เดžเดพเตป เดฎเตเด•เดณเดฟเตฝ เดŽเดดเตเดคเดฟเดฏเดคเต เดชเต‹เดฒเต†, เดฒเต‹เด—เตเด•เดณเดฟเตฝ ImageLocality Priority เดจเดฏเดคเตเดคเดฟเตปเตเดฑเต† เดฎเต‚เดฒเตเดฏเดจเดฟเตผเดฃเตเดฃเดฏเดคเตเดคเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เดตเดฟเดตเดฐเด™เตเด™เตพ เดžเด™เตเด™เตพ เด•เดพเดฃเตเดจเตเดจเดฟเดฒเตเดฒ, เด…เดคเดฟเดจเดพเตฝ เดžเด™เตเด™เดณเตเดŸเต† เด…เดจเตเดฎเดพเดจเด‚ เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเดพเดฏเดฟ, เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตปเตเดฑเต† เดชเตเดคเดฟเดฏ เดชเดคเดฟเดชเตเดชเต เด‰เดณเตเดณ เดšเดฟเดคเตเดฐเด‚ เดžเด™เตเด™เตพ เดฎเต‚เดจเตเดจเดพเด‚ เดจเต‹เดกเดฟเดฒเต‡เด•เตเด•เต เด‡เดŸเตเดŸเต, เด…เดคเดฟเดจเตเดถเต‡เดทเด‚ เดทเต†เดกเตเดฏเต‚เดณเดฟเด‚เด—เต เดถเดฐเดฟเดฏเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดšเตเดšเต. . ImageLocalityPriority เดจเดฏเด‚ เด•เดพเดฐเดฃเด‚, เดทเต†เดกเตเดฏเต‚เดณเดฟเด‚เด—เต เดชเตเดฐเดถเตเดจเด‚ เดตเดณเดฐเต† เด…เดชเต‚เตผเดตเดฎเดพเดฏเดฟ เดฎเดพเดคเตเดฐเดฎเต‡ เดจเดฟเดฐเต€เด•เตเดทเดฟเด•เตเด•เดชเตเดชเต†เดŸเตเดŸเดฟเดŸเตเดŸเตเดณเตเดณเต‚; เดฎเดฟเด•เตเด•เดชเตเดชเต‹เดดเตเด‚ เด‡เดคเต เดฎเดฑเตเดฑเต†เดจเตเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เดฌเดจเตเดงเดชเตเดชเต†เดŸเตเดŸเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต. เดกเดฟเดซเต‹เตพเดŸเตเดŸเต เด•เตเดฏเต‚เดฌเต-เดทเต†เดกเตเดฏเต‚เดณเดฑเดฟเตปเตเดฑเต† เดฎเตเตปเด—เดฃเดจเด•เดณเตเดŸเต† เดชเดŸเตเดŸเดฟเด•เดฏเดฟเดฒเต† เด“เดฐเต‹ เดชเต‹เดณเดฟเดธเดฟเด•เดณเตเด‚ เดชเต‚เตผเดฃเตเดฃเดฎเดพเดฏเดฟ เดกเต€เดฌเด—เต เดšเต†เดฏเตเดฏเดพเตป เดžเด™เตเด™เตพเด•เตเด•เต เด•เดดเดฟเดฏเดพเดคเตเดคเดคเดฟเดจเดพเตฝ, เดชเต‹เดกเต เดทเต†เดกเตเดฏเต‚เดณเดฟเด‚เด—เต เดชเต‹เดณเดฟเดธเดฟเด•เดณเตเดŸเต† เดซเตเดฒเต†เด•เตเดธเดฟเดฌเดฟเตพ เดฎเดพเดจเต‡เดœเตโ€Œเดฎเต†เตปเตเดฑเต เดžเด™เตเด™เตพเด•เตเด•เต เด†เดตเดถเตเดฏเดฎเดพเดฏเดฟเดฐเตเดจเตเดจเต.

เดชเตเดฐเดถเตเดจ เดชเตเดฐเดธเตเดคเดพเดตเดจ

เดชเตเดฐเดถเตเดจเดคเตเดคเดฟเดจเตเดณเตเดณ เดชเดฐเดฟเดนเดพเดฐเด‚ เด•เดดเดฟเดฏเตเดจเตเดจเดคเตเดฐ เดตเตเดฏเด•เตเดคเดฎเดพเดฏเดฟเดฐเดฟเด•เตเด•เดฃเดฎเต†เดจเตเดจเต เดžเด™เตเด™เตพ เด†เด—เตเดฐเดนเดฟเดšเตเดšเต, เด…เดคเดพเดฏเดคเต, เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเดฟเตปเตเดฑเต† เดชเตเดฐเดงเดพเดจ เดธเตเดฅเดพเดชเดจเด™เตเด™เตพ (เด‡เดตเดฟเดŸเต† เดžเด™เตเด™เตพ เด…เตผเดคเตเดฅเดฎเดพเด•เตเด•เตเดจเตเดจเดคเต เดกเดฟเดซเต‹เตพเดŸเตเดŸเต เด•เตเดฏเต‚เดฌเต-เดทเต†เดกเตเดฏเต‚เดณเตผ) เดฎเดพเดฑเตเดฑเดฎเดฟเดฒเตเดฒเดพเดคเต† เดคเตเดŸเดฐเดฃเด‚. เด’เดฐเดฟเดŸเดคเตเดคเต เดชเตเดฐเดถเตโ€Œเดจเด‚ เดชเดฐเดฟเดนเดฐเดฟเดšเตเดšเต เดฎเดฑเตเดฑเตŠเดฐเดฟเดŸเดคเตเดคเต เดชเตเดฐเดถเตโ€Œเดจเด‚ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เดพเตป เดžเด™เตเด™เตพ เด†เด—เตเดฐเดนเดฟเดšเตเดšเดฟเดฒเตเดฒ. เด…เดคเดฟเดจเดพเตฝ, เดชเตเดฐเดถเตเดจเด‚ เดชเดฐเดฟเดนเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดฐเดฃเตเดŸเต เด“เดชเตเดทเดจเตเด•เดณเดฟเดฒเต‡เด•เตเด•เต เดžเด™เตเด™เตพ เดŽเดคเตเดคเดฟ, เด…เดคเต เดฒเต‡เด–เดจเดคเตเดคเดฟเตปเตเดฑเต† เด†เดฎเตเด–เดคเตเดคเดฟเตฝ เดชเตเดฐเด–เตเดฏเดพเดชเดฟเดšเตเดšเต - เด’เดฐเต เด…เดงเดฟเด• เดทเต†เดกเตเดฏเต‚เดณเตผ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเด• เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดจเดฟเด™เตเด™เดณเตเดŸเต‡เดคเต เดŽเดดเตเดคเตเด•. เด•เตเดฐเต‹เตบ เดŸเดพเดธเตโ€Œเด•เตเด•เตเด•เตพ เดทเต†เดกเตเดฏเต‚เตพ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดชเตเดฐเดงเดพเดจ เด†เดตเดถเตเดฏเด•เดค เดฎเต‚เดจเตเดจเต เดจเต‹เดกเตเด•เดณเดฟเดฒเตเดŸเดจเต€เดณเด‚ เดฒเต‹เดกเต เดคเตเดฒเตเดฏเดฎเดพเดฏเดฟ เดตเดฟเดคเดฐเดฃเด‚ เดšเต†เดฏเตเดฏเตเด• เดŽเดจเตเดจเดคเดพเดฃเต. เดจเดฟเดฒเดตเดฟเดฒเตเดณเตเดณ kube-เดทเต†เดกเตเดฏเต‚เดณเตผ เดจเดฏเด™เตเด™เดณเดพเตฝ เดˆ เด†เดตเดถเตเดฏเด•เดค เดคเตƒเดชเตเดคเดฟเดชเตเดชเต†เดŸเตเดคเตเดคเดพเตป เด•เดดเดฟเดฏเตเด‚, เด…เดคเดฟเดจเดพเตฝ เดžเด™เตเด™เดณเตเดŸเต† เดชเตเดฐเดถเตเดจเด‚ เดชเดฐเดฟเดนเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดจเดฟเด™เตเด™เดณเตเดŸเต† เดธเตเดตเดจเตเดคเด‚ เดทเต†เดกเตเดฏเต‚เดณเตผ เดŽเดดเตเดคเตเดจเตเดจเดคเดฟเตฝ เด…เตผเดคเตเดฅเดฎเดฟเดฒเตเดฒ.

เด’เดฐเต เด…เดงเดฟเด• เด•เตเดฏเต‚เดฌเต เดทเต†เดกเตเดฏเต‚เดณเตผ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเด‚ เดตเดฟเดจเตเดฏเดธเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดฎเตเดณเตเดณ เดจเดฟเตผเดฆเตเดฆเต‡เดถเด™เตเด™เตพ เดตเดฟเดตเดฐเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต เดชเตเดฐเดฎเดพเดฃเต€เด•เดฐเดฃเด‚. เดŽเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด‚, เด•เตเดฏเต‚เดฌเต-เดทเต†เดกเตเดฏเต‚เดณเตผ เดชเต‹เดฒเตเดณเตเดณ เด’เดฐเต เดจเดฟเตผเดฃเดพเดฏเด• เดธเต‡เดตเดจเดคเตเดคเดฟเตปเตเดฑเต† เดชเตเดฐเดตเตผเดคเตเดคเดจเดคเตเดคเดฟเดฒเต† เดชเดฟเดดเดตเต เดธเดนเดฟเดทเตเดฃเตเดค เด‰เดฑเดชเตเดชเดพเด•เตเด•เดพเตป เดตเดฟเดจเตเดฏเดพเดธ เดธเตเดฅเดพเดชเดจเด‚ เดชเดฐเตเดฏเดพเดชเตเดคเดฎเดฒเตเดฒเต†เดจเตเดจเต เดžเด™เตเด™เตพเด•เตเด•เต เดคเต‹เดจเตเดจเดฟ, เด…เดคเดฟเดจเดพเตฝ เด’เดฐเต เดชเตเดคเดฟเดฏ เด•เตเดฏเต‚เดฌเต-เดทเต†เดกเตเดฏเต‚เดณเดฑเดฟเดจเต† เด’เดฐเต เดธเตเดฑเตเดฑเดพเดฑเตเดฑเดฟเด•เต เดชเต‹เดกเดพเดฏเดฟ เดตเดฟเดจเตเดฏเดธเดฟเด•เตเด•เดพเตป เดžเด™เตเด™เตพ เดคเต€เดฐเตเดฎเดพเดจเดฟเดšเตเดšเต, เด…เดคเต เดจเต‡เดฐเดฟเดŸเตเดŸเต เดจเดฟเดฐเต€เด•เตเดทเดฟเด•เตเด•เดชเตเดชเต†เดŸเตเด‚. เด•เตเดฌเต†เดฒเต†เดฑเตเดฑเดฟเตปเตเดฑเต†. เด…เดคเดฟเดจเดพเตฝ, เดชเตเดคเดฟเดฏ เด•เตเดฏเต‚เดฌเต-เดทเต†เดกเตเดฏเต‚เดณเดฑเดฟเดจเดพเดฏเดฟ เดžเด™เตเด™เตพเด•เตเด•เต เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เด†เดตเดถเตเดฏเด•เดคเด•เตพ เด‰เดฃเตเดŸเต:

  1. เดŽเดฒเตเดฒเดพ เด•เตเดฒเดธเตเดฑเตเดฑเตผ เดฎเดพเดธเตเดฑเตเดฑเดฑเตเด•เดณเดฟเดฒเตเด‚ เดˆ เดธเต‡เดตเดจเด‚ เด’เดฐเต เดธเตเดฑเตเดฑเดพเดฑเตเดฑเดฟเด•เต เดชเต‹เดกเดพเดฏเดฟ เดตเดฟเดจเตเดฏเดธเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เดฃเด‚
  2. เด•เตเดฏเต‚เดฌเต-เดทเต†เดกเตเดฏเต‚เดณเดฑเตเดณเตเดณ เดธเดœเต€เดต เดชเต‹เดกเต เดฒเดญเตเดฏเดฎเดฒเตเดฒเต†เด™เตเด•เดฟเตฝ, เดคเต†เดฑเตเดฑเต เดธเดนเดฟเดทเตเดฃเตเดค เดจเตฝเด•เดฃเด‚
  3. เด†เดธเต‚เดคเตเดฐเดฃเด‚ เดšเต†เดฏเตเดฏเตเดฎเตเดชเต‹เตพ เดชเตเดฐเดงเดพเดจ เดฎเตเตปเด—เดฃเดจ เดจเต‹เดกเดฟเตฝ เดฒเดญเตเดฏเดฎเดพเดฏ เด‰เดฑเดตเดฟเดŸเด™เตเด™เดณเตเดŸเต† เดŽเดฃเตเดฃเดฎเดพเดฏเดฟเดฐเดฟเด•เตเด•เดฃเด‚ (LastRequestedPriority)

เดชเดฐเดฟเดนเดพเดฐเด‚ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เตฝ

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. เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เดซเดฏเดฒเดฟเตปเตเดฑเต† เด•เต‹เตบเดซเดฟเด—เตผ เดšเต†เดฏเตโ€Œเดค เดฎเต—เดฃเตเดŸเดฟเด‚เด—เต (เดทเต†เดกเตเดฏเต‚เดณเตผ-เด•เดธเตเดฑเตเดฑเด‚. เด•เต‹เตบเดซเต), เดนเต‹เดธเตเดฑเตเดฑเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดชเต‹เดณเดฟเดธเดฟ เดซเดฏเดฒเตเด‚ (เดทเต†เดกเตเดฏเต‚เดณเตผ-เด•เดธเตเดฑเตเดฑเด‚-เดชเตŠเดณเดฟเดธเดฟ-config.json) เดทเต†เดกเตเดฏเต‚เตพ เดšเต†เดฏเตเดฏเตเดจเตเดจเต

เดžเด™เตเด™เดณเตเดŸเต† kube-เดทเต†เดกเตเดฏเต‚เดณเดฑเดฟเดจเต เดกเดฟเดซเต‹เตพเดŸเตเดŸเต เด…เดตเด•เดพเดถเด™เตเด™เตพเด•เตเด•เต เดธเดฎเดพเดจเดฎเดพเดฏ เด…เดตเด•เดพเดถเด™เตเด™เตพ เด†เดตเดถเตเดฏเดฎเดพเดฃเต†เดจเตเดจเต เดฎเดฑเด•เตเด•เดฐเตเดคเต. เด…เดคเดฟเตปเตเดฑเต† เด•เตเดฒเดธเตเดฑเตเดฑเตผ เดฑเต‹เตพ เดŽเดกเดฟเดฑเตเดฑเต เดšเต†เดฏเตเดฏเตเด•:

kubectl edit clusterrole system:kube-scheduler

...
   resourceNames:
    - kube-scheduler
    - kube-scheduler-cron
...

เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เดซเดฏเดฒเดฟเดฒเตเด‚ เดทเต†เดกเตเดฏเต‚เดณเดฟเด‚เด—เต เดชเต‹เดณเดฟเดธเดฟ เดซเดฏเดฒเดฟเดฒเตเด‚ เดŽเดจเตเดคเดพเดฃเต เด…เดŸเด™เตเด™เดฟเดฏเดฟเดฐเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเต†เดจเตเดจเต เด‡เดชเตเดชเต‹เตพ เดจเดฎเตเด•เตเด•เต เดธเด‚เดธเดพเดฐเดฟเด•เตเด•เดพเด‚:

  • เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เดซเดฏเตฝ (scheduler-custom.conf)
    เดกเดฟเดซเต‹เตพเดŸเตเดŸเต kube-เดทเต†เดกเตเดฏเต‚เดณเตผ เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เดฒเดญเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต, เดจเดฟเด™เตเด™เตพ เดชเดฐเดพเดฎเต€เดฑเตเดฑเตผ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดฃเด‚ --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) เดžเด™เตเด™เดณเตเดŸเต† เด•เตเดฏเต‚เดฌเต-เดทเต†เดกเตเดฏเต‚เดณเดฑเตเดŸเต† เดชเต‹เดกเตเด•เตพเด•เตเด•เดฟเดŸเดฏเดฟเตฝ เด’เดฐเต เดจเต‡เดคเดพเดตเดฟเดจเต† (เดฎเดพเดธเตเดฑเตเดฑเตผ) เดคเดฟเดฐเดžเตเดžเต†เดŸเตเด•เตเด•เตเดจเตเดจ เดชเตเดฐเด•เตเดฐเดฟเดฏ เด…เดตเดฏเตโ€Œเด•เตเด•เดพเดฏเดฟ เด’เดฐเตŠเดฑเตเดฑ เดŽเตปเดกเตโ€Œเดชเต‹เดฏเดฟเตปเตเดฑเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต (resourceLockkube-scheduler-cron เดŽเดจเตเดจ เดชเต‡เดฐเตlockObjectNameเด•เตเดฏเต‚เดฌเต-เดธเดฟเดธเตเดฑเตเดฑเด‚ เดจเต†เดฏเดฟเด‚เดธเตเดชเต‡เดธเดฟเตฝ (lockObjectNamespace). เดชเตเดฐเดงเดพเดจ เด˜เดŸเด•เด™เตเด™เดณเตเดŸเต† (เด•เตเดฏเต‚เดฌเต-เดทเต†เดกเตเดฏเต‚เดณเตผ เด‰เตพเดชเตเดชเต†เดŸเต†) เด‰เดฏเตผเดจเตเดจ เดฒเดญเตเดฏเดค Kubernetes เด‰เดฑเดชเตเดชเดพเด•เตเด•เตเดจเตเดจเดคเต เดŽเด™เตเด™เดจเต†เดฏเต†เดจเตเดจเต เด•เดฃเตเดŸเต†เดคเตเดคเดพเดจเดพเด•เตเด‚ เดฒเต‡เด–เดจเด‚.

  • เดชเต‹เดณเดฟเดธเดฟ เดซเดฏเตฝ เดทเต†เดกเตเดฏเต‚เตพ เดšเต†เดฏเตเดฏเตเดจเตเดจเต (เดทเต†เดกเตเดฏเต‚เดณเตผ-เด•เดธเตเดฑเตเดฑเด‚-เดชเตŠเดณเดฟเดธเดฟ-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 เด†เดฆเตเดฏเด‚ GeneralPredicates เดชเต‹เดณเดฟเดธเดฟ (PodFitsResources, PodFitsHostPorts, HostName, MatchNodeSelector เดชเต‹เดณเดฟเดธเดฟเด•เดณเตเดŸเต† เด’เดฐเต เด•เต‚เดŸเตเดŸเด‚ เด‰เตพเดชเตเดชเต†เดŸเตเดจเตเดจ) เด…เดจเตเดธเดฐเดฟเดšเตเดšเต เด’เดฐเต เดชเต‹เดกเต เดทเต†เดกเตเดฏเต‚เตพ เดšเต†เดฏเตเดฏเดพเตป เด•เดดเดฟเดฏเตเดจเตเดจ เดจเต‹เดกเตเด•เดณเตเดŸเต† เด’เดฐเต เดฒเดฟเดธเตเดฑเตเดฑเต เดธเดฎเดพเดนเดฐเดฟเด•เตเด•เตเดจเตเดจเต. เดคเตเดŸเตผเดจเตเดจเต เดฎเตเตปเด—เดฃเดจเดพ เดถเตเดฐเต‡เดฃเดฟเดฏเดฟเดฒเต† เดจเดฏเด™เตเด™เดณเตเดŸเต† เด•เต‚เดŸเตเดŸเดคเตเดคเดฟเดจเต เด…เดจเตเดธเตƒเดคเดฎเดพเดฏเดฟ เด“เดฐเต‹ เดจเต‹เดกเตเด‚ เดตเดฟเดฒเดฏเดฟเดฐเตเดคเตเดคเดชเตเดชเต†เดŸเตเดจเตเดจเต. เดžเด™เตเด™เดณเตเดŸเต† เดŸเดพเดธเตเด•เตเด•เดฟเตปเตเดฑเต† เดตเตเดฏเดตเดธเตเดฅเด•เตพ เดจเดฟเดฑเดตเต‡เดฑเตเดฑเตเดจเตเดจเดคเดฟเดจเต, เด…เดคเตเดคเดฐเด‚ เด’เดฐเต เด•เต‚เดŸเตเดŸเด‚ เดจเดฏเด™เตเด™เดณเดพเดฃเต เดเดฑเตเดฑเดตเตเด‚ เดฎเดฟเด•เดšเตเดš เดชเดฐเดฟเดนเดพเดฐเดฎเต†เดจเตเดจเต เดžเด™เตเด™เตพ เด•เดฐเตเดคเดฟ. เดตเดฟเดถเดฆเดฎเดพเดฏ เดตเดฟเดตเดฐเดฃเด™เตเด™เดณเตเดณเตเดณ เด’เดฐเต เด•เต‚เดŸเตเดŸเด‚ เดจเดฏเด™เตเด™เตพ เดฒเดญเตเดฏเดฎเดพเดฃเต†เดจเตเดจเต เดžเดพเตป เดจเดฟเด™เตเด™เดณเต† เด“เตผเดฎเตเดฎเดฟเดชเตเดชเดฟเด•เตเด•เดŸเตเดŸเต† เดชเตเดฐเดฎเดพเดฃเต€เด•เดฐเดฃเด‚. เดจเดฟเด™เตเด™เดณเตเดŸเต† เดŸเดพเดธเตโ€Œเด•เต เดชเต‚เตผเดคเตเดคเดฟเดฏเดพเด•เตเด•เดพเตป, เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดš เดชเต‹เดณเดฟเดธเดฟเด•เดณเตเดŸเต† เดธเต†เดฑเตเดฑเต เดฎเดพเดฑเตเดฑเตเด•เดฏเตเด‚ เด…เดตเดฏเตเด•เตเด•เต เด‰เดšเดฟเดคเดฎเดพเดฏ เดคเต‚เด•เตเด•เด™เตเด™เตพ เดจเตฝเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเดพเด‚.

เด…เดงเตเดฏเดพเดฏเดคเตเดคเดฟเตปเตเดฑเต† เดคเตเดŸเด•เตเด•เดคเตเดคเดฟเตฝ เดžเด™เตเด™เตพ เดธเตƒเดทเตเดŸเดฟเดšเตเดš เดชเตเดคเดฟเดฏ kube-เดทเต†เดกเตเดฏเต‚เดณเดฑเดฟเตปเตเดฑเต† เดฎเดพเดจเดฟเดซเต†เดธเตเดฑเตเดฑเดฟเดจเต†, 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:{}]'

เด‡เดชเตเดชเต‹เตพ เด…เดตเดถเต‡เดทเดฟเด•เตเด•เตเดจเตเดจเดคเต, เดžเด™เตเด™เดณเตเดŸเต† CronJob-เตปเตเดฑเต† เดธเตเดชเต†เดธเดฟเดซเดฟเด•เตเด•เต‡เดทเดจเดฟเตฝ เด…เดคเดฟเตปเตเดฑเต† เดชเต‹เดกเตเด•เตพ เดทเต†เดกเตเดฏเต‚เตพ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดŽเดฒเตเดฒเดพ เด…เดญเตเดฏเตผเดคเตเดฅเดจเด•เดณเตเด‚ เดžเด™เตเด™เดณเตเดŸเต† เดชเตเดคเดฟเดฏ kube-เดทเต†เดกเตเดฏเต‚เดณเตผ เดชเตเดฐเต‹เดธเดธเตเดธเต เดšเต†เดฏเตเดฏเดฃเดฎเต†เดจเตเดจเต เดธเต‚เดšเดฟเดชเตเดชเดฟเด•เตเด•เตเด• เดฎเดพเดคเตเดฐเดฎเดพเดฃเต:

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

เดคเต€เดฐเตเดฎเดพเดจเด‚

เด†เดคเตเดฏเดจเตเดคเดฟเด•เดฎเดพเดฏเดฟ, เด•เตเดฏเตเดฌเต†เดฒเต†เดฑเตเดฑเต เดจเต‡เดฐเดฟเดŸเตเดŸเต เดจเดฟเดฐเต€เด•เตเดทเดฟเด•เตเด•เตเดจเตเดจ เดคเดจเดคเดพเดฏ เดทเต†เดกเตเดฏเต‚เดณเดฟเด‚เด—เต เดจเดฏเด™เตเด™เดณเตเดณเตเดณ เด’เดฐเต เด…เดงเดฟเด• เด•เตเดฏเต‚เดฌเต-เดทเต†เดกเตเดฏเต‚เดณเตผ เดžเด™เตเด™เตพเด•เตเด•เต เดฒเดญเดฟเดšเตเดšเต. เด•เต‚เดŸเดพเดคเต†, เดšเดฟเดฒ เด•เดพเดฐเดฃเด™เตเด™เดณเดพเตฝ เดชเดดเดฏ เดจเต‡เดคเดพเดตเต เดฒเดญเตเดฏเดฎเดฒเตเดฒเดพเดคเตเดค เดธเดพเดนเดšเดฐเตเดฏเดคเตเดคเดฟเตฝ, เดžเด™เตเด™เดณเตเดŸเต† เด•เตเดฌเต‡ เดทเต†เดกเตเดฏเต‚เดณเดฑเตเดŸเต† เดชเต‹เดกเตเด•เตพเด•เตเด•เดฟเดŸเดฏเดฟเตฝ เดžเด™เตเด™เตพ เด’เดฐเต เดชเตเดคเดฟเดฏ เดจเต‡เดคเดพเดตเดฟเตปเตเดฑเต† เดคเดฟเดฐเดžเตเดžเต†เดŸเตเดชเตเดชเต เดธเดœเตเดœเต€เด•เดฐเดฟเดšเตเดšเดฟเดŸเตเดŸเตเดฃเตเดŸเต.

เดธเตเดฅเดฟเดฐเดฎเดพเดฏ เด•เตเดฏเต‚เดฌเต-เดทเต†เดกเตเดฏเต‚เดณเตผ เดตเดดเดฟ เดธเตเดฅเดฟเดฐเดฎเดพเดฏ เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเด•เดณเตเด‚ เดธเต‡เดตเดจเด™เตเด™เดณเตเด‚ เดทเต†เดกเตเดฏเต‚เตพ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต เดคเตเดŸเดฐเตเดจเตเดจเต, เด•เต‚เดŸเดพเดคเต† เดŽเดฒเตเดฒเดพ เด•เตเดฐเต‹เตบ เดŸเดพเดธเตโ€Œเด•เตเด•เตเด•เดณเตเด‚ เดชเต‚เตผเดฃเตเดฃเดฎเดพเดฏเตเด‚ เดชเตเดคเดฟเดฏเดคเดฟเดฒเต‡เด•เตเด•เต เดฎเดพเดฑเตเดฑเตเด•เดฏเตเด‚ เดšเต†เดฏเตโ€Œเดคเต. เด•เตเดฐเต‹เตบ เดŸเดพเดธเตโ€Œเด•เตเด•เตเด•เตพ เดธเตƒเดทเตโ€ŒเดŸเดฟเดšเตเดš เดฒเต‹เดกเต เด‡เดชเตเดชเต‹เตพ เดŽเดฒเตเดฒเดพ เดจเต‹เดกเตเด•เดณเดฟเดฒเตเด‚ เดคเตเดฒเตเดฏเดฎเดพเดฏเดฟ เดตเดฟเดคเดฐเดฃเด‚ เดšเต†เดฏเตเดฏเดชเตเดชเต†เดŸเตเดจเตเดจเต. เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเดฟเตปเตเดฑเต† เดชเตเดฐเดงเดพเดจ เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเด•เดณเตเดŸเต† เด…เดคเต‡ เดจเต‹เดกเตเด•เดณเดฟเดฒเดพเดฃเต เดฎเดฟเด•เตเด• เด•เตเดฐเต‹เตบ เดŸเดพเดธเตเด•เตเด•เตเด•เดณเตเด‚ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เตเดจเตเดจเดคเต เดŽเดจเตเดจเดคเต เด•เดฃเด•เตเด•เดฟเดฒเต†เดŸเตเด•เตเด•เตเดฎเตเดชเต‹เตพ, เด‡เดคเต เดตเดฟเดญเดตเด™เตเด™เดณเตเดŸเต† เด…เดญเดพเดตเด‚ เดฎเต‚เดฒเด‚ เดชเต‹เดกเตเด•เตพ เดšเดฒเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เด…เดชเด•เดŸเดธเดพเดงเตเดฏเดค เด—เดฃเตเดฏเดฎเดพเดฏเดฟ เด•เตเดฑเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต. เด…เดงเดฟเด• เด•เตเดฏเต‚เดฌเต-เดทเต†เดกเตเดฏเต‚เดณเตผ เด…เดตเดคเดฐเดฟเดชเตเดชเดฟเดšเตเดš เดถเต‡เดทเด‚, เด•เตเดฐเต‹เตบ เดŸเดพเดธเตโ€Œเด•เตเด•เตเด•เดณเตเดŸเต† เด…เดธเดฎเดฎเดพเดฏ เดทเต†เดกเตเดฏเต‚เดณเดฟเด‚เด—เตเดฎเดพเดฏเดฟ เดฌเดจเตเดงเดชเตเดชเต†เดŸเตเดŸ เดชเตเดฐเดถเตโ€Œเดจเด™เตเด™เตพ เดฎเต‡เดฒเดฟเตฝ เด‰เดฏเตผเดจเตเดจเตเดตเดจเตเดจเดฟเดฒเตเดฒ.

เดžเด™เตเด™เดณเตเดŸเต† เดฌเตเดฒเต‹เด—เดฟเดฒเต† เดฎเดฑเตเดฑเต เดฒเต‡เด–เดจเด™เตเด™เดณเตเด‚ เดตเดพเดฏเดฟเด•เตเด•เตเด•:

เด…เดตเดฒเด‚เดฌเด‚: www.habr.com

เด’เดฐเต เด…เดญเดฟเดชเตเดฐเดพเดฏเด‚ เดšเต‡เตผเด•เตเด•เตเด•