แƒ“แƒแƒ–แƒแƒ’แƒ”แƒ— Kubernetes แƒฆแƒ แƒฃแƒ‘แƒšแƒแƒ•แƒแƒœแƒ˜ แƒฎแƒแƒ แƒฏแƒ”แƒ‘แƒ˜ AWS-แƒ–แƒ”

แƒกแƒขแƒแƒขแƒ˜แƒ˜แƒก แƒ—แƒแƒ แƒ’แƒ›แƒแƒœแƒ˜ แƒ›แƒแƒ›แƒ–แƒแƒ“แƒ“แƒ แƒ™แƒฃแƒ แƒกแƒ˜แƒก แƒ“แƒแƒฌแƒงแƒ”แƒ‘แƒ˜แƒก แƒฌแƒ˜แƒœแƒ แƒ“แƒฆแƒ”แƒก "แƒ˜แƒœแƒคแƒ แƒแƒกแƒขแƒ แƒฃแƒฅแƒขแƒฃแƒ แƒฃแƒšแƒ˜ แƒžแƒšแƒแƒขแƒคแƒแƒ แƒ›แƒ Kubernetes-แƒ–แƒ” แƒ“แƒแƒคแƒฃแƒซแƒœแƒ”แƒ‘แƒฃแƒšแƒ˜".

แƒ“แƒแƒ–แƒแƒ’แƒ”แƒ— Kubernetes แƒฆแƒ แƒฃแƒ‘แƒšแƒแƒ•แƒแƒœแƒ˜ แƒฎแƒแƒ แƒฏแƒ”แƒ‘แƒ˜ AWS-แƒ–แƒ”

แƒ แƒแƒ’แƒแƒ  แƒ“แƒแƒ–แƒแƒ’แƒแƒ— แƒฆแƒ แƒฃแƒ‘แƒšแƒ˜แƒก แƒฎแƒแƒ แƒฏแƒ”แƒ‘แƒ˜ Kubernetes-แƒ—แƒแƒœ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ˜แƒกแƒแƒก? แƒแƒ  แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก แƒ”แƒ แƒ—แƒ˜ แƒกแƒฌแƒแƒ แƒ˜ แƒ’แƒแƒ›แƒแƒกแƒแƒ•แƒแƒšแƒ˜, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ”แƒก แƒกแƒขแƒแƒขแƒ˜แƒ แƒแƒฆแƒฌแƒ”แƒ แƒก แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒ›แƒ”แƒœแƒขแƒก, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ“แƒแƒ’แƒ”แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒแƒ— แƒฃแƒคแƒ แƒ แƒ”แƒคแƒ”แƒฅแƒขแƒฃแƒ แƒแƒ“ แƒ›แƒแƒ แƒ—แƒแƒ— แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ”แƒ‘แƒ˜ แƒ“แƒ แƒจแƒ”แƒแƒ›แƒชแƒ˜แƒ แƒแƒ— แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒฆแƒ แƒฃแƒ‘แƒšแƒแƒ•แƒแƒœแƒ˜ แƒ’แƒแƒ›แƒแƒ—แƒ•แƒšแƒ”แƒ‘แƒ˜แƒก แƒฎแƒแƒ แƒฏแƒ”แƒ‘แƒ˜.

แƒ›แƒ” แƒ“แƒแƒ•แƒฌแƒ”แƒ แƒ” แƒ”แƒก แƒกแƒขแƒแƒขแƒ˜แƒ Kubernetes-แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก AWS-แƒ˜แƒก แƒ’แƒแƒ—แƒ•แƒแƒšแƒ˜แƒกแƒฌแƒ˜แƒœแƒ”แƒ‘แƒ˜แƒ—, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ˜แƒก (แƒ—แƒ˜แƒ—แƒฅแƒ›แƒ˜แƒก) แƒ–แƒฃแƒกแƒขแƒแƒ“ แƒ˜แƒ’แƒ˜แƒ•แƒ”แƒœแƒแƒ˜แƒ แƒแƒ“ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒกแƒฎแƒ•แƒ แƒฆแƒ แƒฃแƒ‘แƒšแƒแƒ•แƒแƒœ แƒžแƒ แƒแƒ•แƒแƒ˜แƒ“แƒ”แƒ แƒ”แƒ‘แƒ–แƒ”. แƒ›แƒ” แƒ•แƒแƒ แƒแƒฃแƒ“แƒแƒ‘, แƒ แƒแƒ› แƒ—แƒฅแƒ•แƒ”แƒœแƒก แƒ™แƒšแƒแƒกแƒขแƒ”แƒ (แƒ”แƒ‘)แƒก แƒฃแƒ™แƒ•แƒ” แƒแƒฅแƒ•แƒก แƒแƒ•แƒขแƒแƒกแƒ™แƒแƒšแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ (แƒ™แƒšแƒแƒกแƒขแƒ”แƒ -แƒแƒ•แƒขแƒแƒกแƒ™แƒแƒšแƒ”แƒ แƒ˜). แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ”แƒ‘แƒ˜แƒก แƒแƒ›แƒแƒฆแƒ”แƒ‘แƒ แƒ“แƒ แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒชแƒ˜แƒ แƒ”แƒ‘แƒ แƒ“แƒแƒ–แƒแƒ’แƒแƒ•แƒก แƒคแƒฃแƒšแƒก แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ˜แƒ› แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜, แƒ—แƒฃ แƒ”แƒก แƒแƒกแƒ”แƒ•แƒ” แƒจแƒ”แƒแƒ›แƒชแƒ˜แƒ แƒ”แƒ‘แƒก แƒ›แƒฃแƒจแƒแƒ—แƒ แƒ™แƒ•แƒแƒœแƒซแƒ”แƒ‘แƒ˜แƒก แƒคแƒšแƒแƒขแƒก (EC2 แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒ”แƒ‘แƒ˜).

แƒ”แƒก แƒกแƒขแƒแƒขแƒ˜แƒ แƒ›แƒแƒ˜แƒชแƒแƒ•แƒก:

  • แƒ’แƒแƒ›แƒแƒฃแƒงแƒ”แƒœแƒ”แƒ‘แƒ”แƒšแƒ˜ แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒฌแƒ›แƒ”แƒœแƒ“แƒ (แƒ™แƒฃแƒ‘แƒ”-แƒ“แƒแƒ›แƒšแƒแƒ’แƒ”แƒ‘แƒ”แƒšแƒ˜)
  • แƒจแƒ”แƒแƒ›แƒชแƒ˜แƒ แƒ”แƒ— แƒ›แƒแƒกแƒจแƒขแƒแƒ‘แƒ”แƒ‘แƒ˜ แƒแƒ แƒแƒกแƒแƒ›แƒฃแƒจแƒแƒ แƒกแƒแƒแƒ—แƒ”แƒ‘แƒจแƒ˜ (แƒ™แƒฃแƒ‘แƒ”-แƒ“แƒแƒ›แƒแƒ›แƒชแƒ˜แƒ แƒ”แƒ‘แƒ”แƒšแƒ˜)
  • แƒฐแƒแƒ แƒ˜แƒ–แƒแƒœแƒขแƒแƒšแƒฃแƒ แƒ˜ แƒแƒ•แƒขแƒแƒกแƒ™แƒแƒšแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก (HPA) แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—,
  • แƒ’แƒแƒ“แƒแƒญแƒแƒ แƒ‘แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒฏแƒแƒ•แƒจแƒœแƒ˜แƒก แƒจแƒ”แƒ›แƒชแƒ˜แƒ แƒ”แƒ‘แƒ (kube-resource-report, VPA)
  • Spot แƒ˜แƒœแƒกแƒขแƒแƒœแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—

แƒ’แƒแƒ›แƒแƒฃแƒงแƒ”แƒœแƒ”แƒ‘แƒ”แƒšแƒ˜ แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒฌแƒ›แƒ”แƒœแƒ“แƒ

