AWS-เตฝ Kubernetes เด•เตเดฒเต—เดกเต เดšเต†เดฒเดตเตเด•เตพ เดฒเดพเดญเดฟเด•เตเด•เตเด•

เด•เต‹เดดเตโ€Œเดธเต เดคเตเดŸเด™เตเด™เตเดจเตเดจเดคเดฟเดจเตเดฑเต† เดคเดฒเต‡เดจเตเดจเต เดคเดฏเตเดฏเดพเดฑเดพเด•เตเด•เดฟเดฏเดคเดพเดฃเต เดฒเต‡เด–เดจเดคเตเดคเดฟเดจเตเดฑเต† เดชเดฐเดฟเดญเดพเดท "เด•เตเดฌเตผเดจเต†เดฑเตเดฑเตเด•เดณเต† เด…เดŸเดฟเดธเตเดฅเดพเดจเดฎเดพเด•เตเด•เดฟเดฏเตเดณเตเดณ เด‡เตปเดซเตเดฐเดพเดธเตเดŸเตเดฐเด•เตเดšเตผ เดชเตเดฒเดพเดฑเตเดฑเตเดซเต‹เด‚".

AWS-เตฝ Kubernetes เด•เตเดฒเต—เดกเต เดšเต†เดฒเดตเตเด•เตพ เดฒเดพเดญเดฟเด•เตเด•เตเด•

เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเตเดฎเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ เด•เตเดฒเต—เดกเต เดšเต†เดฒเดตเต เดŽเด™เตเด™เดจเต† เดฒเดพเดญเดฟเด•เตเด•เดพเด‚? เดถเดฐเดฟเดฏเดพเดฏ เด’เดฐเต เดชเดฐเดฟเดนเดพเดฐเดตเตเดฎเดฟเดฒเตเดฒ, เดŽเดจเตเดจเดพเตฝ เดจเดฟเด™เตเด™เดณเตเดŸเต† เด‰เดฑเดตเดฟเดŸเด™เตเด™เตพ เด•เต‚เดŸเตเดคเตฝ เดซเดฒเดชเตเดฐเดฆเดฎเดพเดฏเดฟ เด•เตˆเด•เดพเดฐเตเดฏเด‚ เดšเต†เดฏเตเดฏเดพเดจเตเด‚ เดจเดฟเด™เตเด™เดณเตเดŸเต† เด•เตเดฒเต—เดกเต เด•เดฎเตเดชเตเดฏเต‚เดŸเตเดŸเดฟเด‚เด—เต เดšเต†เดฒเดตเต เด•เตเดฑเดฏเตเด•เตเด•เดพเดจเตเด‚ เดธเดนเดพเดฏเดฟเด•เตเด•เตเดจเตเดจ เดจเดฟเดฐเดตเดงเดฟ เดŸเต‚เดณเตเด•เตพ เดˆ เดฒเต‡เด–เดจเด‚ เดตเดฟเดตเดฐเดฟเด•เตเด•เตเดจเตเดจเต.

AWS-เดจเดพเดฏเดฟ เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเต เดฎเดจเดธเตเดธเดฟเตฝ เดตเต†เดšเตเดšเดพเดฃเต เดžเดพเตป เดˆ เดฒเต‡เด–เดจเด‚ เดŽเดดเตเดคเดฟเดฏเดคเต, เดŽเดจเตเดจเดพเตฝ เดฎเดฑเตเดฑเต เด•เตเดฒเต—เดกเต เดฆเดพเดคเดพเด•เตเด•เตพเด•เตเด•เตเด‚ เด‡เดคเต เดฌเดพเดงเด•เดฎเดพเด•เตเด‚ (เดเดคเดพเดฃเตเดŸเต). เดจเดฟเด™เตเด™เดณเตเดŸเต† เด•เตเดฒเดธเตเดฑเตเดฑเตผ(เด•เตพ) เด‡เดคเดฟเดจเด•เด‚ เดธเตเดตเดฏเดฎเต‡เดต เดธเตโ€Œเด•เต†เดฏเดฟเดฒเดฟเด‚เด—เต เด•เตเดฐเดฎเต€เด•เดฐเดฟเดšเตเดšเดฟเดŸเตเดŸเตเดฃเตเดŸเต†เดจเตเดจเต เดžเดพเตป เด…เดจเตเดฎเดพเดจเดฟเด•เตเด•เตเดจเตเดจเต (เด•เตเดฒเดธเตเดฑเตเดฑเตผ-เด“เดŸเตเดŸเต‹เดธเตเด•เต†เดฏเดฟเดฒเตผ). เด‰เดฑเดตเดฟเดŸเด™เตเด™เตพ เดจเต€เด•เตเด•เด‚ เดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚ เดจเดฟเด™เตเด™เดณเตเดŸเต† เดตเดฟเดจเตเดฏเดพเดธเด‚ เด•เตเดฑเดฏเตเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต เดจเดฟเด™เตเด™เดณเตเดŸเต† เดตเตผเด•เตเด•เตผ เดจเต‹เดกเตเด•เดณเตเดŸเต† (EC2 เดธเด‚เดญเดตเด™เตเด™เตพ) เด•เตเดฑเดฏเตเด•เตเด•เตเด•เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ เดฎเดพเดคเตเดฐเดฎเต‡ เดจเดฟเด™เตเด™เดณเตเดŸเต† เดชเดฃเด‚ เดฒเดพเดญเดฟเด•เตเด•เต‚.

เดˆ เดฒเต‡เด–เดจเด‚ เด‰เตพเดชเตเดชเต†เดŸเตเด‚:

  • เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเดคเตเดค เดตเดฟเดญเดตเด™เตเด™เตพ เดตเตƒเดคเตเดคเดฟเดฏเดพเด•เตเด•เตเดจเตเดจเต (เด•เตเดฌเต‡-เดœเดพเดจเดฟเดฑเตเดฑเตผ)
  • เดœเต‹เดฒเดฟ เดšเต†เดฏเตเดฏเดพเดคเตเดค เดธเดฎเดฏเด™เตเด™เดณเดฟเตฝ เดธเตเด•เต†เดฏเดฟเดฒเดฟเด‚เด—เต เด•เตเดฑเดฏเตเด•เตเด•เตเด• (kube-downscaler)
  • เดนเต‹เดฑเดฟเดธเต‹เดฃเตเดŸเตฝ เด“เดŸเตเดŸเต‹เดธเตโ€Œเด•เต‡เดฒเดฟเด‚เด—เต (HPA) เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต
  • เด…เดฎเดฟเดคเดฎเดพเดฏ เดฑเดฟเดธเตผเดตเต‡เดทเตป เด•เตเดฑเดฏเตเด•เตเด•เตฝ (kube-resource-report, VPA)
  • เดธเตเดชเต‹เดŸเตเดŸเต เดธเด‚เดญเดตเด™เตเด™เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต

เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเดคเตเดค เดตเดฟเดญเดตเด™เตเด™เตพ เดตเตƒเดคเตเดคเดฟเดฏเดพเด•เตเด•เตเดจเตเดจเต

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

AWS-เตฝ Kubernetes เด•เตเดฒเต—เดกเต เดšเต†เดฒเดตเตเด•เตพ เดฒเดพเดญเดฟเด•เตเด•เตเด•

(เดนเต†เดจเตเดจเดฟเด‚เด—เต เดœเต‡เด•เตเด•เดฌเตเดธเต:
Zhiza:
(เด‰เดฆเตเดงเดฐเดฃเดฟเด•เตพ) เด•เต‹เดฑเดฟ เด•เตเดตเดฟเตป:
เดฎเดฟเดฅเตเดฏเดพเดงเดพเดฐเดฃ: เดจเดฟเด™เตเด™เดณเตเดŸเต† AWS เด…เด•เตเด•เต—เดฃเตเดŸเต, เดจเดฟเด™เตเด™เตพเด•เตเด•เตเดณเตเดณ เด‰เดชเดฏเต‹เด•เตเดคเดพเด•เตเด•เดณเตเดŸเต† เดŽเดฃเตเดฃเดคเตเดคเดฟเดจเตเดฑเต† เดชเตเดฐเดตเตผเดคเตเดคเดจเดฎเดพเดฃเต.
เดตเดธเตโ€Œเดคเตเดค: เดจเดฟเด™เตเด™เดณเตเดŸเต† เดŽโ€ŒเดกเดฌเตเดฒเตเดฏเตเดŽเดธเต เดธเตโ€Œเด•เต‹เตผ เดจเดฟเด™เตเด™เตพเด•เตเด•เตเดณเตเดณ เดŽเดžเตเดšเดฟเดจเต€เดฏเตผเดฎเดพเดฐเตเดŸเต† เดŽเดฃเตเดฃเดคเตเดคเดฟเดจเตเดฑเต† เดชเตเดฐเดตเตผเดคเตเดคเดจเดฎเดพเดฃเต.

เด‡เดตเดพเตป เด•เตเตผเดจเต‹เดธเต‹เดตเต (เดชเตเดฐเดคเดฟเด•เดฐเดฃเดคเตเดคเดฟเตฝ):
เดฏเดฅเดพเตผเดคเตเดฅ เดตเดธเตโ€Œเดคเตเดค: เดจเดฟเด™เตเด™เดณเตเดŸเต† AWS เดธเตโ€Œเด•เต‹เตผ เดŽเดจเตเดจเดคเต เดจเดฟเด™เตเด™เตพ เด…เดชเตเดฐเดพเดชเตโ€Œเดคเดฎเดพเด•เตเด•เดพเตป/เด‡เดฒเตเดฒเดพเดคเดพเด•เตเด•เดพเตป เดฎเดฑเดจเตเดจ เด•เดพเดฐเตเดฏเด™เตเด™เดณเตเดŸเต† เดŽเดฃเตเดฃเดฎเดพเดฃเต.)

เด•เตเดฌเต†เตผเดจเต†เดฑเตเดฑเดธเต เด•เดพเดตเตฝเด•เตเด•เดพเดฐเตป (kube-janitor) เดจเดฟเด™เตเด™เดณเตเดŸเต† เด•เตเดฒเดธเตเดฑเตเดฑเตผ เดตเตƒเดคเตเดคเดฟเดฏเดพเด•เตเด•เดพเตป เดธเดนเดพเดฏเดฟเด•เตเด•เตเดจเตเดจเต. เดœเดพเดจเดฟเดฑเตเดฑเตผ เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เด†เด—เต‹เดณเดตเตเด‚ เดชเตเดฐเดพเดฆเต‡เดถเดฟเด•เดตเตเดฎเดพเดฏ เด‰เดชเดฏเต‹เด—เดคเตเดคเดฟเดจเต เด…เดฏเดตเตเดณเตเดณเดคเดพเดฃเต:

  • เด•เตเดฒเดธเตเดฑเตเดฑเตผ-เดตเตˆเดกเต เดจเดฟเดฏเดฎเด™เตเด™เตพเด•เตเด•เต เดชเดฟเด†เตผ/เดŸเต†เดธเตเดฑเตเดฑเต เดตเดฟเดจเตเดฏเดพเดธเด™เตเด™เตพเด•เตเด•เดพเดฏเดฟ เดชเดฐเดฎเดพเดตเดงเดฟ เดธเดฎเดฏเด‚-เดŸเต-เดฒเตˆเดตเต (เดŸเดฟเดŸเดฟเดŽเตฝ) เดจเดฟเตผเดตเดšเดฟเด•เตเด•เดพเดจเดพเด•เตเด‚.
  • 7 เดฆเดฟเดตเดธเดคเตเดคเดฟเดจเต เดถเต‡เดทเด‚ เดธเตเดชเตˆเด•เตเด•เต/เดชเตเดฐเต‹เดŸเตเดŸเต‹เดŸเตˆเดชเตเดชเต เดธเตเดตเดฏเดฎเต‡เดต เดจเต€เด•เตเด•เด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเดพเดฏเดฟ, เดตเตเดฏเด•เตเดคเดฟเด—เดค เด‰เดฑเดตเดฟเดŸเด™เตเด™เตพ เดœเดพเดจเดฟเดฑเตเดฑเตผ/เดŸเดฟเดŸเดฟเดŽเตฝ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดตเตเดฏเดพเด–เตเดฏเดพเดจเดฟเด•เตเด•เดพเด‚.

เดชเตŠเดคเต เดจเดฟเดฏเดฎเด™เตเด™เตพ YAML เดซเดฏเดฒเดฟเตฝ เดจเดฟเตผเดตเดšเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต. เด…เดคเดฟเดจเตเดฑเต† เดชเดพเดค เดชเดฐเดพเดฎเต€เดฑเตเดฑเดฑเดฟเดฒเต‚เดŸเต† เด•เดŸเดจเตเดจเตเดชเต‹เด•เตเดจเตเดจเต --rules-file เด•เตเดฌเต‡-เดœเดพเดจเดฟเดฑเตเดฑเดฑเดฟเตฝ. เดŽเดฒเตเดฒเดพ เดจเต†เดฏเดฟเด‚เดธเตเดชเต‡เดธเตเด•เดณเตเด‚ เดจเต€เด•เตเด•เด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เด’เดฐเต เด‰เดฆเดพเดนเดฐเดฃเด‚ เด‡เดตเดฟเดŸเต†เดฏเตเดฃเตเดŸเต -pr- เดฐเดฃเตเดŸเต เดฆเดฟเดตเดธเดคเตเดคเดฟเดจเต เดถเต‡เดทเด‚ เดชเต‡เดฐเดฟเตฝ:

- id: cleanup-resources-from-pull-requests
  resources:
    - namespaces
  jmespath: "contains(metadata.name, '-pr-')"
  ttl: 2d

2020-เดฒเต† เดŽเดฒเตเดฒเดพ เดชเตเดคเดฟเดฏ เดกเดฟเดชเตเดฒเต‹เดฏเตโ€Œเดฎเต†เดจเตเดฑเตเด•เตพเด•เตเด•เตเด‚/เดธเตเดฑเตเดฑเต‡เดฑเตเดฑเตโ€Œเดซเตเตพเดธเต†เดฑเตเดฑเตเด•เตพเด•เตเด•เตเดฎเดพเดฏเดฟ เดตเดฟเดจเตเดฏเดพเดธเดคเตเดคเดฟเดฒเตเด‚ เดธเตเดฑเตเดฑเต‡เดฑเตเดฑเตเดซเตเตพเดธเต†เดฑเตเดฑเต เดชเต‹เดกเตเด•เดณเดฟเดฒเตเด‚ เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เดฒเต‡เดฌเดฒเดฟเดจเตเดฑเต† เด‰เดชเดฏเต‹เด—เด‚ เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เด‰เดฆเดพเดนเดฐเดฃเด‚ เดจเดฟเดฏเดจเตเดคเตเดฐเดฟเด•เตเด•เตเดจเตเดจเต, เดŽเดจเตเดจเดพเตฝ เด…เดคเต‡ เดธเดฎเดฏเด‚ เดˆ เดฒเต‡เดฌเตฝ เด‡เดฒเตเดฒเดพเดคเต† เด’เดฐเดพเดดเตเดšเดคเตเดคเต‡เด•เตเด•เต เดŸเต†เดธเตเดฑเตเดฑเตเด•เตพ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เดพเตป เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจเต:

- id: require-application-label
  # ัƒะดะฐะปะธั‚ัŒ deployments ะธ statefulsets ะฑะตะท ะผะตั‚ะบะธ "application"
  resources:
    - deployments
    - statefulsets
  # ัะผ. http://jmespath.org/specification.html
  jmespath: "!(spec.template.metadata.labels.application) && metadata.creationTimestamp > '2020-01-01'"
  ttl: 7d

เด•เตเดฏเต‚เดฌเต-เดœเดพเดจเดฟเดฑเตเดฑเตผ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต เด•เตเดฒเดธเตเดฑเตเดฑเดฑเดฟเตฝ 30 เดฎเดฟเดจเดฟเดฑเตเดฑเต เดธเดฎเดฏ เดชเดฐเดฟเดฎเดฟเดคเดฎเดพเดฏ เดกเต†เดฎเต‹ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเด•:

kubectl run nginx-demo --image=nginx
kubectl annotate deploy nginx-demo janitor/ttl=30m

เดตเตผเดฆเตเดงเดฟเดšเตเดšเตเดตเดฐเตเดจเตเดจ เดšเต†เดฒเดตเตเด•เดณเตเดŸเต† เดฎเดฑเตเดฑเตŠเดฐเต เด‰เดฑเดตเดฟเดŸเด‚ เดชเต†เตผเดธเดฟเดธเตเดฑเตเดฑเดจเตเดฑเต เดตเต‹เดณเตเดฏเด™เตเด™เดณเดพเดฃเต (AWS EBS). เด’เดฐเต Kubernetes StatefulSet เด‡เดฒเตเดฒเดพเดคเดพเด•เตเด•เตเดจเตเดจเดคเต เด…เดคเดฟเดจเตเดฑเต† เดธเตเดฅเดฟเดฐเดฎเดพเดฏ เดตเต‹เดณเตเดฏเด™เตเด™เตพ เด‡เดฒเตเดฒเดพเดคเดพเด•เตเด•เดฟเดฒเตเดฒ (PVC - PersistentVolumeClaim). เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเดคเตเดค EBS เดตเต‹เดณเตเดฏเด™เตเด™เตพ เดŽเดณเตเดชเตเดชเดคเตเดคเดฟเตฝ เดชเตเดฐเดคเดฟเดฎเดพเดธเด‚ เดจเต‚เดฑเตเด•เดฃเด•เตเด•เดฟเดจเต เดกเต‹เดณเตผ เดšเดฟเดฒเดตเดพเด•เตเด•เดฟเดฏเต‡เด•เตเด•เดพเด‚. เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเดคเตเดค เดชเดฟเดตเดฟเดธเดฟเด•เตพ เดตเตƒเดคเตเดคเดฟเดฏเดพเด•เตเด•เดพเตป เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเต เดœเดพเดจเดฟเดฑเตเดฑเดฑเดฟเดจเต เด’เดฐเต เดซเต€เดšเตเดšเตผ เด‰เดฃเตเดŸเต. เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เด’เดฐเต เดฎเตŠเดกเตเดฏเต‚เตพ เดฎเตŒเดฃเตเดŸเต เดšเต†เดฏเตเดฏเดพเดคเตเดคเดคเตเด‚ StatefulSet เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ CronJob เดฑเดซเดฑเตปเดธเต เดšเต†เดฏเตเดฏเดพเดคเตเดคเดคเตเดฎเดพเดฏ เดŽเดฒเตเดฒเดพ PVC-เด•เดณเตเด‚ เดˆ เดจเดฟเดฏเดฎเด‚ เดจเต€เด•เตเด•เด‚ เดšเต†เดฏเตเดฏเตเด‚:

# ัƒะดะฐะปะธั‚ัŒ ะฒัะต PVC, ะบะพั‚ะพั€ั‹ะต ะฝะต ัะผะพะฝั‚ะธั€ะพะฒะฐะฝั‹ ะธ ะฝะฐ ะบะพั‚ะพั€ั‹ะต ะฝะต ััั‹ะปะฐัŽั‚ัั StatefulSets
- id: remove-unused-pvcs
  resources:
  - persistentvolumeclaims
  jmespath: "_context.pvc_is_not_mounted && _context.pvc_is_not_referenced"
  ttl: 24h

เดจเดฟเด™เตเด™เดณเตเดŸเต† เด•เตเดฒเดธเตเดฑเตเดฑเตผ เดตเตƒเดคเตเดคเดฟเดฏเดพเดฏเดฟ เดธเต‚เด•เตเดทเดฟเด•เตเด•เดพเดจเตเด‚ เด•เตเดฒเต—เดกเต เด•เดฎเตเดชเตเดฏเต‚เดŸเตเดŸเดฟเด‚เด—เต เดšเต†เดฒเดตเตเด•เตพ เดธเดพเดตเดงเดพเดจเดคเตเดคเดฟเตฝ เด•เต‚เดŸเตเดจเตเดจเดคเต เดคเดŸเดฏเดพเดจเตเด‚ Kubernetes Janitor เดธเดนเดพเดฏเดฟเด•เตเด•เตเด‚. เดตเดฟเดจเตเดฏเดพเดธเดคเตเดคเดฟเดจเตเด‚ เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เดจเดฟเตผเดฆเตเดฆเต‡เดถเด™เตเด™เตพเด•เตเด•เตเด‚, เดชเดฟเดจเตเดคเตเดŸเดฐเตเด• README kube-janitor.

เดœเต‹เดฒเดฟ เดšเต†เดฏเตเดฏเดพเดคเตเดค เดธเดฎเดฏเด™เตเด™เดณเดฟเตฝ เดธเตเด•เต†เดฏเดฟเดฒเดฟเด‚เด—เต เด•เตเดฑเดฏเตเด•เตเด•เตเด•

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

เด•เตเดฌเต†เตผเดจเต†เดฑเตเดฑเดธเต เดกเต—เตบเดธเตเด•เต†เดฒเตผ (kube-downscaler) เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เดพเดคเตเดค เดธเดฎเดฏเด™เตเด™เดณเดฟเตฝ เดธเดฟเดธเตเดฑเตเดฑเด‚ เดธเตเด•เต†เดฏเดฟเตฝ เด•เตเดฑเดฏเตเด•เตเด•เดพเตป เด‰เดชเดฏเต‹เด•เตเดคเดพเด•เตเด•เดณเต†เดฏเตเด‚ เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผเดฎเดพเดฐเต†เดฏเตเด‚ เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจเต. เดตเดฟเดจเตเดฏเดพเดธเด™เตเด™เตพเด•เตเด•เตเด‚ เดธเตเดฑเตเดฑเต‡เดฑเตเดฑเตเดซเตเตพเดธเต†เดฑเตเดฑเตเด•เตพเด•เตเด•เตเด‚ เดชเต‚เดœเตเดฏเด‚ เดชเด•เตผเดชเตเดชเตเด•เดณเดฟเดฒเต‡เด•เตเด•เต เดธเตเด•เต†เดฏเดฟเตฝ เดšเต†เดฏเตเดฏเดพเตป เด•เดดเดฟเดฏเตเด‚. CronJobs เดคเดพเตฝเด•เตเด•เดพเดฒเดฟเด•เดฎเดพเดฏเดฟ เดจเดฟเตผเดคเตเดคเดฟเดตเดšเตเดšเต‡เด•เตเด•เดพเด‚. Kubernetes Downscaler เด’เดฐเต เดฎเตเดดเตเดตเตป เด•เตเดฒเดธเตเดฑเตเดฑเดฑเดฟเดจเต‹ เด’เดจเตเดจเต‹ เด…เดคเดฟเดฒเดงเดฟเด•เดฎเต‹ เดจเต†เดฏเดฟเด‚เดธเตโ€Œเดชเต†เดฏเตโ€Œเดธเตเด•เตพ เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดตเตเดฏเด•เตเดคเดฟเด—เดค เด‰เดฑเดตเดฟเดŸเด™เตเด™เตพเด•เตเด•เดพเดฏเดฟ เด•เตเดฐเดฎเต€เด•เดฐเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต. เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด’เดจเตเดจเตเด•เดฟเตฝ "เดจเดฟเดทเตเด•เตเดฐเดฟเดฏ เดธเดฎเดฏเด‚" เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ, "เดœเต‹เดฒเดฟ เดธเดฎเดฏเด‚" เดธเดœเตเดœเดฎเดพเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเด‚. เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดฐเดพเดคเตเดฐเดฟเด•เดณเดฟเดฒเตเด‚ เดตเดพเดฐเดพเดจเตเดคเตเดฏเด™เตเด™เดณเดฟเดฒเตเด‚ เดธเตเด•เต†เดฏเดฟเดฒเดฟเด‚เด—เต เด•เดดเดฟเดฏเตเดจเตเดจเดคเตเดฐ เด•เตเดฑเดฏเตเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต:

image: hjacobs/kube-downscaler:20.4.3
args:
  - --interval=30
  # ะฝะต ะพั‚ะบะปัŽั‡ะฐั‚ัŒ ะบะพะผะฟะพะฝะตะฝั‚ั‹ ะธะฝั„ั€ะฐัั‚ั€ัƒะบั‚ัƒั€ั‹
  - --exclude-namespaces=kube-system,infra
  # ะฝะต ะพั‚ะบะปัŽั‡ะฐั‚ัŒ kube-downscaler, ะฐ ั‚ะฐะบะถะต ะพัั‚ะฐะฒะธั‚ัŒ Postgres Operator, ั‡ั‚ะพะฑั‹ ะธัะบะปัŽั‡ะตะฝะฝั‹ะผะธ ะ‘ะ” ะผะพะถะฝะพ ะฑั‹ะปะพ ัƒะฟั€ะฐะฒะปัั‚ัŒ
  - --exclude-deployments=kube-downscaler,postgres-operator
  - --default-uptime=Mon-Fri 08:00-20:00 Europe/Berlin
  - --include-resources=deployments,statefulsets,stacks,cronjobs
  - --deployment-time-annotation=deployment-time

เดตเดพเดฐเดพเดจเตเดคเตเดฏเด™เตเด™เดณเดฟเตฝ เด•เตเดฒเดธเตเดฑเตเดฑเตผ เดตเตผเด•เตเด•เตผ เดจเต‹เดกเตเด•เตพ เด…เดณเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เด’เดฐเต เด—เตเดฐเดพเดซเต เด‡เดคเดพ:

AWS-เตฝ Kubernetes เด•เตเดฒเต—เดกเต เดšเต†เดฒเดตเตเด•เตพ เดฒเดพเดญเดฟเด•เตเด•เตเด•

~13 เตฝ เดจเดฟเดจเตเดจเต 4 เดตเตผเด•เตเด•เตผ เดจเต‹เดกเตเด•เดณเดฟเดฒเต‡เด•เตเด•เต เดธเตเด•เต†เดฏเดฟเตฝ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต เดคเต€เตผเดšเตเดšเดฏเดพเดฏเตเด‚ เดจเดฟเด™เตเด™เดณเตเดŸเต† AWS เดฌเดฟเดฒเตเดฒเดฟเตฝ เดถเตเดฐเดฆเตเดงเต‡เดฏเดฎเดพเดฏ เดตเตเดฏเดคเตเดฏเดพเดธเด‚ เด‰เดฃเตเดŸเดพเด•เตเด•เตเดจเตเดจเต.