แƒกแƒฌแƒ แƒแƒค แƒ’แƒแƒ แƒ”แƒ›แƒแƒจแƒ˜ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ แƒจแƒ”แƒกแƒแƒœแƒ˜แƒจแƒœแƒแƒ•แƒ˜แƒ. แƒฉแƒ•แƒ”แƒœ แƒ’แƒ•แƒ˜แƒœแƒ“แƒ แƒขแƒ”แƒฅแƒœแƒ˜แƒ™แƒฃแƒ แƒ˜ แƒแƒ แƒ’แƒแƒœแƒ˜แƒ–แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜ แƒแƒฉแƒฅแƒแƒ แƒ“แƒ. แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒฃแƒšแƒ˜ แƒฃแƒ–แƒ แƒฃแƒœแƒ•แƒ”แƒšแƒงแƒแƒคแƒ˜แƒก แƒฃแƒคแƒ แƒ แƒกแƒฌแƒ แƒแƒคแƒ˜ แƒ›แƒ˜แƒฌแƒแƒ“แƒ”แƒ‘แƒ แƒแƒกแƒ”แƒ•แƒ” แƒœแƒ˜แƒจแƒœแƒแƒ•แƒก แƒฃแƒคแƒ แƒ แƒ›แƒ”แƒข PR แƒ’แƒแƒœแƒ—แƒแƒ•แƒกแƒ”แƒ‘แƒแƒก, แƒ’แƒแƒ“แƒแƒฎแƒ”แƒ“แƒ•แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒ›แƒแƒก, แƒžแƒ แƒแƒขแƒแƒขแƒ˜แƒžแƒ”แƒ‘แƒก แƒ“แƒ แƒแƒœแƒแƒšแƒ˜แƒขแƒ˜แƒ™แƒฃแƒ แƒ˜ แƒ’แƒแƒ“แƒแƒฌแƒงแƒ•แƒ”แƒขแƒ˜แƒšแƒ”แƒ‘แƒ”แƒ‘แƒก. แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ Kubernetes-แƒ–แƒ”. แƒ•แƒ˜แƒก แƒแƒฅแƒ•แƒก แƒ“แƒ แƒ, แƒฎแƒ”แƒšแƒ˜แƒ— แƒ’แƒแƒแƒกแƒฃแƒคแƒ—แƒแƒ•แƒแƒก แƒกแƒแƒขแƒ”แƒกแƒขแƒ แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒ? แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜แƒ แƒ“แƒแƒ˜แƒ•แƒ˜แƒฌแƒงแƒ แƒ”แƒ แƒ—แƒ˜ แƒ™แƒ•แƒ˜แƒ แƒ˜แƒก แƒฌแƒ˜แƒœแƒแƒœแƒ“แƒ”แƒšแƒ˜ แƒ”แƒฅแƒกแƒžแƒ”แƒ แƒ˜แƒ›แƒ”แƒœแƒขแƒ˜แƒก แƒฌแƒแƒจแƒšแƒ. แƒฆแƒ แƒฃแƒ‘แƒšแƒ˜แƒก แƒ’แƒแƒ“แƒแƒกแƒแƒฎแƒแƒ“แƒ˜ แƒ’แƒแƒ˜แƒ–แƒ แƒ“แƒ”แƒ‘แƒ แƒ˜แƒ›แƒ˜แƒก แƒ’แƒแƒ›แƒ, แƒ แƒแƒช แƒ“แƒแƒ’แƒ•แƒแƒ•แƒ˜แƒฌแƒงแƒ“แƒ แƒ“แƒแƒฎแƒฃแƒ แƒ•แƒ:

แƒ“แƒแƒ–แƒแƒ’แƒ”แƒ— Kubernetes แƒฆแƒ แƒฃแƒ‘แƒšแƒแƒ•แƒแƒœแƒ˜ แƒฎแƒแƒ แƒฏแƒ”แƒ‘แƒ˜ AWS-แƒ–แƒ”

(แƒฐแƒ”แƒœแƒ˜แƒœแƒ’ แƒฏแƒ”แƒ˜แƒ™แƒแƒ‘แƒกแƒ˜:
แƒŸแƒ˜แƒ–แƒ:
(แƒชแƒ˜แƒขแƒแƒขแƒ”แƒ‘แƒ˜) แƒ™แƒแƒ แƒ˜ แƒฅแƒฃแƒ˜แƒœแƒ˜:
แƒ›แƒ˜แƒ—แƒ˜: แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ AWS แƒแƒœแƒ’แƒแƒ แƒ˜แƒจแƒ˜ แƒแƒ แƒ˜แƒก แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒšแƒ”แƒ‘แƒ˜แƒก แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒ˜แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ.
แƒคแƒแƒฅแƒขแƒ˜: แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ AWS แƒฅแƒฃแƒšแƒ แƒแƒ แƒ˜แƒก แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒ˜แƒœแƒŸแƒ˜แƒœแƒ แƒ”แƒ‘แƒ˜แƒก แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒ˜แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ.

แƒ˜แƒ•แƒแƒœ แƒ™แƒฃแƒ แƒœแƒแƒกแƒแƒ•แƒ˜ (แƒกแƒแƒžแƒแƒกแƒฃแƒฎแƒแƒ“):
แƒ แƒ”แƒแƒšแƒฃแƒ แƒ˜ แƒคแƒแƒฅแƒขแƒ˜: แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ AWS แƒฅแƒฃแƒšแƒ แƒแƒ แƒ˜แƒก แƒ˜แƒ› แƒœแƒ˜แƒ•แƒ—แƒ”แƒ‘แƒ˜แƒก แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒ˜แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ—แƒ แƒ’แƒแƒ›แƒแƒ แƒ—แƒ•แƒ/แƒฌแƒแƒจแƒšแƒ แƒ“แƒแƒ’แƒแƒ•แƒ˜แƒฌแƒงแƒ“แƒแƒ—.)

แƒ™แƒฃแƒ‘แƒ”แƒ แƒœแƒ”แƒขแƒ˜แƒก แƒ“แƒแƒ›แƒšแƒแƒ’แƒ”แƒ‘แƒ”แƒšแƒ˜ (แƒ™แƒฃแƒ‘แƒ”-แƒ“แƒแƒ›แƒšแƒแƒ’แƒ”แƒ‘แƒ”แƒšแƒ˜) แƒ’แƒ”แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒแƒ— แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒ˜แƒก แƒ’แƒแƒกแƒฃแƒคแƒ—แƒแƒ•แƒ”แƒ‘แƒแƒจแƒ˜. แƒ“แƒแƒ›แƒšแƒแƒ’แƒ”แƒ‘แƒšแƒ˜แƒก แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ แƒ›แƒแƒฅแƒœแƒ˜แƒšแƒ˜แƒ แƒ แƒแƒ’แƒแƒ แƒช แƒ’แƒšแƒแƒ‘แƒแƒšแƒฃแƒ แƒ˜, แƒแƒกแƒ”แƒ•แƒ” แƒแƒ“แƒ’แƒ˜แƒšแƒแƒ‘แƒ แƒ˜แƒ•แƒ˜ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก:

  • แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒ˜แƒก แƒ›แƒแƒกแƒจแƒขแƒแƒ‘แƒ˜แƒก แƒฌแƒ”แƒกแƒ”แƒ‘แƒก แƒจแƒ”แƒฃแƒซแƒšแƒ˜แƒแƒ— แƒ’แƒแƒœแƒกแƒแƒ–แƒฆแƒ•แƒ แƒแƒœ PR/แƒขแƒ”แƒกแƒขแƒ˜ แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒฅแƒกแƒ˜แƒ›แƒแƒšแƒฃแƒ แƒ˜ แƒ“แƒ แƒ (TTL).
  • แƒ˜แƒœแƒ“แƒ˜แƒ•แƒ˜แƒ“แƒฃแƒแƒšแƒฃแƒ แƒ˜ แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ”แƒ‘แƒ˜แƒก แƒแƒœแƒแƒขแƒแƒชแƒ˜แƒ แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒ“แƒแƒ›แƒšแƒแƒ’แƒ”แƒ‘แƒ”แƒšแƒ˜/ttl-แƒ˜แƒ—, แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, 7 แƒ“แƒฆแƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒกแƒžแƒ˜แƒ™แƒ˜แƒก/แƒžแƒ แƒแƒขแƒแƒขแƒ˜แƒžแƒ˜แƒก แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒฃแƒ แƒแƒ“ แƒแƒ›แƒแƒฆแƒ”แƒ‘แƒ.

แƒ–แƒแƒ’แƒแƒ“แƒ˜ แƒฌแƒ”แƒกแƒ”แƒ‘แƒ˜ แƒ’แƒแƒœแƒกแƒแƒ–แƒฆแƒ•แƒ แƒฃแƒšแƒ˜แƒ YAML แƒคแƒแƒ˜แƒšแƒจแƒ˜. แƒ›แƒ˜แƒกแƒ˜ แƒ’แƒ–แƒ แƒ’แƒแƒ“แƒ˜แƒก แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ–แƒ” --rules-file แƒ™แƒฃแƒ‘แƒ”-แƒ“แƒแƒ›แƒšแƒแƒ’แƒ”แƒ‘แƒ”แƒšแƒจแƒ˜. แƒแƒฅ แƒแƒ แƒ˜แƒก แƒฌแƒ”แƒกแƒ˜แƒก แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜, แƒ แƒแƒ›แƒšแƒ˜แƒ—แƒแƒช แƒฌแƒแƒจแƒแƒšแƒ”แƒ— แƒงแƒ•แƒ”แƒšแƒ แƒกแƒแƒฎแƒ”แƒšแƒ—แƒ แƒกแƒ˜แƒ•แƒ แƒชแƒ” -pr- แƒกแƒแƒฎแƒ”แƒšแƒ˜แƒ— แƒแƒ แƒ˜ แƒ“แƒฆแƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’:

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

แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜ แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜ แƒแƒ แƒ”แƒ’แƒฃแƒšแƒ˜แƒ แƒ”แƒ‘แƒก แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒšแƒ”แƒ˜แƒ‘แƒšแƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒแƒก Deployment แƒ“แƒ StatefulSet pods-แƒ–แƒ” แƒงแƒ•แƒ”แƒšแƒ แƒแƒฎแƒแƒšแƒ˜ Deployments/StatefulSets-แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก 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 แƒฌแƒฃแƒ—แƒ˜แƒก แƒ’แƒแƒœแƒ›แƒแƒ•แƒšแƒแƒ‘แƒแƒจแƒ˜ แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒ–แƒ”, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก kube-janitor:

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

แƒฎแƒแƒ แƒฏแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ–แƒ แƒ“แƒ˜แƒก แƒ™แƒ˜แƒ“แƒ”แƒ• แƒ”แƒ แƒ—แƒ˜ แƒฌแƒงแƒแƒ แƒแƒ แƒ›แƒฃแƒ“แƒ›แƒ˜แƒ•แƒ˜ แƒ›แƒแƒชแƒฃแƒšแƒแƒ‘แƒ”แƒ‘แƒ˜ (AWS EBS). Kubernetes StatefulSet-แƒ˜แƒก แƒฌแƒแƒจแƒšแƒ แƒแƒ  แƒฌแƒแƒจแƒšแƒ˜แƒก แƒ›แƒ˜แƒก แƒ›แƒฃแƒ“แƒ›แƒ˜แƒ• แƒขแƒแƒ›แƒ”แƒ‘แƒก (PVC - PersistentVolumeClaim). แƒ’แƒแƒ›แƒแƒฃแƒงแƒ”แƒœแƒ”แƒ‘แƒ”แƒšแƒ˜ EBS แƒขแƒแƒ›แƒ”แƒ‘แƒ˜ แƒแƒ“แƒ•แƒ˜แƒšแƒแƒ“ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ’แƒแƒ›แƒแƒ˜แƒฌแƒ•แƒ˜แƒแƒก แƒ—แƒ•แƒ”แƒจแƒ˜ แƒแƒกแƒแƒ‘แƒ˜แƒ— แƒ“แƒแƒšแƒแƒ แƒ˜แƒก แƒฎแƒแƒ แƒฏแƒ”แƒ‘แƒ˜. Kubernetes Janitor-แƒก แƒแƒฅแƒ•แƒก แƒ’แƒแƒ›แƒแƒฃแƒงแƒ”แƒœแƒ”แƒ‘แƒ”แƒšแƒ˜ PVC-แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒฌแƒ›แƒ”แƒœแƒ“แƒ˜แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ. แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒ”แƒก แƒฌแƒ”แƒกแƒ˜ แƒฌแƒแƒจแƒšแƒ˜แƒก แƒงแƒ•แƒ”แƒšแƒ PVC-แƒก, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒแƒ  แƒแƒ แƒ˜แƒก แƒ“แƒแƒ›แƒแƒœแƒขแƒแƒŸแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ›แƒแƒ“แƒฃแƒšแƒ˜แƒ— แƒ“แƒ แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒแƒ  แƒแƒ แƒ˜แƒก แƒ›แƒ˜แƒ—แƒ˜แƒ—แƒ”แƒ‘แƒฃแƒšแƒ˜ StatefulSet-แƒ˜แƒก แƒแƒœ CronJob-แƒ˜แƒก แƒ›แƒ˜แƒ”แƒ :

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

Kubernetes Janitor แƒ“แƒแƒ’แƒ”แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒแƒ— แƒจแƒ”แƒ˜แƒœแƒแƒ แƒฉแƒฃแƒœแƒแƒ— แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒ˜ แƒกแƒ˜แƒกแƒฃแƒคแƒ—แƒแƒ•แƒ” แƒ“แƒ แƒ—แƒแƒ•แƒ˜แƒ“แƒแƒœ แƒแƒ˜แƒชแƒ˜แƒšแƒแƒ— แƒฆแƒ แƒฃแƒ‘แƒšแƒแƒ•แƒแƒœแƒ˜ แƒ’แƒแƒ›แƒแƒ—แƒ•แƒšแƒ˜แƒก แƒฎแƒแƒ แƒฏแƒ”แƒ‘แƒ˜แƒก แƒœแƒ”แƒšแƒ แƒ“แƒแƒ’แƒ แƒแƒ•แƒ”แƒ‘แƒ. แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒ˜แƒกแƒ แƒ“แƒ แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ˜แƒก แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ›แƒ˜แƒฐแƒงแƒ”แƒ•แƒ˜แƒ— แƒฌแƒแƒ˜แƒ™แƒ˜แƒ—แƒฎแƒ”แƒ— แƒ™แƒฃแƒ‘แƒ”-แƒ“แƒแƒ›แƒšแƒแƒ’แƒ”แƒ‘แƒ”แƒšแƒ˜.

แƒจแƒ”แƒแƒ›แƒชแƒ˜แƒ แƒ”แƒ— แƒกแƒ™แƒแƒšแƒ˜แƒ แƒ”แƒ‘แƒ แƒแƒ แƒแƒกแƒแƒ›แƒฃแƒจแƒแƒ แƒกแƒแƒแƒ—แƒ”แƒ‘แƒจแƒ˜

แƒขแƒ”แƒกแƒขแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒกแƒ แƒ“แƒ แƒ“แƒแƒ“แƒ’แƒ›แƒ˜แƒก แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ”แƒ‘แƒ˜, แƒ แƒแƒ’แƒแƒ แƒช แƒฌแƒ”แƒกแƒ˜, แƒกแƒแƒญแƒ˜แƒ แƒแƒ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒกแƒแƒ›แƒฃแƒจแƒแƒ แƒกแƒแƒแƒ—แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒœแƒ›แƒแƒ•แƒšแƒแƒ‘แƒแƒจแƒ˜. แƒ–แƒแƒ’แƒ˜แƒ”แƒ แƒ—แƒ˜ แƒกแƒแƒฌแƒแƒ แƒ›แƒแƒ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ, แƒ แƒแƒ’แƒแƒ แƒ˜แƒชแƒแƒ back office/admin แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒ›แƒ”แƒœแƒขแƒ”แƒ‘แƒ˜, แƒแƒกแƒ”แƒ•แƒ” แƒ›แƒแƒ˜แƒ—แƒฎแƒแƒ•แƒก แƒ›แƒฎแƒแƒšแƒแƒ“ แƒจแƒ”แƒ–แƒฆแƒฃแƒ“แƒฃแƒš แƒฎแƒ”แƒšแƒ›แƒ˜แƒกแƒแƒฌแƒ•แƒ“แƒแƒ›แƒแƒ‘แƒแƒก แƒ“แƒ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ’แƒแƒ›แƒแƒ แƒ—แƒฃแƒšแƒ˜ แƒ˜แƒงแƒแƒก แƒฆแƒแƒ›แƒ˜แƒ—.

Kubernetes Downscaler (kube-downscaler) แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒšแƒ”แƒ‘แƒก แƒ“แƒ แƒแƒžแƒ”แƒ แƒแƒขแƒแƒ แƒ”แƒ‘แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒแƒซแƒšแƒ”แƒ•แƒก แƒจแƒ”แƒแƒ›แƒชแƒ˜แƒ แƒแƒœ แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ แƒแƒ แƒแƒกแƒแƒ›แƒฃแƒจแƒแƒ แƒกแƒแƒแƒ—แƒ”แƒ‘แƒจแƒ˜. Deployments แƒ“แƒ StatefulSets แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ›แƒแƒกแƒจแƒขแƒแƒ‘แƒ˜แƒ แƒ”แƒ‘แƒ แƒœแƒฃแƒšแƒแƒ•แƒแƒœแƒ˜ แƒ แƒ”แƒžแƒšแƒ˜แƒ™แƒ. 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

แƒแƒฅ แƒแƒ แƒ˜แƒก แƒ’แƒ แƒแƒคแƒ˜แƒ™แƒ˜ แƒจแƒแƒ‘แƒแƒ—-แƒ™แƒ•แƒ˜แƒ แƒแƒก แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒฃแƒšแƒ˜ แƒ›แƒฃแƒจแƒ แƒ™แƒ•แƒแƒœแƒซแƒ”แƒ‘แƒ˜แƒก แƒกแƒ™แƒแƒšแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก แƒ›แƒ˜แƒ–แƒœแƒ˜แƒ—:

แƒ“แƒแƒ–แƒแƒ’แƒ”แƒ— Kubernetes แƒฆแƒ แƒฃแƒ‘แƒšแƒแƒ•แƒแƒœแƒ˜ แƒฎแƒแƒ แƒฏแƒ”แƒ‘แƒ˜ AWS-แƒ–แƒ”

~13-แƒ“แƒแƒœ 4 แƒ›แƒฃแƒจแƒ แƒ™แƒ•แƒแƒœแƒซแƒแƒ›แƒ“แƒ” แƒจแƒ”แƒ›แƒชแƒ˜แƒ แƒ”แƒ‘แƒ, แƒ แƒ แƒ—แƒฅแƒ›แƒ แƒฃแƒœแƒ“แƒ, แƒจแƒ”แƒกแƒแƒ›แƒฉแƒœแƒ”แƒ• แƒ’แƒแƒœแƒกแƒฎแƒ•แƒแƒ•แƒ”แƒ‘แƒแƒก แƒฅแƒ›แƒœแƒ˜แƒก แƒ—แƒฅแƒ•แƒ”แƒœแƒก AWS แƒ™แƒแƒœแƒแƒœแƒžแƒ แƒแƒ”แƒฅแƒขแƒจแƒ˜.

แƒ›แƒแƒ’แƒ แƒแƒ› แƒ แƒ แƒ›แƒแƒฎแƒ“แƒ”แƒ‘แƒ, แƒ—แƒฃ แƒ›แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒฃแƒšแƒ˜ "แƒจแƒ”แƒฃแƒกแƒ•แƒ”แƒœแƒ”แƒ‘แƒšแƒแƒ‘แƒ˜แƒก" แƒ“แƒ แƒแƒก? แƒ–แƒแƒ’แƒ˜แƒ”แƒ แƒ—แƒ˜ แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒกแƒแƒ›แƒฃแƒ“แƒแƒ›แƒแƒ“ แƒ’แƒแƒ›แƒแƒ˜แƒ แƒ˜แƒชแƒฎแƒแƒก แƒกแƒ™แƒแƒšแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒกแƒ’แƒแƒœ, แƒจแƒ”แƒ›แƒชแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก/แƒ’แƒแƒ›แƒแƒ แƒ˜แƒชแƒฎแƒ•แƒ˜แƒก: แƒœแƒแƒ›แƒ“แƒ•แƒ˜แƒšแƒ˜ แƒแƒœแƒแƒขแƒแƒชแƒ˜แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ—. แƒ“แƒแƒœแƒ”แƒ แƒ’แƒ•แƒ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ“แƒ แƒแƒ”แƒ‘แƒ˜แƒ— แƒ’แƒแƒ›แƒแƒ˜แƒ แƒ˜แƒชแƒฎแƒแƒก แƒจแƒ”แƒ›แƒชแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก/แƒ’แƒแƒ›แƒแƒ แƒ˜แƒชแƒฎแƒ•แƒ˜แƒก แƒแƒœแƒแƒขแƒแƒชแƒ˜แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ— แƒแƒ‘แƒกแƒแƒšแƒฃแƒขแƒฃแƒ แƒ˜ แƒ“แƒ แƒแƒ˜แƒก แƒจแƒขแƒแƒ›แƒžแƒ˜แƒ— แƒคแƒแƒ แƒ›แƒแƒขแƒจแƒ˜ แƒฌแƒฌแƒฌ-แƒ—แƒ›-แƒ“แƒ“ 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, แƒ—แƒฃ แƒ’แƒแƒ˜แƒœแƒขแƒ”แƒ แƒ”แƒกแƒ”แƒ‘แƒ— แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒ˜แƒก แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜ แƒ“แƒ แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ—แƒ˜ แƒ•แƒแƒ แƒ˜แƒแƒœแƒขแƒ”แƒ‘แƒ˜.

แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ— แƒฐแƒแƒ แƒ˜แƒ–แƒแƒœแƒขแƒแƒšแƒฃแƒ แƒ˜ แƒแƒ•แƒขแƒแƒกแƒ™แƒแƒšแƒ˜แƒ แƒ”แƒ‘แƒ

แƒ‘แƒ”แƒ•แƒ แƒ˜ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ/แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ˜ แƒ”แƒฎแƒ”แƒ‘แƒ แƒ“แƒ˜แƒœแƒแƒ›แƒ˜แƒฃแƒ แƒ˜ แƒฉแƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ˜แƒก แƒจแƒแƒ‘แƒšแƒแƒœแƒก: แƒ–แƒแƒ’แƒฏแƒ”แƒ  แƒ›แƒแƒ—แƒ˜ แƒ›แƒแƒ“แƒฃแƒšแƒ”แƒ‘แƒ˜ แƒฃแƒ›แƒแƒฅแƒ›แƒ”แƒ“แƒแƒ แƒ“แƒ แƒ–แƒแƒ’แƒฏแƒ”แƒ  แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ”แƒœ แƒกแƒ แƒฃแƒšแƒ˜ แƒ“แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ˜แƒ—. แƒฆแƒ•แƒ”แƒ–แƒ”แƒšแƒ”แƒ‘แƒ˜แƒก แƒ›แƒฃแƒ“แƒ›แƒ˜แƒ•แƒ˜ แƒคแƒšแƒแƒขแƒ˜แƒก แƒ”แƒฅแƒกแƒžแƒšแƒฃแƒแƒขแƒแƒชแƒ˜แƒ แƒ›แƒแƒฅแƒกแƒ˜แƒ›แƒแƒšแƒฃแƒ แƒ˜ แƒžแƒ˜แƒ™แƒฃแƒ แƒ˜ แƒ“แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ˜แƒก แƒ“แƒแƒกแƒแƒซแƒšแƒ”แƒ•แƒแƒ“ แƒแƒ  แƒแƒ แƒ˜แƒก แƒ”แƒ™แƒแƒœแƒแƒ›แƒ˜แƒฃแƒ แƒ˜. Kubernetes แƒ›แƒฎแƒแƒ แƒก แƒฃแƒญแƒ”แƒ แƒก แƒฐแƒแƒ แƒ˜แƒ–แƒแƒœแƒขแƒแƒšแƒฃแƒ  แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒฃแƒ  แƒกแƒ™แƒแƒšแƒ˜แƒ แƒ”แƒ‘แƒแƒก แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ–แƒ” HorizontalPodAutoscaler (HPA). CPU-แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒฎแƒจแƒ˜แƒ แƒแƒ“ แƒ™แƒแƒ แƒ’แƒ˜ แƒ›แƒแƒฉแƒ•แƒ”แƒœแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒกแƒ™แƒแƒšแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก:

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 แƒแƒ“แƒแƒžแƒขแƒ”แƒ แƒ˜ (kube-metrics-adapter) แƒแƒ แƒ˜แƒก แƒ–แƒแƒ’แƒแƒ“แƒ˜ แƒ›แƒ”แƒขแƒ แƒ˜แƒ™แƒ˜แƒก แƒแƒ“แƒแƒžแƒขแƒ”แƒ แƒ˜ Kubernetes-แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒ แƒแƒ›แƒ”แƒšแƒกแƒแƒช แƒจแƒ”แƒฃแƒซแƒšแƒ˜แƒ แƒจแƒ”แƒแƒ’แƒ แƒแƒ•แƒแƒก แƒ“แƒ แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒแƒก แƒ›แƒแƒ แƒ’แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ“แƒ แƒ’แƒแƒ แƒ” แƒ›แƒ”แƒขแƒ แƒ˜แƒ™แƒ แƒžแƒแƒ“แƒ”แƒ‘แƒ˜แƒก แƒฐแƒแƒ แƒ˜แƒ–แƒแƒœแƒขแƒแƒšแƒฃแƒ แƒ˜ แƒแƒ•แƒขแƒแƒกแƒ™แƒแƒšแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก. แƒ˜แƒ’แƒ˜ แƒ›แƒฎแƒแƒ แƒก แƒฃแƒญแƒ”แƒ แƒก แƒกแƒ™แƒแƒšแƒ˜แƒ แƒ”แƒ‘แƒแƒก แƒžแƒ แƒแƒ›แƒ”แƒ—แƒ”แƒก แƒ›แƒ”แƒขแƒ แƒ˜แƒ™แƒ˜แƒก, SQS แƒ แƒ˜แƒ’แƒ”แƒ‘แƒ˜แƒกแƒ แƒ“แƒ แƒกแƒฎแƒ•แƒ แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒคแƒฃแƒซแƒ•แƒ”แƒšแƒ–แƒ”. แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒกแƒจแƒขแƒแƒ‘แƒ˜แƒ แƒ”แƒ‘แƒ แƒ›แƒแƒ แƒ’แƒ”แƒ‘แƒฃแƒš แƒ›แƒ”แƒขแƒ แƒ–แƒ”, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒฌแƒแƒ แƒ›แƒแƒ“แƒ’แƒ”แƒœแƒ˜แƒšแƒ˜แƒ แƒ—แƒแƒ•แƒแƒ“ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒ›แƒ˜แƒ”แƒ  JSON-แƒ˜แƒก แƒกแƒแƒฎแƒ˜แƒ— /metrics-แƒจแƒ˜ แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ—:

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-แƒกแƒ—แƒ•แƒ˜แƒก: แƒ’แƒแƒแƒคแƒแƒ แƒ—แƒแƒ•แƒ”แƒ— แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒ แƒ“แƒ แƒแƒ แƒ แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒกแƒแƒคแƒฃแƒšแƒ”.