เดŽเดจเตเดจเดพเตฝ เด•เตเดฒเดธเตเดฑเตเดฑเตผ "เดกเต—เตบเดŸเตˆเด‚" เดธเดฎเดฏเดคเตเดคเต เดŽเดจเดฟเด•เตเด•เต เดœเต‹เดฒเดฟ เดšเต†เดฏเตเดฏเต‡เดฃเตเดŸเดฟ เดตเดจเตเดจเดพเดฒเต‹? เดกเต—เตบเดธเตโ€Œเด•เต†เดฏเดฟเดฒเตผ/เด’เดดเดฟเดตเดพเด•เตเด•เตฝ: เดฏเดฅเดพเตผเดคเตเดฅ เดตเตเดฏเดพเด–เตเดฏเดพเดจเด‚ เดšเต‡เตผเดคเตเดคเต เดšเดฟเดฒ เดตเดฟเดจเตเดฏเดพเดธเด™เตเด™เดณเต† เดธเตเด•เต†เดฏเดฟเดฒเดฟเด‚เด—เดฟเตฝ เดจเดฟเดจเตเดจเต เดถเดพเดถเตเดตเดคเดฎเดพเดฏเดฟ เด’เดดเดฟเดตเดพเด•เตเด•เดพเดจเดพเด•เตเด‚. YYYY-MM-DD HH:MM (UTC) เดŽเดจเตเดจ เดซเต‹เตผเดฎเดพเดฑเตเดฑเดฟเตฝ เด’เดฐเต เด•เต‡เดตเดฒ เดŸเตˆเด‚เดธเตเดฑเตเดฑเดพเดฎเตเดชเต เด‰เดณเตเดณ เดตเตเดฏเดพเด–เตเดฏเดพเดจเด‚ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดกเต—เตบเดธเตโ€Œเด•เต†เดฏเดฟเดฒเตผ/เด’เดดเดฟเดตเดพเด•เตเด•เตฝ-เดตเดฐเต† เดตเดฟเดจเตเดฏเดพเดธเด™เตเด™เตพ เดคเดพเตฝเด•เตเด•เดพเดฒเดฟเด•เดฎเดพเดฏเดฟ เด’เดดเดฟเดตเดพเด•เตเด•เดพเดตเตเดจเตเดจเดคเดพเดฃเต. เด†เดตเดถเตเดฏเดฎเต†เด™เตเด•เดฟเตฝ, เดตเตเดฏเดพเด–เตเดฏเดพเดจเดคเตเดคเต‹เดŸเตŠเดชเตเดชเด‚ เด’เดฐเต เดชเต‹เดกเต เดตเดฟเดจเตเดฏเดธเดฟเดšเตเดšเต เดฎเตเดดเตเดตเตป เด•เตเดฒเดธเตเดฑเตเดฑเดฑเตเด‚ เดธเตเด•เต†เดฏเดฟเตฝ เดšเต†เดฏเตเดฏเดพเด‚ downscaler/force-uptime, เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, nginx เดถเต‚เดจเตเดฏเดฎเดพเดฏเดฟ เดธเดฎเดพเดฐเด‚เดญเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดฒเต‚เดŸเต†:

kubectl run scale-up --image=nginx
kubectl annotate deploy scale-up janitor/ttl=1h # ัƒะดะฐะปะธั‚ัŒ ั€ะฐะทะฒะตั€ั‚ั‹ะฒะฐะฝะธะต ั‡ะตั€ะตะท ั‡ะฐั
kubectl annotate pod $(kubectl get pod -l run=scale-up -o jsonpath="{.items[0].metadata.name}") downscaler/force-uptime=true

เด•เดพเดฃเตเด• README kube-downscaler, เดตเดฟเดจเตเดฏเดพเดธ เดจเดฟเตผเดฆเตเดฆเต‡เดถเด™เตเด™เดณเดฟเดฒเตเด‚ เด…เดงเดฟเด• เด“เดชเตเดทเดจเตเด•เดณเดฟเดฒเตเด‚ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดคเดพเตฝเดชเตเดชเดฐเตเดฏเดฎเตเดฃเตเดŸเต†เด™เตเด•เดฟเตฝ.

เดคเดฟเดฐเดถเตเดšเต€เดจ เดฏเดพเดจเตเดคเตเดฐเดฟเด• เดธเตเด•เต†เดฏเดฟเดฒเดฟเด‚เด—เต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด•

เดชเดฒ เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเด•เดณเตเด‚/เดธเต‡เดตเดจเด™เตเด™เดณเตเด‚ เด’เดฐเต เดกเตˆเดจเดพเดฎเดฟเด•เต เดฒเต‹เดกเดฟเด‚เด—เต เดชเดพเดฑเตเดฑเต‡เตบ เด•เตˆเด•เดพเดฐเตเดฏเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต: เดšเดฟเดฒเดชเตเดชเต‹เตพ เด…เดตเดฏเตเดŸเต† เดฎเตŠเดกเตเดฏเต‚เดณเตเด•เตพ เดจเดฟเดทเตโ€Œเด•เตเดฐเดฟเดฏเดฎเดพเดฏเดฟเดฐเดฟเด•เตเด•เตเด‚, เดšเดฟเดฒเดชเตเดชเต‹เตพ เด…เดต เดชเต‚เตผเดฃเตเดฃ เดถเต‡เดทเดฟเดฏเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเด‚. เดชเดฐเดฎเดพเดตเดงเดฟ เดชเต€เด•เตเด•เต เดฒเต‹เดกเดฟเดจเต† เดจเต‡เดฐเดฟเดŸเดพเตป เดชเต‹เดกเตเด•เดณเตเดŸเต† เด’เดฐเต เดธเตเดฅเดฟเดฐเด‚ เดซเตเดฒเต€เดฑเตเดฑเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเต เดฒเดพเดญเด•เดฐเดฎเดฒเตเดฒ. เด’เดฐเต เดฑเดฟเดธเต‹เดดเตโ€Œเดธเดฟเตฝ เด‰เดŸเดจเต€เดณเด‚ เดคเดฟเดฐเดถเตเดšเต€เดจเดฎเดพเดฏ เดฏเดพเดจเตเดคเตเดฐเดฟเด• เดธเตเด•เต†เดฏเดฟเดฒเดฟเด‚เด—เดฟเดจเต† เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเต เดชเดฟเดจเตเดคเตเดฃเดฏเตเด•เตเด•เตเดจเตเดจเต HorizontalPodAutoscaler (HPA). เดธเดฟเดชเดฟเดฏเต เด‰เดชเดฏเต‹เด—เด‚ เดชเดฒเดชเตเดชเต‹เดดเตเด‚ เดธเตเด•เต†เดฏเดฟเดฒเดฟเด‚เด—เดฟเดจเตเดณเตเดณ เด’เดฐเต เดจเดฒเตเดฒ เดธเต‚เดšเด•เดฎเดพเดฃเต:

apiVersion: autoscaling/v2beta2
kind: HorizontalPodAutoscaler
metadata:
  name: my-app
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: my-app
  minReplicas: 3
  maxReplicas: 10
  metrics:
  - type: Resource
    resource:
      name: cpu
      target:
        averageUtilization: 100
        type: Utilization

เดธเตเด•เต†เดฏเดฟเดฒเดฟเด‚เด—เดฟเดจเดพเดฏเดฟ เด‡เดทเตโ€ŒเดŸเดพเดจเตเดธเตƒเดค เดฎเต†เดŸเตเดฐเดฟเด•เตโ€Œเดธเต เดŽเดณเตเดชเตเดชเดคเตเดคเดฟเตฝ เดฌเดจเตเดงเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต Zalando เด’เดฐเต เด˜เดŸเด•เด‚ เดธเตƒเดทเตโ€ŒเดŸเดฟเดšเตเดšเต: เด•เตเดฏเต‚เดฌเต เดฎเต†เดŸเตเดฐเดฟเด•เตเดธเต เด…เดกเดพเดชเตเดฑเตเดฑเตผ (kube-metrics-adapter) เดชเต‹เดกเตเด•เดณเตเดŸเต† เดคเดฟเดฐเดถเตเดšเต€เดจ เด“เดŸเตเดŸเต‹เดธเตโ€Œเด•เต‡เดฒเดฟเด‚เด—เดฟเดจเดพเดฏเดฟ เด‡เดทเตโ€ŒเดŸเดพเดจเตเดธเตƒเดคเดตเตเด‚ เดฌเดพเดนเตเดฏเดตเตเดฎเดพเดฏ เดฎเต†เดŸเตเดฐเดฟเด•เตเด•เตเด•เตพ เดถเต‡เด–เดฐเดฟเด•เตเด•เดพเดจเตเด‚ เดธเต‡เดตเดฟเด•เตเด•เดพเดจเตเด‚ เด•เดดเดฟเดฏเตเดจเตเดจ เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเดฟเดจเดพเดฏเตเดณเตเดณ เด’เดฐเต เดœเดจเดฑเดฟเด•เต เดฎเต†เดŸเตเดฐเดฟเด•เตเดธเต เด…เดกเดพเดชเตเดฑเตเดฑเดฑเดพเดฃเต. เด‡เดคเต เดชเตเดฐเต‹เดฎเดฟเดคเตเดฏเต‚เดธเต เดฎเต†เดŸเตเดฐเดฟเด•เตโ€Œเดธเต, SQS เด•เตเดฏเต‚เด•เตพ, เดฎเดฑเตเดฑเต เด•เตเดฐเดฎเต€เด•เดฐเดฃเด™เตเด™เตพ เดŽเดจเตเดจเดฟเดตเดฏเต† เด…เดŸเดฟเดธเตเดฅเดพเดจเดฎเดพเด•เตเด•เดฟเดฏเตเดณเตเดณ เดธเตเด•เต†เดฏเดฟเดฒเดฟเด‚เด—เดฟเดจเต† เดชเดฟเดจเตเดคเตเดฃเดฏเตเด•เตเด•เตเดจเตเดจเต. เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, /เดฎเต†เดŸเตเดฐเดฟเด•เตเดธเดฟเตฝ JSON เด†เดฏเดฟ เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เดคเดจเตเดจเต† เดชเตเดฐเดคเดฟเดจเดฟเดงเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต เด‡เดทเตโ€ŒเดŸเดพเดจเตเดธเตƒเดค เดฎเต†เดŸเตเดฐเดฟเด•เตเด•เดฟเดฒเต‡เด•เตเด•เต เดจเดฟเด™เตเด™เดณเตเดŸเต† เดตเดฟเดจเตเดฏเดพเดธเด‚ เดธเตเด•เต†เดฏเดฟเตฝ เดšเต†เดฏเตเดฏเดพเตป:

apiVersion: autoscaling/v2beta2
kind: HorizontalPodAutoscaler
metadata:
  name: myapp-hpa
  annotations:
    # metric-config.<metricType>.<metricName>.<collectorName>/<configKey>
    metric-config.pods.requests-per-second.json-path/json-key: "$.http_server.rps"
    metric-config.pods.requests-per-second.json-path/path: /metrics
    metric-config.pods.requests-per-second.json-path/port: "9090"
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: myapp
  minReplicas: 1
  maxReplicas: 10
  metrics:
  - type: Pods
    pods:
      metric:
        name: requests-per-second
      target:
        averageValue: 1k
        type: AverageValue

HPA เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดนเต‹เดฑเดฟเดธเต‹เดฃเตเดŸเตฝ เด“เดŸเตเดŸเต‹เดธเตโ€Œเด•เต‡เดฒเดฟเด‚เด—เต เด•เต‹เตบเดซเดฟเด—เตผ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต เดธเตโ€Œเดฑเตเดฑเต‡เดฑเตเดฑเตโ€Œเดฒเต†เดธเต เดธเต‡เดตเดจเด™เตเด™เดณเตเดŸเต† เด•เดพเดฐเตเดฏเด•เตเดทเดฎเดค เดฎเต†เดšเตเดšเดชเตเดชเต†เดŸเตเดคเตเดคเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดกเดฟเดซเต‹เตพเดŸเตเดŸเต เดชเตเดฐเดตเตผเดคเตเดคเดจเด™เตเด™เดณเดฟเตฝ เด’เดจเตเดจเดพเดฏเดฟเดฐเดฟเด•เตเด•เดฃเด‚. Spotify เด…เดตเดฐเตเดŸเต† เด…เดจเตเดญเดตเดตเตเด‚ HPA-เดฏเตโ€Œเด•เตเด•เตเดณเตเดณ เดถเตเดชเดพเตผเดถเด•เดณเตเด‚ เด…เดŸเด™เตเด™เดฟเดฏ เด’เดฐเต เด…เดตเดคเดฐเดฃเด‚ เด‰เดฃเตเดŸเต: เดจเดฟเด™เตเด™เดณเตเดŸเต† เดตเดพเดฒเดฑเตเดฑเดฒเตเดฒ, เดจเดฟเด™เตเด™เดณเตเดŸเต† เดตเดฟเดจเตเดฏเดพเดธเด™เตเด™เตพ เด…เดณเด•เตเด•เตเด•.

เดฑเดฟเดธเต‹เดดเตเดธเต เด“เดตเตผเดฌเตเด•เตเด•เดฟเด‚เด—เต เด•เตเดฑเดฏเตเด•เตเด•เตเด•

เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเต เดตเตผเด•เตเด•เตเดฒเต‹เดกเตเด•เตพ เด…เดตเดฐเตเดŸเต† เดธเดฟเดชเดฟเดฏเต/เดฎเต†เดฎเตเดฎเดฑเดฟ เด†เดตเดถเตเดฏเด•เดคเด•เตพ "เดตเดฟเดญเดต เด…เดญเตเดฏเตผเดคเตเดฅเดจเด•เตพ" เดตเดดเดฟ เดจเดฟเตผเดฃเตเดฃเดฏเดฟเด•เตเด•เตเดจเตเดจเต. เดธเดฟเดชเดฟเดฏเต เด‰เดฑเดตเดฟเดŸเด™เตเด™เตพ เดตเต†เตผเดšเตเดตเตฝ เด•เต‹เดฑเตเด•เดณเดฟเดฒเต‹ เดธเดพเดงเดพเดฐเดฃเดฏเดพเดฏเดฟ "เดฎเดฟเดฒเตเดฒเดฟเด•เต‹เตผ"เด•เดณเดฟเดฒเต‹ เด…เดณเด•เตเด•เตเดจเตเดจเต, เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต 500m เดŽเดจเตเดจเดคเต 50% vCPU เดธเต‚เดšเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต. เดฎเต†เดฎเตเดฎเดฑเดฟ เด‰เดฑเดตเดฟเดŸเด™เตเด™เตพ เดฌเตˆเดฑเตเดฑเตเด•เดณเดฟเตฝ เด…เดณเด•เตเด•เตเดจเตเดจเต, 500 เดฎเต†เด—เดพเดฌเตˆเดฑเตเดฑเต เดŽเดจเตเดจเตผเดคเตเดฅเด‚ เดตเดฐเตเดจเตเดจ 500Mi เดชเต‹เดฒเต†เดฏเตเดณเตเดณ เดชเตŠเดคเตเดตเดพเดฏ เดชเตเดฐเดคเตเดฏเดฏเด™เตเด™เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเด‚. เดตเตผเด•เตเด•เตผ เดจเต‹เดกเตเด•เดณเดฟเตฝ เดฑเดฟเดธเต‹เดดเตโ€Œเดธเต เด…เดญเตเดฏเตผเดคเตเดฅเดจ "เดฒเต‹เด•เตเด•เต" เด•เดชเตเดชเดพเดธเดฟเดฑเตเดฑเดฟ, เด…เดคเดพเดฏเดคเต 1000 vCPU-เด•เดณเตเดณเตเดณ เด’เดฐเต เดจเต‹เดกเดฟเตฝ 4m CPU เด…เดญเตเดฏเตผเดคเตเดฅเดจเดฏเตเดณเตเดณ เดชเต‹เดกเต เดฎเดฑเตเดฑเต เดชเต‹เดกเตเด•เตพเด•เตเด•เต 3 vCPU-เด•เตพ เดฎเดพเดคเตเดฐเดฎเต‡ เดฒเดญเตเดฏเดฎเดพเด•เต‚. [1]

เดธเตเดฒเดพเด•เตเด•เต (เด…เดงเดฟเด• เด•เดฐเตเดคเตฝ) เด…เดญเตเดฏเตผเดคเตเดฅเดฟเดšเตเดš เด‰เดฑเดตเดฟเดŸเด™เตเด™เดณเตเด‚ เดฏเดฅเดพเตผเดคเตเดฅ เด‰เดชเดฏเต‹เด—เดตเตเด‚ เดคเดฎเตเดฎเดฟเดฒเตเดณเตเดณ เดตเตเดฏเดคเตเดฏเดพเดธเดฎเดพเดฃเต. เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, 2 GiB เดฎเต†เดฎเตเดฎเดฑเดฟ เด†เดตเดถเตเดฏเดชเตเดชเต†เดŸเตเดจเตเดจ เดŽเดจเตเดจเดพเตฝ 200 MiB เดฎเดพเดคเตเดฐเด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต เดชเต‹เดกเดฟเดจเต ~1,8 GiB "เด…เดงเดฟเด•" เดฎเต†เดฎเตเดฎเดฑเดฟ เด‰เดฃเตเดŸเต. เด…เดงเดฟเด•เดฎเดพเดฏเดพเตฝ เดชเดฃเด‚ เดšเดฟเดฒเดตเดพเด•เตเด‚. 1 GiB เด…เดจเดพเดตเดถเตเดฏ เดฎเต†เดฎเตเดฎเดฑเดฟเด•เตเด•เต เดชเตเดฐเดคเดฟเดฎเดพเดธเด‚ ~$10 เดšเดฟเดฒเดตเดพเด•เตเด‚ เดŽเดจเตเดจเต เด’เดฐเดพเตพเด•เตเด•เต เดเด•เดฆเต‡เดถเด‚ เด•เดฃเด•เตเด•เดพเด•เตเด•เดพเด‚. [2]