แƒจแƒ”แƒแƒ›แƒชแƒ˜แƒ แƒ”แƒ— แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ“แƒแƒญแƒแƒ แƒ‘แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ“แƒแƒฏแƒแƒ•แƒจแƒœแƒ

Kubernetes-แƒ˜แƒก แƒ“แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ แƒ’แƒแƒœแƒกแƒแƒ–แƒฆแƒ•แƒ แƒแƒ•แƒก แƒ›แƒแƒ— CPU/แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒญแƒ˜แƒ แƒแƒ”แƒ‘แƒ”แƒ‘แƒก โ€žแƒ แƒ”แƒกแƒฃแƒ แƒกแƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ˜แƒกโ€œ แƒ›แƒ”แƒจแƒ•แƒ”แƒแƒ‘แƒ˜แƒ—. CPU แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ”แƒ‘แƒ˜ แƒ˜แƒ–แƒแƒ›แƒ”แƒ‘แƒ แƒ•แƒ˜แƒ แƒขแƒฃแƒแƒšแƒฃแƒ  แƒ‘แƒ˜แƒ แƒ—แƒ•แƒ”แƒ‘แƒจแƒ˜ แƒแƒœ แƒฃแƒคแƒ แƒ แƒฎแƒจแƒ˜แƒ แƒแƒ“ "แƒ›แƒ˜แƒšแƒ˜แƒ™แƒแƒ แƒ”แƒ‘แƒจแƒ˜", แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“ 500m แƒ’แƒฃแƒšแƒ˜แƒกแƒฎแƒ›แƒแƒ‘แƒก 50% vCPU. แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒ˜แƒก แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ”แƒ‘แƒ˜ แƒ˜แƒ–แƒแƒ›แƒ”แƒ‘แƒ แƒ‘แƒแƒ˜แƒขแƒ”แƒ‘แƒจแƒ˜ แƒ“แƒ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒš แƒ˜แƒฅแƒœแƒแƒก แƒฉแƒ•แƒ”แƒฃแƒšแƒ”แƒ‘แƒ แƒ˜แƒ•แƒ˜ แƒกแƒฃแƒคแƒ˜แƒฅแƒกแƒ”แƒ‘แƒ˜, แƒ แƒแƒ’แƒแƒ แƒ˜แƒชแƒแƒ 500Mi, แƒ แƒแƒช แƒœแƒ˜แƒจแƒœแƒแƒ•แƒก 500 แƒ›แƒ”แƒ’แƒแƒ‘แƒแƒ˜แƒขแƒก. แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ˜ แƒ˜แƒ—แƒฎแƒแƒ•แƒก "แƒ“แƒแƒ‘แƒšแƒแƒ™แƒ•แƒ˜แƒก" แƒขแƒ”แƒ•แƒแƒ“แƒแƒ‘แƒแƒก แƒ›แƒฃแƒจแƒ แƒ™แƒ•แƒแƒœแƒซแƒ”แƒ‘แƒ–แƒ”, แƒ แƒแƒช แƒœแƒ˜แƒจแƒœแƒแƒ•แƒก, แƒ แƒแƒ› แƒ™แƒ•แƒแƒœแƒซแƒ˜ 1000 แƒ› CPU แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ˜แƒ— แƒ™แƒ•แƒแƒœแƒซแƒ–แƒ” 4 vCPU-แƒ˜แƒ— แƒ“แƒแƒขแƒแƒ•แƒ”แƒ‘แƒก แƒ›แƒฎแƒแƒšแƒแƒ“ 3 vCPU-แƒก แƒฎแƒ”แƒšแƒ›แƒ˜แƒกแƒแƒฌแƒ•แƒ“แƒแƒ›แƒก แƒกแƒฎแƒ•แƒ แƒžแƒแƒ“แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก. [1]

แƒกแƒฃแƒกแƒขแƒ˜ (แƒญแƒแƒ แƒ‘แƒ˜ แƒ แƒ”แƒ–แƒ”แƒ แƒ•แƒ˜) แƒแƒ แƒ˜แƒก แƒ’แƒแƒœแƒกแƒฎแƒ•แƒแƒ•แƒ”แƒ‘แƒ แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ˜แƒš แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ”แƒ‘แƒกแƒ แƒ“แƒ แƒ แƒ”แƒแƒšแƒฃแƒ  แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒแƒก แƒจแƒแƒ แƒ˜แƒก. แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒžแƒแƒ“แƒก, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ˜แƒ—แƒฎแƒแƒ•แƒก 2 แƒ’แƒ˜แƒ‘ แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒแƒก, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒก แƒ›แƒฎแƒแƒšแƒแƒ“ 200 แƒ›แƒ˜แƒ‘แƒแƒ˜แƒขแƒก, แƒแƒฅแƒ•แƒก ~1,8 แƒ’แƒ˜แƒ‘แƒแƒ˜แƒขแƒ˜ "แƒญแƒแƒ แƒ‘แƒ˜" แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒ. แƒญแƒแƒ แƒ‘แƒ˜ แƒคแƒฃแƒšแƒ˜ แƒฆแƒ˜แƒ แƒก. แƒฃแƒฎแƒ”แƒจแƒแƒ“ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒจแƒ”แƒคแƒแƒกแƒ“แƒ”แƒก, แƒ แƒแƒ› แƒ–แƒ”แƒ“แƒ›แƒ”แƒขแƒ˜ แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒ˜แƒก 1 แƒ’แƒ˜แƒ‘แƒแƒ˜แƒขแƒ˜ แƒ—แƒ•แƒ”แƒจแƒ˜ 10$ แƒฆแƒ˜แƒ แƒก. [2]

Kubernetes แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ”แƒ‘แƒ˜แƒก แƒแƒœแƒ’แƒแƒ แƒ˜แƒจแƒ˜ (kube-resource-report) แƒแƒฉแƒ•แƒ”แƒœแƒ”แƒ‘แƒก แƒ–แƒ”แƒ“แƒ›แƒ”แƒข แƒ แƒ”แƒ–แƒ”แƒ แƒ•แƒ”แƒ‘แƒก แƒ“แƒ แƒ“แƒแƒ’แƒ”แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒแƒ— แƒ“แƒแƒ–แƒแƒ’แƒแƒ— แƒ“แƒแƒ–แƒแƒ’แƒ•แƒ˜แƒก แƒžแƒแƒขแƒ”แƒœแƒชแƒ˜แƒแƒšแƒ˜:

แƒ“แƒแƒ–แƒแƒ’แƒ”แƒ— Kubernetes แƒฆแƒ แƒฃแƒ‘แƒšแƒแƒ•แƒแƒœแƒ˜ แƒฎแƒแƒ แƒฏแƒ”แƒ‘แƒ˜ AWS-แƒ–แƒ”