เด•เตเดฌเต†เตผเดจเต†เดฑเตเดฑเดธเต เดฑเดฟเดธเต‹เดดเตเดธเต เดฑเดฟเดชเตเดชเต‹เตผเดŸเตเดŸเต (kube-resource-report) เด…เดงเดฟเด• เด•เดฐเตเดคเตฝ เดถเต‡เด–เดฐเด‚ เดชเตเดฐเดฆเตผเดถเดฟเดชเตเดชเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดธเดฎเตเดชเดพเดฆเตเดฏ เดธเดพเดงเตเดฏเดค เดจเดฟเตผเดฃเตเดฃเดฏเดฟเด•เตเด•เดพเตป เดจเดฟเด™เตเด™เดณเต† เดธเดนเดพเดฏเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเด‚:

AWS-เตฝ Kubernetes เด•เตเดฒเต—เดกเต เดšเต†เดฒเดตเตเด•เตพ เดฒเดพเดญเดฟเด•เตเด•เตเด•

เด•เตเดฌเต†เตผเดจเต†เดฑเตเดฑเดธเต เดฑเดฟเดธเต‹เดดเตเดธเต เดฑเดฟเดชเตเดชเต‹เตผเดŸเตเดŸเต เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเด‚ เด•เดฎเดพเตปเดกเตเด‚ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดธเดฎเดพเดนเดฐเดฟเดšเตเดš เด…เดงเดฟเด•เดญเดพเด—เด‚ เด•เดพเดฃเดฟเด•เตเด•เตเดจเตเดจเต. เดตเดฟเดญเดต เด†เดตเดถเตเดฏเด•เดคเด•เตพ เด•เตเดฑเดฏเตเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเดจเตเดจ เดธเตเดฅเดฒเด™เตเด™เตพ เด•เดฃเตเดŸเต†เดคเตเดคเดพเตป เด‡เดคเต เดจเดฟเด™เตเด™เดณเต† เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจเต. เดœเดจเดฑเต‡เดฑเตเดฑเต เดšเต†เดฏเตเดค HTML เดฑเดฟเดชเตเดชเต‹เตผเดŸเตเดŸเต เดฑเดฟเดธเต‹เดดเตเดธเต เด‰เดชเดฏเต‹เด—เดคเตเดคเดฟเดจเตเดฑเต† เด’เดฐเต เดธเตเดจเดพเดชเตเดชเตเดทเต‹เดŸเตเดŸเต เดฎเดพเดคเตเดฐเดฎเดพเดฃเต เดจเตฝเด•เตเดจเตเดจเดคเต. เดฎเดคเดฟเดฏเดพเดฏ เดฑเดฟเดธเต‹เดดเตเดธเต เด…เดญเตเดฏเตผเดคเตเดฅเดจเด•เตพ เดจเดฟเตผเดฃเตเดฃเดฏเดฟเด•เตเด•เดพเตป เดจเดฟเด™เตเด™เตพ เด•เดพเดฒเด•เตเดฐเดฎเต‡เดฃ CPU/เดฎเต†เดฎเตเดฎเดฑเดฟ เด‰เดชเดฏเต‹เด—เด‚ เดจเต‹เด•เตเด•เดฃเด‚. "เดธเดพเดงเดพเดฐเดฃ" CPU-เดนเต†เดตเดฟ เดธเต‡เดตเดจเดคเตเดคเดฟเดจเดพเดฏเตเดณเตเดณ เด’เดฐเต เด—เตเดฐเดพเดซเดพเดจ เดšเดพเตผเดŸเตเดŸเต เด‡เดคเดพ: เดŽเดฒเตเดฒเดพ เดชเต‹เดกเตเด•เดณเตเด‚ เด…เดญเตเดฏเตผเดคเตเดฅเดฟเดšเตเดš 3 CPU เด•เต‹เดฑเตเด•เดณเต‡เด•เตเด•เดพเตพ เดตเดณเดฐเต† เด•เตเดฑเดตเดพเดฃเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเต:

AWS-เตฝ Kubernetes เด•เตเดฒเต—เดกเต เดšเต†เดฒเดตเตเด•เตพ เดฒเดพเดญเดฟเด•เตเด•เตเด•

CPU เด…เดญเตเดฏเตผเดคเตเดฅเดจ 3000m เตฝ เดจเดฟเดจเตเดจเต ~ 400m เด†เดฏเดฟ เด•เตเดฑเดฏเตเด•เตเด•เตเดจเตเดจเดคเต เดฎเดฑเตเดฑเต เดœเต‹เดฒเดฟเดญเดพเดฐเด™เตเด™เตพเด•เตเด•เตเดณเตเดณ เดตเดฟเดญเดตเด™เตเด™เตพ เดธเตเดตเดคเดจเตเดคเตเดฐเดฎเดพเด•เตเด•เตเด•เดฏเตเด‚ เด•เตเดฒเดธเตเดฑเตเดฑเตผ เดšเต†เดฑเตเดคเดพเด•เดพเตป เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต.

"เด‡เดธเดฟ2 เดธเด‚เดญเดตเด™เตเด™เดณเตเดŸเต† เดถเดฐเดพเดถเดฐเดฟ เดธเดฟเดชเดฟเดฏเต เด‰เดชเดฏเต‹เด—เด‚ เดชเดฒเดชเตเดชเต‹เดดเตเด‚ เด’เดฑเตเดฑ-เด…เด•เตเด• เดถเดคเดฎเดพเดจเด‚ เดชเดฐเดฟเดงเดฟเดฏเดฟเดฒเดพเดฃเต" เด•เต‹เดฑเดฟ เด•เตเดตเดฟเตป เดŽเดดเตเดคเตเดจเตเดจเต. EC2 เดจเต เดตเต‡เดฃเตเดŸเดฟ เดถเดฐเดฟเดฏเดพเดฏ เดตเดฒเตเดชเตเดชเด‚ เด•เดฃเด•เตเด•เดพเด•เตเด•เตเดจเตเดจเดคเต เด’เดฐเต เดฎเต‹เดถเด‚ เดคเต€เดฐเตเดฎเดพเดจเดฎเดพเดฏเดฟเดฐเดฟเด•เตเด•เดพเด‚เด’เดฐเต YAML เดซเดฏเดฒเดฟเตฝ เดšเดฟเดฒ Kubernetes เดฑเดฟเดธเต‹เดดเตโ€Œเดธเต เด…เดจเตเดตเต‡เดทเดฃเด™เตเด™เตพ เดฎเดพเดฑเตเดฑเตเดจเตเดจเดคเต เดŽเดณเตเดชเตเดชเดตเตเด‚ เดตเดฒเดฟเดฏ เดธเดฎเตเดชเดพเดฆเตเดฏเดตเตเด‚ เด•เตŠเดฃเตเดŸเตเดตเดฐเตเด‚.

เดŽเดจเตเดจเดพเตฝ YAML เดซเดฏเดฒเตเด•เดณเดฟเตฝ เด†เดณเตเด•เตพ เดฎเต‚เดฒเตเดฏเด™เตเด™เตพ เดฎเดพเดฑเตเดฑเดฃเดฎเต†เดจเตเดจเต เดžเด™เตเด™เตพเด•เตเด•เต เดถเดฐเดฟเด•เตเด•เตเด‚ เด†เดตเดถเตเดฏเดฎเตเดฃเตเดŸเต‹? เด‡เดฒเตเดฒ, เดฏเดจเตเดคเตเดฐเด™เตเด™เตพเด•เตเด•เต เด‡เดคเต เดตเดณเดฐเต† เดจเดจเตเดจเดพเดฏเดฟ เดšเต†เดฏเตเดฏเดพเตป เด•เดดเดฟเดฏเตเด‚! เด•เตเดฌเต†เตผเดจเต†เดฑเตเดฑเดธเต เดฒเด‚เดฌ เดชเต‹เดกเต เด“เดŸเตเดŸเต‹เดธเตเด•เต†เดฏเดฟเดฒเตผ (VPA) เด…เดคเต เดšเต†เดฏเตเดฏเตเดจเตเดจเต: เดœเต‹เดฒเดฟเดญเดพเดฐเดคเตเดคเดฟเดจเดจเตเดธเดฐเดฟเดšเตเดšเต เดฑเดฟเดธเต‹เดดเตเดธเต เด…เดญเตเดฏเตผเดคเตเดฅเดจเด•เดณเตเด‚ เดจเดฟเดฏเดจเตเดคเตเดฐเดฃเด™เตเด™เดณเตเด‚ เดชเตŠเดฐเตเดคเตเดคเดชเตเดชเต†เดŸเตเดคเตเดคเตเดจเตเดจเต. เด•เดพเดฒเด•เตเดฐเดฎเต‡เดฃ VPA เดธเตเดตเต€เด•เดฐเดฟเดšเตเดš เดชเตเดฐเตŠเดฎเดฟเดคเตเดฏเต‚เดธเต เดธเดฟเดชเดฟเดฏเต เด…เดญเตเดฏเตผเดคเตเดฅเดจเด•เดณเตเดŸเต† (เดจเต‡เตผเดคเตเดค เดจเต€เดฒ เดตเดฐ) เด’เดฐเต เด‰เดฆเดพเดนเดฐเดฃ เด—เตเดฐเดพเดซเต เด‡เดคเดพ:

AWS-เตฝ Kubernetes เด•เตเดฒเต—เดกเต เดšเต†เดฒเดตเตเด•เตพ เดฒเดพเดญเดฟเด•เตเด•เตเด•

Zalando เด…เดคเดฟเดจเตเดฑเต† เดŽเดฒเตเดฒเดพ เด•เตเดฒเดธเตเดฑเตเดฑเดฑเตเด•เดณเดฟเดฒเตเด‚ VPA เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต เด…เดŸเดฟเดธเตเดฅเดพเดจ เดธเต—เด•เดฐเตเดฏ เด˜เดŸเด•เด™เตเด™เตพเด•เตเด•เดพเดฏเดฟ. เดจเต‹เตบ-เด•เตเดฐเดฟเดŸเตเดŸเดฟเด•เตเด•เตฝ เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเด•เตพเด•เตเด•เตเด‚ VPA เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเด‚.

เด—เต‹เตพเดกเดฟเดฒเต‹เด•เตเด•เตเดธเต เด’เดฐเต เดจเต†เดฏเดฟเด‚เดธเตโ€Œเดชเต†เดฏเตโ€Œเดธเดฟเดฒเต† เด“เดฐเต‹ เดตเดฟเดจเตเดฏเดพเดธเดคเตเดคเดฟเดจเตเด‚ เด’เดฐเต VPA เดธเตƒเดทเตโ€ŒเดŸเดฟเด•เตเด•เตเด•เดฏเตเด‚ เด…เดคเดฟเดจเตเดฑเต† เดกเดพเดทเตโ€Œเดฌเต‹เตผเดกเดฟเตฝ เด’เดฐเต VPA เดถเตเดชเดพเตผเดถ เดชเตเดฐเดฆเตผเดถเดฟเดชเตเดชเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจ เด’เดฐเต เด‰เดชเด•เดฐเดฃเดฎเดพเดฃเต Fairwind. เดกเต†เดตเดฒเดชเตเดชเตผเดฎเดพเตผเด•เตเด•เต เด…เดตเดฐเตเดŸเต† เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเด•เตพเด•เตเด•เดพเดฏเดฟ เดถเดฐเดฟเดฏเดพเดฏ CPU/เดฎเต†เดฎเตเดฎเดฑเดฟ เด…เดญเตเดฏเตผเดคเตเดฅเดจเด•เตพ เดธเดœเตเดœเดฎเดพเด•เตเด•เดพเตป เด‡เดคเต เดธเดนเดพเดฏเดฟเด•เตเด•เตเด‚:

AWS-เตฝ Kubernetes เด•เตเดฒเต—เดกเต เดšเต†เดฒเดตเตเด•เตพ เดฒเดพเดญเดฟเด•เตเด•เตเด•

เดžเดพเตป เดšเต†เดฑเตเดคเดพเดฏเดฟ เดŽเดดเตเดคเดฟ เดตเดฟเดชเดฟเดŽเดฏเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เดฌเตเดฒเต‹เด—เตเดชเต‹เดธเตเดฑเตเดฑเต 2019-เดฒเตเด‚ เด…เดŸเตเดคเตเดคเดฟเดŸเต† CNCF เดŽเตปเดกเต เดฏเต‚เดธเตผ เด•เดฎเตเดฎเตเดฏเต‚เดฃเดฟเดฑเตเดฑเดฟ VPA เดชเตเดฐเดถเตเดจเด‚ เดšเตผเดšเตเดš เดšเต†เดฏเตเดคเต.

EC2 เดธเตเดชเต‹เดŸเตเดŸเต เดธเด‚เดญเดตเด™เตเด™เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต

เด…เดตเดธเดพเดจเดฎเดพเดฏเดฟ เดชเด•เตเดทเต‡, เด•เตเดฌเต†เตผเดจเต†เดฑเตเดฑเดธเต เดตเตผเด•เตเด•เตผ เดจเต‹เดกเตเด•เดณเดพเดฏเดฟ เดธเตเดชเต‹เดŸเตเดŸเต เดธเด‚เดญเดตเด™เตเด™เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต AWS EC2 เดšเต†เดฒเดตเต เด•เตเดฑเดฏเตเด•เตเด•เดพเดจเดพเด•เตเด‚. [3]. เด“เตบ-เดกเดฟเดฎเดพเตปเดกเต เดตเดฟเดฒเด•เดณเตเดฎเดพเดฏเดฟ เดคเดพเดฐเดคเดฎเตเดฏเดชเตเดชเต†เดŸเตเดคเตเดคเตเดฎเตเดชเต‹เตพ เดธเตโ€Œเดชเต‹เดŸเตเดŸเต เดธเด‚เดญเดตเด™เตเด™เตพ 90% เดตเดฐเต† เด•เดฟเดดเดฟเดตเดฟเตฝ เดฒเดญเตเดฏเดฎเดพเดฃเต. EC2 Spot-เตฝ Kubernetes เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเต เด’เดฐเต เดจเดฒเตเดฒ เดธเด‚เดฏเต‹เดœเดจเดฎเดพเดฃเต: เด‰เดฏเตผเดจเตเดจ เดฒเดญเตเดฏเดคเดฏเตเด•เตเด•เดพเดฏเดฟ เดจเดฟเด™เตเด™เตพ เดจเดฟเดฐเดตเดงเดฟ เดตเตเดฏเดคเตเดฏเดธเตเดค เด‰เดฆเดพเดนเดฐเดฃ เดคเดฐเด™เตเด™เตพ เดตเตเดฏเด•เตเดคเดฎเดพเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต, เด…เดคเดพเดฏเดคเต เด’เดฐเต‡ เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เด•เตเดฑเดžเตเดž เดตเดฟเดฒเดฏเตเด•เตเด•เต เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด’เดฐเต เดตเดฒเดฟเดฏ เดจเต‹เดกเต เดฒเดญเดฟเด•เตเด•เตเด‚, เด•เต‚เดŸเดพเดคเต† เดตเตผเดฆเตเดงเดฟเดชเตเดชเดฟเดšเตเดš เดถเต‡เดทเดฟ เด•เดฃเตเดŸเต†เดฏเตเดจเดฑเตˆเดธเต เดšเต†เดฏเตเดค Kubernetes เดตเตผเด•เตเด•เตเดฒเต‹เดกเตเด•เตพเด•เตเด•เต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเดจเดพเด•เตเด‚.

EC2 Spot-เตฝ Kubernetes เดŽเด™เตเด™เดจเต† เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เดพเด‚? เด•เตเดฑเดšเตเดšเต เด“เดชเตเดทเดจเตเด•เตพ เด‰เดฃเตเดŸเต: SpotInst (เด‡เดชเตเดชเต‹เตพ "เดธเตเดชเต‹เดŸเตเดŸเต" เดŽเดจเตเดจเต เดตเดฟเดณเดฟเด•เตเด•เตเดจเตเดจเต, เดŽเดจเตเดคเตเด•เตŠเดฃเตเดŸเต†เดจเตเดจเต เดŽเดจเตเดจเต‹เดŸเต เดšเต‹เดฆเดฟเด•เตเด•เดฐเตเดคเต) เดชเต‹เดฒเตเดณเตเดณ เด’เดฐเต เดฎเต‚เดจเตเดจเดพเด‚ เด•เด•เตเดทเดฟ เดธเต‡เดตเดจเด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด• เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดจเดฟเด™เตเด™เดณเตเดŸเต† เด•เตเดฒเดธเตเดฑเตเดฑเดฑเดฟเดฒเต‡เด•เตเด•เต เด’เดฐเต Spot AutoScalingGroup (ASG) เดšเต‡เตผเด•เตเด•เตเด•. เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เด’เดจเตเดจเดฟเดฒเดงเดฟเด•เด‚ เด‰เดฆเดพเดนเดฐเดฃ เดคเดฐเด™เตเด™เดณเตเดณเตเดณ "เดถเต‡เดทเดฟ-เด’เดชเตเดฑเตเดฑเดฟเดฎเตˆเดธเต เดšเต†เดฏเตเดค" Spot ASG-เดฏเตโ€Œเด•เตเด•เดพเดฏเตเดณเตเดณ เด’เดฐเต CloudFormation เดธเตโ€Œเดจเดฟเดชเตเดชเดฑเตเดฑเต เด‡เดคเดพ:

MySpotAutoScalingGroup:
 Properties:
   HealthCheckGracePeriod: 300
   HealthCheckType: EC2
   MixedInstancesPolicy:
     InstancesDistribution:
       OnDemandPercentageAboveBaseCapacity: 0
       SpotAllocationStrategy: capacity-optimized
     LaunchTemplate:
       LaunchTemplateSpecification:
         LaunchTemplateId: !Ref LaunchTemplate
         Version: !GetAtt LaunchTemplate.LatestVersionNumber
       Overrides:
         - InstanceType: "m4.2xlarge"
         - InstanceType: "m4.4xlarge"
         - InstanceType: "m5.2xlarge"
         - InstanceType: "m5.4xlarge"
         - InstanceType: "r4.2xlarge"
         - InstanceType: "r4.4xlarge"
   LaunchTemplate:
     LaunchTemplateId: !Ref LaunchTemplate
     Version: !GetAtt LaunchTemplate.LatestVersionNumber
   MinSize: 0
   MaxSize: 100
   Tags:
   - Key: k8s.io/cluster-autoscaler/node-template/label/aws.amazon.com/spot
     PropagateAtLaunch: true
     Value: "true"

เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดฟเดจเตŠเดชเตเดชเด‚ เดธเตเดชเต‹เดŸเตเดŸเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เดšเดฟเดฒ เด•เตเดฑเดฟเดชเตเดชเตเด•เตพ:

  • เดจเดฟเด™เตเด™เตพ เดธเตโ€Œเดชเต‹เดŸเตเดŸเต เดŸเต†เตผเดฎเดฟเดจเต‡เดทเดจเตเด•เตพ เด•เตˆเด•เดพเดฐเตเดฏเด‚ เดšเต†เดฏเตเดฏเต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต, เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เด‡เตปเดธเตโ€Œเดฑเตเดฑเตปเดธเต เดจเดฟเตผเดคเตเดคเตเดฎเตเดชเต‹เตพ เดจเต‹เดกเต เดฒเดฏเดฟเดชเตเดชเดฟเดšเตเดšเตเด•เตŠเดฃเตเดŸเต
  • Zalando เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต เดจเดพเตฝเด•เตเด•เดตเดฒ เดจเต‹เดกเต เดชเต‚เตพ เดฎเตเตปเด—เดฃเดจเด•เดณเตเดณเตเดณ เด”เดฆเตเดฏเต‹เด—เดฟเด• เด•เตเดฒเดธเตเดฑเตเดฑเตผ เด“เดŸเตเดŸเต‹เดธเตเด•เต‡เดฒเดฟเด‚เด—เต
  • เดธเตเดชเต‹เดŸเตเดŸเต เดจเต‹เดกเตเด•เตพ เดจเดฟเตผเดฌเดจเตเดงเดฟเด•เตเด•เดพเด‚ เดธเตโ€Œเดชเต‹เดŸเตเดŸเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เดพเตป เดœเต‹เดฒเดฟเดญเดพเดฐเด™เตเด™เดณเตเดŸเต† "เดฐเดœเดฟเดธเตโ€ŒเดŸเตเดฐเต‡เดทเตป" เดธเตเดตเต€เด•เดฐเดฟเด•เตเด•เตเด•

เดธเด‚เด—เตเดฐเดนเด‚

เดจเดฟเด™เตเด™เดณเตเดŸเต† เด•เตเดฒเต—เดกเต เดฌเดฟเตฝ เด•เตเดฑเดฏเตเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เด…เดตเดคเดฐเดฟเดชเตเดชเดฟเดšเตเดš เดšเดฟเดฒ เดŸเต‚เดณเตเด•เตพ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด‰เดชเดฏเต‹เด—เดชเตเดฐเดฆเดฎเดพเดฃเต†เดจเตเดจเต เดžเดพเตป เดชเตเดฐเดคเต€เด•เตเดทเดฟเด•เตเด•เตเดจเตเดจเต. เดฒเต‡เด–เดจเดคเตเดคเดฟเดจเตเดฑเต† เดฎเดฟเด•เตเด• เด‰เดณเตเดณเดŸเด•เตเด•เด™เตเด™เดณเตเด‚ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด‡เดตเดฟเดŸเต†เดฏเตเด‚ เด•เดฃเตเดŸเต†เดคเตเดคเดพเดจเดพเด•เตเด‚ YouTube-เดฒเตเด‚ เดธเตเดฒเตˆเดกเตเด•เดณเดฟเดฒเตเด‚ DevOps Gathering 2019-เดฒเต† เดŽเดจเตเดฑเต† เดธเด‚เดธเดพเดฐเด‚.

Kubernetes-เตฝ เด•เตเดฒเต—เดกเต เดšเต†เดฒเดตเต เดฒเดพเดญเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดจเดฟเด™เตเด™เดณเตเดŸเต† เดฎเดฟเด•เดšเตเดš เดธเดฎเตเดชเตเดฐเดฆเดพเดฏเด™เตเด™เตพ เดเดคเดพเดฃเต? เดŽเดจเตเดจเดคเดฟเตฝ เดŽเดจเตเดจเต† เด…เดฑเดฟเดฏเดฟเด•เตเด•เต‚ Twitter (@try_except_).

[1] เดฏเดฅเดพเตผเดคเตเดฅเดคเตเดคเดฟเตฝ, เดฑเดฟเดธเตผเดตเต เดšเต†เดฏเตเดค เดธเดฟเดธเตเดฑเตเดฑเด‚ เดฑเดฟเดธเต‹เดดเตโ€Œเดธเตเด•เดณเดพเตฝ เดจเต‹เดกเดฟเดจเตเดฑเต† เดคเตเดฐเต‚เดชเตเดŸเตเดŸเต เด•เตเดฑเดฏเตเดจเตเดจเดคเดฟเดจเดพเตฝ 3-เตฝ เดคเดพเดดเต† vCPU-เด•เตพ เด‰เดชเดฏเต‹เด—เดฏเต‹เด—เตเดฏเดฎเดพเดฏเดฟ เดจเดฟเดฒเดจเดฟเตฝเด•เตเด•เตเด‚. เดซเดฟเดธเดฟเด•เตเด•เตฝ เดจเต‹เดกเต เด•เดชเตเดชเดพเดธเดฟเดฑเตเดฑเดฟเดฏเตเด‚ "เดชเตเดฐเตŠเดตเดฟเดทเตปเดกเต" เดฑเดฟเดธเต‹เดดเตเดธเตเด•เดณเตเด‚ เดคเดฎเตเดฎเดฟเตฝ เด•เตเดฌเต†เตผเดจเต†เดฑเตเดฑเดธเต เดตเต‡เตผเดคเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต (เดจเต‹เดกเต เด…เดฒเต‹เด•เตเด•เต‡เดฑเตเดฑเดฌเดฟเตพ).

[2] เด•เดฃเด•เตเด•เตเด•เต‚เดŸเตเดŸเตฝ เด‰เดฆเดพเดนเดฐเดฃเด‚: 5 GiB เดฎเต†เดฎเตเดฎเดฑเดฟเดฏเตเดณเตเดณ เด’เดฐเต m8. เดตเดฒเดฟเดฏ เด‰เดฆเดพเดนเดฐเดฃเด‚ เดชเตเดฐเดคเดฟเดฎเดพเดธเด‚ ~$84 โ€‹โ€‹เด†เดฃเต (eu-central-1, เด“เตบ-เดกเดฟเดฎเดพเตปเดกเต), เด…เดคเดพเดฏเดคเต. 1/8 เดจเต‹เดกเต เดคเดŸเดฏเตเดจเตเดจเดคเต เดเด•เดฆเต‡เดถเด‚ ~$10/เดฎเดพเดธเด‚ เด†เดฃเต.

[3] เดจเดฟเด™เตเด™เดณเตเดŸเต† EC2 เดฌเดฟเตฝ เด•เตเดฑเดฏเตเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต, เดฑเดฟเดธเตผเดตเต เดšเต†เดฏเตโ€Œเดค เดธเด‚เดญเดตเด™เตเด™เตพ, เดธเต‡เดตเดฟเด‚เด—เตโ€Œเดธเต เดชเตเดฒเดพเตป เดฎเตเดคเดฒเดพเดฏเดต เดชเต‹เดฒเตเดณเตเดณ เดจเดฟเดฐเดตเดงเดฟ เดฎเดพเตผเด—เด™เตเด™เดณเตเดฃเตเดŸเต. - เดžเดพเตป เด† เดตเดฟเดทเดฏเด™เตเด™เตพ เด‡เดตเดฟเดŸเต† เด•เดตเตผ เดšเต†เดฏเตเดฏเตเดจเตเดจเดฟเดฒเตเดฒ, เดŽเดจเตเดจเดพเตฝ เดจเดฟเด™เตเด™เตพ เดคเต€เตผเดšเตเดšเดฏเดพเดฏเตเด‚ เด…เดต เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เดฃเด‚!

เด•เต‹เดดเตเดธเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เด•เต‚เดŸเตเดคเดฒเดฑเดฟเดฏเตเด•.

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

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