Kubernetes แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ”แƒ‘แƒ˜แƒก แƒแƒœแƒ’แƒแƒ แƒ˜แƒจแƒ˜ แƒ’แƒ•แƒ˜แƒฉแƒ•แƒ”แƒœแƒ”แƒ‘แƒก แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒกแƒ แƒ“แƒ แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ˜แƒก แƒ›แƒ˜แƒ”แƒ  แƒแƒ’แƒ แƒ”แƒ’แƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒญแƒแƒ แƒ‘แƒ˜ แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒแƒก. แƒ”แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒ’แƒแƒซแƒšแƒ”แƒ•แƒ— แƒ˜แƒžแƒแƒ•แƒแƒ— แƒแƒ“แƒ’แƒ˜แƒšแƒ”แƒ‘แƒ˜, แƒกแƒแƒ“แƒแƒช แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒจแƒ”แƒ›แƒชแƒ˜แƒ แƒ“แƒ”แƒก. แƒ’แƒ”แƒœแƒ”แƒ แƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ HTML แƒแƒœแƒ’แƒแƒ แƒ˜แƒจแƒ˜ แƒ˜แƒซแƒšแƒ”แƒ•แƒ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒกแƒฃแƒ แƒแƒ—แƒก. แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒ’แƒแƒ“แƒแƒฎแƒ”แƒ“แƒแƒ— CPU/แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒแƒก แƒ“แƒ แƒแƒ—แƒ แƒ’แƒแƒœแƒ›แƒแƒ•แƒšแƒแƒ‘แƒแƒจแƒ˜, แƒ แƒแƒ—แƒ แƒ“แƒแƒ“แƒ’แƒ˜แƒœแƒ“แƒ”แƒก แƒแƒ“แƒ”แƒ™แƒ•แƒแƒขแƒฃแƒ แƒ˜ แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ˜แƒก แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ”แƒ‘แƒ˜. แƒแƒฅ แƒแƒ แƒ˜แƒก Grafana แƒ“แƒ˜แƒแƒ’แƒ แƒแƒ›แƒ "แƒขแƒ˜แƒžแƒ˜แƒฃแƒ แƒ˜" CPU-แƒ–แƒ” แƒ›แƒซแƒ˜แƒ›แƒ” แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก: แƒงแƒ•แƒ”แƒšแƒ pods แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒก แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ•แƒœแƒแƒ“ แƒœแƒแƒ™แƒšแƒ”แƒ‘แƒก, แƒ•แƒ˜แƒ“แƒ แƒ” 3 แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ˜แƒšแƒ˜ CPU แƒ‘แƒ˜แƒ แƒ—แƒ•แƒ˜:

แƒ“แƒแƒ–แƒแƒ’แƒ”แƒ— Kubernetes แƒฆแƒ แƒฃแƒ‘แƒšแƒแƒ•แƒแƒœแƒ˜ แƒฎแƒแƒ แƒฏแƒ”แƒ‘แƒ˜ AWS-แƒ–แƒ”

CPU แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ˜แƒก แƒจแƒ”แƒ›แƒชแƒ˜แƒ แƒ”แƒ‘แƒ 3000 แƒ›-แƒ“แƒแƒœ ~400 แƒ›-แƒ›แƒ“แƒ” แƒแƒ—แƒแƒ•แƒ˜แƒกแƒฃแƒคแƒšแƒ”แƒ‘แƒก แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ”แƒ‘แƒก แƒกแƒฎแƒ•แƒ แƒ“แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ“แƒ แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒแƒซแƒšแƒ”แƒ•แƒก แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒก แƒ˜แƒงแƒแƒก แƒฃแƒคแƒ แƒ แƒ›แƒชแƒ˜แƒ แƒ”.

"EC2 แƒ˜แƒœแƒกแƒขแƒแƒœแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก CPU-แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒฎแƒจแƒ˜แƒ แƒแƒ“ แƒ”แƒ แƒ—แƒœแƒ˜แƒจแƒœแƒ แƒžแƒ แƒแƒชแƒ”แƒœแƒขแƒฃแƒš แƒ“แƒ˜แƒแƒžแƒแƒ–แƒแƒœแƒจแƒ˜แƒ." แƒฌแƒ”แƒ แƒก แƒ™แƒแƒ แƒ˜ แƒฅแƒฃแƒ˜แƒœแƒ˜. แƒฎแƒแƒšแƒ EC2-แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒกแƒฌแƒแƒ แƒ˜ แƒ–แƒแƒ›แƒ˜แƒก แƒจแƒ”แƒคแƒแƒกแƒ”แƒ‘แƒ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒชแƒฃแƒ“แƒ˜ แƒ’แƒแƒ“แƒแƒฌแƒงแƒ•แƒ”แƒขแƒ˜แƒšแƒ”แƒ‘แƒ แƒ˜แƒงแƒแƒกYAML แƒคแƒแƒ˜แƒšแƒจแƒ˜ Kubernetes-แƒ˜แƒก แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ˜แƒก แƒ–แƒแƒ’แƒ˜แƒ”แƒ แƒ—แƒ˜ แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ˜แƒก แƒจแƒ”แƒชแƒ•แƒšแƒ แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜แƒ แƒ“แƒ แƒจแƒ”แƒฃแƒซแƒšแƒ˜แƒ แƒฃแƒ–แƒแƒ แƒ›แƒแƒ–แƒแƒ แƒ˜ แƒ“แƒแƒœแƒแƒ–แƒแƒ’แƒ˜แƒก แƒ›แƒแƒขแƒแƒœแƒ.

แƒ›แƒแƒ’แƒ แƒแƒ› แƒฉแƒ•แƒ”แƒœ แƒœแƒแƒ›แƒ“แƒ•แƒ˜แƒšแƒแƒ“ แƒ’แƒ•แƒ˜แƒœแƒ“แƒ, แƒ แƒแƒ› แƒแƒ“แƒแƒ›แƒ˜แƒแƒœแƒ”แƒ‘แƒ›แƒ แƒจแƒ”แƒชแƒ•แƒแƒšแƒแƒœ แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ”แƒ‘แƒ˜ YAML แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒจแƒ˜? แƒแƒ แƒ, แƒ›แƒแƒœแƒฅแƒแƒœแƒ”แƒ‘แƒก แƒ”แƒก แƒ‘แƒ”แƒ•แƒ แƒแƒ“ แƒฃแƒ™แƒ”แƒ— แƒจแƒ”แƒฃแƒซแƒšแƒ˜แƒแƒ—! แƒ™แƒฃแƒ‘แƒ”แƒ แƒœแƒ”แƒขแƒ”แƒ‘แƒ˜ แƒ•แƒ”แƒ แƒขแƒ˜แƒ™แƒแƒšแƒฃแƒ แƒ˜ แƒžแƒแƒ“แƒ˜แƒก แƒแƒ•แƒขแƒแƒกแƒ™แƒแƒšแƒ”แƒ แƒ˜ (VPA) แƒกแƒฌแƒแƒ แƒ”แƒ“ แƒแƒ›แƒแƒก แƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒก: แƒแƒ“แƒแƒžแƒขแƒ˜แƒ แƒ”แƒ‘แƒก แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ”แƒ‘แƒก แƒ“แƒ แƒจแƒ”แƒ–แƒฆแƒฃแƒ“แƒ•แƒ”แƒ‘แƒก แƒกแƒแƒ›แƒฃแƒจแƒแƒ แƒ“แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ˜แƒก แƒ›แƒ˜แƒฎแƒ”แƒ“แƒ•แƒ˜แƒ—. แƒแƒฅ แƒแƒ แƒ˜แƒก แƒžแƒ แƒแƒ›แƒ”แƒ—แƒ”แƒก CPU แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜ แƒ’แƒ แƒแƒคแƒ˜แƒ™แƒ˜ (แƒ—แƒฎแƒ”แƒšแƒ˜ แƒšแƒฃแƒ แƒฏแƒ˜ แƒฎแƒแƒ–แƒ˜), แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒแƒ“แƒแƒžแƒขแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ VPA-แƒก แƒ›แƒ˜แƒ”แƒ  แƒ“แƒ แƒแƒ—แƒ แƒ’แƒแƒœแƒ›แƒแƒ•แƒšแƒแƒ‘แƒแƒจแƒ˜:

แƒ“แƒแƒ–แƒแƒ’แƒ”แƒ— Kubernetes แƒฆแƒ แƒฃแƒ‘แƒšแƒแƒ•แƒแƒœแƒ˜ แƒฎแƒแƒ แƒฏแƒ”แƒ‘แƒ˜ AWS-แƒ–แƒ”

Zalando แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒก VPA-แƒก แƒงแƒ•แƒ”แƒšแƒ แƒ—แƒแƒ•แƒ˜แƒก แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒจแƒ˜ แƒ˜แƒœแƒคแƒ แƒแƒกแƒขแƒ แƒฃแƒฅแƒขแƒฃแƒ แƒ˜แƒก แƒ™แƒแƒ›แƒžแƒแƒœแƒ”แƒœแƒขแƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก. แƒแƒ แƒแƒ™แƒ แƒ˜แƒขแƒ˜แƒ™แƒฃแƒš แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ”แƒ‘แƒก แƒแƒกแƒ”แƒ•แƒ” แƒจแƒ”แƒฃแƒซแƒšแƒ˜แƒแƒ— แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒแƒœ VPA.

Goldilocks Fairwind-แƒ˜แƒกแƒ’แƒแƒœ แƒแƒ แƒ˜แƒก แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒ›แƒ”แƒœแƒขแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒฅแƒ›แƒœแƒ˜แƒก VPA-แƒก แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒšแƒ˜ แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ”แƒ‘แƒ˜แƒก แƒกแƒ˜แƒ•แƒ แƒชแƒ”แƒจแƒ˜ แƒ“แƒ แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒแƒฉแƒ•แƒ”แƒœแƒ”แƒ‘แƒก VPA แƒ แƒ”แƒ™แƒแƒ›แƒ”แƒœแƒ“แƒแƒชแƒ˜แƒแƒก แƒ›แƒ˜แƒก แƒ“แƒแƒคแƒแƒ–แƒ”. แƒ›แƒแƒก แƒจแƒ”แƒฃแƒซแƒšแƒ˜แƒ แƒ“แƒแƒ”แƒฎแƒ›แƒแƒ แƒแƒก แƒ“แƒ”แƒ•แƒ”แƒšแƒแƒžแƒ”แƒ แƒ”แƒ‘แƒก แƒ“แƒแƒแƒงแƒ”แƒœแƒแƒœ แƒกแƒฌแƒแƒ แƒ˜ CPU/แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ”แƒ‘แƒ˜ แƒ—แƒแƒ•แƒ˜แƒแƒœแƒ—แƒ˜ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก:

แƒ“แƒแƒ–แƒแƒ’แƒ”แƒ— Kubernetes แƒฆแƒ แƒฃแƒ‘แƒšแƒแƒ•แƒแƒœแƒ˜ แƒฎแƒแƒ แƒฏแƒ”แƒ‘แƒ˜ AWS-แƒ–แƒ”

แƒžแƒแƒขแƒแƒ แƒ แƒ“แƒแƒ•แƒฌแƒ”แƒ แƒ” แƒ‘แƒšแƒแƒ’แƒžแƒแƒกแƒขแƒ˜ VPA-แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘ 2019 แƒฌแƒ”แƒšแƒก แƒ“แƒ แƒชแƒแƒขแƒ แƒฎแƒœแƒ˜แƒก แƒฌแƒ˜แƒœ CNCF แƒกแƒแƒ‘แƒแƒšแƒแƒ แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒšแƒ˜แƒก แƒกแƒแƒ–แƒแƒ’แƒแƒ“แƒแƒ”แƒ‘แƒแƒ› แƒ’แƒแƒœแƒ˜แƒฎแƒ˜แƒšแƒ VPA แƒกแƒแƒ™แƒ˜แƒ—แƒฎแƒ˜.

EC2 Spot แƒ˜แƒœแƒกแƒขแƒแƒœแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ

แƒ“แƒแƒ‘แƒแƒšแƒแƒก, แƒ แƒแƒช แƒแƒ แƒแƒœแƒแƒ™แƒšแƒ”แƒ‘ แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ•แƒแƒœแƒ˜แƒ, AWS EC2 แƒฎแƒแƒ แƒฏแƒ”แƒ‘แƒ˜ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒจแƒ”แƒ›แƒชแƒ˜แƒ แƒ“แƒ”แƒก Spot แƒ˜แƒœแƒกแƒขแƒแƒœแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ— Kubernetes-แƒ˜แƒก แƒ›แƒฃแƒจแƒ แƒ™แƒ•แƒแƒœแƒซแƒ”แƒ‘แƒแƒ“ [3]. แƒแƒ“แƒ’แƒ˜แƒšแƒ–แƒ” แƒ˜แƒœแƒกแƒขแƒแƒœแƒชแƒ˜แƒ”แƒ‘แƒ˜ แƒฎแƒ”แƒšแƒ›แƒ˜แƒกแƒแƒฌแƒ•แƒ“แƒแƒ›แƒ˜แƒ 90%-แƒ›แƒ“แƒ” แƒคแƒแƒกแƒ“แƒแƒ™แƒšแƒ”แƒ‘แƒ˜แƒ— แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ˜แƒก แƒคแƒแƒกแƒ”แƒ‘แƒ—แƒแƒœ แƒจแƒ”แƒ“แƒแƒ แƒ”แƒ‘แƒ˜แƒ—. Kubernetes-แƒ˜แƒก แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ EC2 Spot-แƒ–แƒ” แƒ™แƒแƒ แƒ’แƒ˜ แƒ™แƒแƒ›แƒ‘แƒ˜แƒœแƒแƒชแƒ˜แƒแƒ: แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒ›แƒ˜แƒฃแƒ—แƒ˜แƒ—แƒแƒ— แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒขแƒ˜แƒžแƒ˜แƒก แƒ˜แƒœแƒกแƒขแƒแƒœแƒชแƒ˜แƒ แƒฃแƒคแƒ แƒ แƒ›แƒแƒฆแƒแƒšแƒ˜ แƒฎแƒ”แƒšแƒ›แƒ˜แƒกแƒแƒฌแƒ•แƒ“แƒแƒ›แƒแƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒ แƒแƒช แƒ˜แƒ›แƒแƒก แƒœแƒ˜แƒจแƒœแƒแƒ•แƒก, แƒ แƒแƒ› แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ›แƒ˜แƒ˜แƒฆแƒแƒ— แƒฃแƒคแƒ แƒ แƒ“แƒ˜แƒ“แƒ˜ แƒ™แƒ•แƒแƒœแƒซแƒ˜ แƒ˜แƒ›แƒแƒ•แƒ” แƒแƒœ แƒ“แƒแƒ‘แƒแƒš แƒคแƒแƒกแƒแƒ“, แƒฎแƒแƒšแƒ แƒ’แƒแƒ–แƒ แƒ“แƒ˜แƒšแƒ˜ แƒกแƒ˜แƒ›แƒซแƒšแƒแƒ•แƒ แƒ” แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒš แƒ˜แƒฅแƒœแƒแƒก แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ Kubernetes แƒ“แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ˜แƒ—.

แƒ แƒแƒ’แƒแƒ  แƒ’แƒแƒ•แƒฃแƒจแƒ•แƒแƒ— Kubernetes EC2 Spot-แƒ–แƒ”? แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒ•แƒแƒ แƒ˜แƒแƒœแƒขแƒ˜: แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ— แƒ›แƒ”แƒกแƒแƒ›แƒ” แƒ›แƒฎแƒแƒ แƒ˜แƒก แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ˜, แƒ แƒแƒ’แƒแƒ แƒ˜แƒชแƒแƒ SpotInst (แƒแƒฎแƒšแƒ แƒ”แƒฌแƒแƒ“แƒ”แƒ‘แƒ "Spot", แƒแƒ  แƒ›แƒ™แƒ˜แƒ—แƒฎแƒแƒ— แƒ แƒแƒขแƒแƒ›), แƒแƒœ แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒ“แƒแƒแƒ›แƒแƒขแƒ”แƒ— Spot AutoScalingGroup (ASG) แƒ—แƒฅแƒ•แƒ”แƒœแƒก แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒจแƒ˜. แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒแƒฅ แƒแƒ แƒ˜แƒก CloudFormation แƒกแƒœแƒ˜แƒžแƒ”แƒขแƒ˜ "แƒขแƒ”แƒ•แƒแƒ“แƒแƒ‘แƒ˜แƒก แƒแƒžแƒขแƒ˜แƒ›แƒ˜แƒ–แƒ”แƒ‘แƒฃแƒšแƒ˜" Spot ASG-แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒ›แƒ แƒแƒ•แƒแƒšแƒ˜ แƒ˜แƒœแƒกแƒขแƒแƒœแƒชแƒ˜แƒ˜แƒก แƒขแƒ˜แƒžแƒ”แƒ‘แƒ˜แƒ—:

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"

แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒจแƒ”แƒœแƒ˜แƒจแƒ•แƒœแƒ แƒ™แƒฃแƒ‘แƒ”แƒ แƒœแƒ”แƒขแƒ˜แƒ— Spot-แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘:

  • แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒ’แƒแƒฃแƒ›แƒ™แƒšแƒแƒ•แƒ“แƒ”แƒ— Spot แƒขแƒ”แƒ แƒ›แƒ˜แƒœแƒแƒšแƒ”แƒ‘แƒก, แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒ™แƒ•แƒแƒœแƒซแƒ˜แƒก แƒจแƒ”แƒ แƒฌแƒงแƒ›แƒ, แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒ˜แƒœแƒกแƒขแƒแƒœแƒชแƒ˜แƒ แƒจแƒ”แƒฉแƒ”แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ
  • Zalando แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒก แƒฉแƒแƒœแƒ’แƒแƒšแƒ˜ แƒแƒคแƒ˜แƒชแƒ˜แƒแƒšแƒฃแƒ แƒ˜ แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒฃแƒšแƒ˜ แƒแƒ•แƒขแƒแƒกแƒ™แƒแƒšแƒ˜แƒ แƒ”แƒ‘แƒ แƒ™แƒ•แƒแƒœแƒซแƒ”แƒ‘แƒ˜แƒก แƒแƒฃแƒ–แƒ˜แƒก แƒžแƒ แƒ˜แƒแƒ แƒ˜แƒขแƒ”แƒขแƒ”แƒ‘แƒ˜แƒ—
  • แƒฌแƒ”แƒ แƒขแƒ˜แƒšแƒแƒ•แƒแƒœแƒ˜ แƒ™แƒ•แƒแƒœแƒซแƒ”แƒ‘แƒ˜ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒแƒ˜แƒซแƒฃแƒšแƒแƒก แƒ›แƒ˜แƒ˜แƒฆแƒ”แƒ— แƒกแƒแƒ›แƒฃแƒจแƒแƒ แƒ“แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ”แƒ‘แƒ˜แƒก โ€žแƒ แƒ”แƒ’แƒ˜แƒกแƒขแƒ แƒแƒชแƒ˜แƒโ€œ Spot-แƒจแƒ˜ แƒ’แƒแƒกแƒแƒจแƒ•แƒ”แƒ‘แƒแƒ“

แƒ แƒ”แƒ–แƒ˜แƒฃแƒ›แƒ”

แƒ˜แƒ›แƒ”แƒ“แƒ˜ แƒ›แƒแƒฅแƒ•แƒก, แƒ แƒแƒ› แƒ—แƒฅแƒ•แƒ”แƒœแƒ—แƒ•แƒ˜แƒก แƒฌแƒแƒ แƒ›แƒแƒ“แƒ’แƒ”แƒœแƒ˜แƒšแƒ˜ แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒ›แƒ”แƒœแƒขแƒ˜ แƒกแƒแƒกแƒแƒ แƒ’แƒ”แƒ‘แƒšแƒ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒฆแƒ แƒฃแƒ‘แƒšแƒแƒ•แƒแƒœแƒ˜ แƒ’แƒแƒ“แƒแƒกแƒแƒฎแƒแƒ“แƒ˜แƒก แƒจแƒ”แƒกแƒแƒ›แƒชแƒ˜แƒ แƒ”แƒ‘แƒšแƒแƒ“. แƒ—แƒฅแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ˜แƒžแƒแƒ•แƒแƒ— แƒกแƒขแƒแƒขแƒ˜แƒ˜แƒก แƒจแƒ˜แƒœแƒแƒแƒ แƒกแƒ˜แƒก แƒฃแƒ›แƒ”แƒขแƒ”แƒกแƒ˜ แƒœแƒแƒฌแƒ˜แƒšแƒ˜ แƒแƒกแƒ”แƒ•แƒ” แƒแƒฅ แƒฉแƒ”แƒ›แƒ˜ แƒกแƒแƒฃแƒ‘แƒแƒ แƒ˜ DevOps Gathering 2019-แƒ–แƒ” YouTube-แƒ–แƒ” แƒ“แƒ แƒกแƒšแƒแƒ˜แƒ“แƒ”แƒ‘แƒจแƒ˜.

แƒ แƒ แƒแƒ แƒ˜แƒก แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒกแƒแƒฃแƒ™แƒ”แƒ—แƒ”แƒกแƒ แƒžแƒ แƒแƒฅแƒขแƒ˜แƒ™แƒ Kubernetes-แƒ–แƒ” แƒฆแƒ แƒฃแƒ‘แƒšแƒ˜แƒก แƒฎแƒแƒ แƒฏแƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒ–แƒแƒ’แƒ•แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก? แƒ’แƒ—แƒฎแƒแƒ•แƒ— แƒจแƒ”แƒ›แƒแƒขแƒงแƒแƒ‘แƒ˜แƒœแƒแƒ— แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒ–แƒ” Twitter (@try_except_).

[1] แƒกแƒ˜แƒœแƒแƒ›แƒ“แƒ•แƒ˜แƒšแƒ”แƒจแƒ˜, 3-แƒ–แƒ” แƒœแƒแƒ™แƒšแƒ”แƒ‘แƒ˜ vCPU แƒ“แƒแƒ แƒฉแƒ”แƒ‘แƒ แƒ’แƒแƒ›แƒแƒกแƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ”แƒšแƒ˜, แƒ แƒแƒ“แƒ’แƒแƒœ แƒ™แƒ•แƒแƒœแƒซแƒ˜แƒก แƒ’แƒแƒ›แƒขแƒแƒ แƒฃแƒœแƒแƒ แƒ˜แƒแƒœแƒแƒ‘แƒ แƒ›แƒชแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ แƒ แƒ”แƒ–แƒ”แƒ แƒ•แƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ˜แƒก แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ”แƒ‘แƒ˜แƒ—. Kubernetes แƒ’แƒแƒœแƒแƒกแƒฎแƒ•แƒแƒ•แƒ”แƒ‘แƒก แƒคแƒ˜แƒ–แƒ˜แƒ™แƒฃแƒ  แƒ™แƒ•แƒแƒœแƒซแƒ˜แƒก แƒกแƒ˜แƒ›แƒซแƒšแƒแƒ•แƒ แƒ”แƒกแƒ แƒ“แƒ "แƒ›แƒแƒฌแƒแƒ“แƒ”แƒ‘แƒฃแƒš" แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ”แƒ‘แƒก (แƒ™แƒ•แƒแƒœแƒซแƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒแƒคแƒ).

[2] แƒ’แƒแƒแƒœแƒ’แƒแƒ แƒ˜แƒจแƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜: แƒ”แƒ แƒ—แƒ˜ m5.large แƒ˜แƒœแƒกแƒขแƒแƒœแƒชแƒ˜แƒ 8 แƒ’แƒ˜แƒ‘ แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒ˜แƒ— แƒแƒ แƒ˜แƒก ~$84 โ€‹โ€‹แƒ—แƒ•แƒ”แƒจแƒ˜ (eu-central-1, On-Demand), แƒ”.แƒ˜. 1/8 แƒ™แƒ•แƒแƒœแƒซแƒ˜แƒก แƒ“แƒแƒ‘แƒšแƒแƒ™แƒ•แƒ แƒ“แƒแƒแƒฎแƒšแƒแƒ”แƒ‘แƒ˜แƒ— 10$/แƒ—แƒ•แƒ”แƒจแƒ˜แƒ.

[3] แƒ™แƒ˜แƒ“แƒ”แƒ• แƒ‘แƒ”แƒ•แƒ แƒ˜ แƒ’แƒ–แƒ แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ EC2 แƒ’แƒแƒ“แƒแƒกแƒแƒฎแƒแƒ“แƒ˜แƒก แƒจแƒ”แƒกแƒแƒ›แƒชแƒ˜แƒ แƒ”แƒ‘แƒšแƒแƒ“, แƒ แƒแƒ’แƒแƒ แƒ˜แƒชแƒแƒ แƒ แƒ”แƒ–แƒ”แƒ แƒ•แƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ˜แƒœแƒกแƒขแƒแƒœแƒชแƒ˜แƒ”แƒ‘แƒ˜, แƒจแƒ”แƒ›แƒœแƒแƒฎแƒ•แƒ”แƒšแƒ˜ แƒ’แƒ”แƒ’แƒ›แƒ แƒ“แƒ แƒ.แƒจ. - แƒแƒ› แƒ—แƒ”แƒ›แƒ”แƒ‘แƒก แƒแƒฅ แƒแƒ  แƒ’แƒแƒ•แƒแƒจแƒฃแƒฅแƒ”แƒ‘, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ—แƒฅแƒ•แƒ”แƒœ แƒแƒฃแƒชแƒ˜แƒšแƒ”แƒ‘แƒšแƒแƒ“ แƒฃแƒœแƒ“แƒ แƒ’แƒแƒ˜แƒ—แƒ•แƒแƒšแƒ˜แƒกแƒฌแƒ˜แƒœแƒแƒ— แƒ˜แƒกแƒ˜แƒœแƒ˜!

แƒจแƒ”แƒ˜แƒขแƒงแƒ•แƒ”แƒ— แƒ›แƒ”แƒขแƒ˜ แƒ™แƒฃแƒ แƒกแƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘.

แƒฌแƒงแƒแƒ แƒ: www.habr.com

แƒแƒฎแƒแƒšแƒ˜ แƒ™แƒแƒ›แƒ”แƒœแƒขแƒแƒ แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