ืงื ื” ืžื™ื“ื” ืื•ื˜ื•ืžื˜ื™ ื•ื ื™ื”ื•ืœ ืžืฉืื‘ื™ื ื‘-Kubernetes (ืกืงื™ืจื” ื›ืœืœื™ืช ื•ื“ื•ื— ื•ื™ื“ืื•)

27 ื‘ืืคืจื™ืœ ื‘ื›ื ืก ืฉื‘ื™ืชื” 2019, ื›ื—ืœืง ืžืžื“ื•ืจ "DevOps", ื ื™ืชืŸ ื”ื“ื•ื— "ืฉื™ื ื•ื™ ื’ื•ื“ืœ ืื•ื˜ื•ืžื˜ื™ ื•ื ื™ื”ื•ืœ ืžืฉืื‘ื™ื ื‘-Kubernetes". ื–ื” ืžื“ื‘ืจ ืขืœ ืื™ืš ืืชื” ื™ื›ื•ืœ ืœื”ืฉืชืžืฉ ื‘-K8s ื›ื“ื™ ืœื”ื‘ื˜ื™ื— ื–ืžื™ื ื•ืช ื’ื‘ื•ื”ื” ืฉืœ ื”ื™ื™ืฉื•ืžื™ื ืฉืœืš ื•ืœื”ื‘ื˜ื™ื— ื‘ื™ืฆื•ืขื™ื ืฉื™ื.

ืงื ื” ืžื™ื“ื” ืื•ื˜ื•ืžื˜ื™ ื•ื ื™ื”ื•ืœ ืžืฉืื‘ื™ื ื‘-Kubernetes (ืกืงื™ืจื” ื›ืœืœื™ืช ื•ื“ื•ื— ื•ื™ื“ืื•)

ืœืคื™ ื”ืžืกื•ืจืช, ืื ื• ืฉืžื—ื™ื ืœื”ืฆื™ื’ ืกืจื˜ื•ืŸ ื”ื“ื™ื•ื•ื— (44 ื“ืงื•ืช, ื”ืจื‘ื” ื™ื•ืชืจ ืื™ื ืคื•ืจืžื˜ื™ื‘ื™ ืžื”ืžืืžืจ) ื•ื”ืกื™ื›ื•ื ื”ืจืืฉื™ ื‘ืฆื•ืจืช ื˜ืงืกื˜. ืœืœื›ืช!

ื‘ื•ืื• ื ื ืชื— ืืช ื ื•ืฉื ื”ื“ื•ื— ืžื™ืœื” ืื—ืจ ืžื™ืœื” ื•ื ืชื—ื™ืœ ืžื”ืกื•ืฃ.

ืงื•ื‘ืจื ื˜

ื ื ื™ื— ืฉื™ืฉ ืœื ื• ืžื›ื•ืœื•ืช Docker ืขืœ ื”ืžืืจื— ืฉืœื ื•. ื‘ืฉื‘ื™ืœ ืžื”? ื›ื“ื™ ืœื”ื‘ื˜ื™ื— ื—ื–ืจื” ื•ื‘ื™ื“ื•ื“, ืืฉืจ ื‘ืชื•ืจื ืžืืคืฉืจื™ื ืคืจื™ืกื” ืคืฉื•ื˜ื” ื•ื˜ื•ื‘ื”, CI/CD. ื™ืฉ ืœื ื• ื”ืจื‘ื” ืจื›ื‘ื™ื ื›ืืœื” ืขื ืžื›ื•ืœื•ืช.

ืžื” Kubernetes ืžืกืคืงืช ื‘ืžืงืจื” ื–ื”?

  1. ืื ื—ื ื• ืžืคืกื™ืงื™ื ืœื—ืฉื•ื‘ ืขืœ ื”ืžื›ื•ื ื•ืช ื”ืืœื” ื•ืžืชื—ื™ืœื™ื ืœืขื‘ื•ื“ ืขื ื”ืขื ืŸ, ืžืงื‘ืฅ ืžื›ื•ืœื•ืช ืื• ืชืจืžื™ืœื™ื (ืงื‘ื•ืฆื•ืช ืฉืœ ืžื™ื›ืœื™ื).
  2. ื™ืชืจ ืขืœ ื›ืŸ, ืื ื—ื ื• ืืคื™ืœื• ืœื ื—ื•ืฉื‘ื™ื ืขืœ ืชืจืžื™ืœื™ื ื‘ื•ื“ื“ื™ื, ืืœื ืžื ื”ืœื™ื ื™ื•ืชืจะพืงื‘ื•ืฆื•ืช ื’ื“ื•ืœื•ืช ื™ื•ืชืจ. ื›ื’ื•ืŸ ืคืจื™ืžื™ื˜ื™ื‘ื™ื ื‘ืจืžื” ื’ื‘ื•ื”ื” ื”ืจืฉื• ืœื ื• ืœื•ืžืจ ืฉื™ืฉ ืชื‘ื ื™ืช ืœื”ืคืขืœืช ืขื•ืžืก ืขื‘ื•ื“ื” ืžืกื•ื™ื, ื•ื”ื ื” ืžืกืคืจ ื”ืžื•ืคืขื™ื ื”ื ื“ืจืฉ ืœื”ืคืขืœืชื•. ืื ื ืฉื ื” ืืช ื”ืชื‘ื ื™ืช ืœืื—ืจ ืžื›ืŸ, ื›ืœ ื”ืžื•ืคืขื™ื ื™ืฉืชื ื•.
  3. ืขื API ื”ืฆื”ืจืชื™ ื‘ืžืงื•ื ืœื‘ืฆืข ืจืฆืฃ ืฉืœ ืคืงื•ื“ื•ืช ืกืคืฆื™ืคื™ื•ืช, ืื ื• ืžืชืืจื™ื ืืช "ืžื‘ื ื” ื”ืขื•ืœื" (ื‘-YAML), ืฉื ื•ืฆืจ ืขืœ ื™ื“ื™ Kubernetes. ื•ืฉื•ื‘: ื›ืฉื”ืชื™ืื•ืจ ื™ืฉืชื ื”, ื’ื ื”ืชืฆื•ื’ื” ื‘ืคื•ืขืœ ืฉืœื• ืชืฉืชื ื”.

ื ื™ื”ื•ืœ ืžืฉืื‘ื™ื

CPU

ืชืŸ ืœื ื• ืœื”ืคืขื™ืœ nginx, php-fpm ื•-mysql ืขืœ ื”ืฉืจืช. ืœืฉื™ืจื•ืชื™ื ื”ืืœื” ื™ื”ื™ื• ืœืžืขืฉื” ืืคื™ืœื• ื™ื•ืชืจ ืชื”ืœื™ื›ื™ื ื”ืคื•ืขืœื™ื, ืฉื›ืœ ืื—ื“ ืžื”ื ื“ื•ืจืฉ ืžืฉืื‘ื™ ืžื—ืฉื•ื‘:

ืงื ื” ืžื™ื“ื” ืื•ื˜ื•ืžื˜ื™ ื•ื ื™ื”ื•ืœ ืžืฉืื‘ื™ื ื‘-Kubernetes (ืกืงื™ืจื” ื›ืœืœื™ืช ื•ื“ื•ื— ื•ื™ื“ืื•)
(ื”ืžืกืคืจื™ื ื‘ืฉืงื•ืคื™ืช ื”ื "ืชื•ื›ื™ื", ื”ืฆื•ืจืš ื”ืžื•ืคืฉื˜ ืฉืœ ื›ืœ ืชื”ืœื™ืš ืœื›ื•ื— ืžื—ืฉื•ื‘)

ื›ื“ื™ ืœื”ืงืœ ืขืœ ื”ืขื‘ื•ื“ื” ืขื ื–ื”, ื”ื’ื™ื•ื ื™ ืœืฉืœื‘ ืชื”ืœื™ื›ื™ื ืœืงื‘ื•ืฆื•ืช (ืœื“ื•ื’ืžื”, ื›ืœ ืชื”ืœื™ื›ื™ nginx ืœืงื‘ื•ืฆื” ืื—ืช "nginx"). ื“ืจืš ืคืฉื•ื˜ื” ื•ื‘ืจื•ืจื” ืœืขืฉื•ืช ื–ืืช ื”ื™ื ืœืฉื™ื ื›ืœ ืงื‘ื•ืฆื” ื‘ืžื™ื›ืœ:

ืงื ื” ืžื™ื“ื” ืื•ื˜ื•ืžื˜ื™ ื•ื ื™ื”ื•ืœ ืžืฉืื‘ื™ื ื‘-Kubernetes (ืกืงื™ืจื” ื›ืœืœื™ืช ื•ื“ื•ื— ื•ื™ื“ืื•)

ื›ื“ื™ ืœื”ืžืฉื™ืš, ืขืœื™ืš ืœื–ื›ื•ืจ ืžื”ื• ืงื•ื ื˜ื™ื™ื ืจ (ื‘ืœื™ื ื•ืงืก). ื”ื•ืคืขืชื ื”ืชืืคืฉืจื” ื”ื•ื“ื•ืช ืœืฉืœื•ืฉ ืชื›ื•ื ื•ืช ืžืคืชื— ื‘ืงืจื ืœ, ืฉื™ื•ืฉืžื• ืœืคื ื™ ื–ืžืŸ ืจื‘ ืœืžื“ื™: ื™ื›ื•ืœื•ืช, ืžืจื—ื‘ื™ ืฉืžื•ืช ะธ ืงื‘ื•ืฆื•ืช. ื•ืคื™ืชื•ื— ื ื•ืกืฃ ื”ื•ืงืœ ืขืœ ื™ื“ื™ ื˜ื›ื ื•ืœื•ื’ื™ื•ืช ืื—ืจื•ืช (ื›ื•ืœืœ "ืงื•ื ื›ื™ื•ืช" ื ื•ื—ื•ืช ื›ืžื• Docker):

ืงื ื” ืžื™ื“ื” ืื•ื˜ื•ืžื˜ื™ ื•ื ื™ื”ื•ืœ ืžืฉืื‘ื™ื ื‘-Kubernetes (ืกืงื™ืจื” ื›ืœืœื™ืช ื•ื“ื•ื— ื•ื™ื“ืื•)

ื‘ื”ืงืฉืจ ืฉืœ ื”ื“ื•"ื—, ืื ื—ื ื• ืžืขื•ื ื™ื™ื ื™ื ืจืง ืงื‘ื•ืฆื•ืช, ื›ื™ ืงื‘ื•ืฆื•ืช ื‘ืงืจื” ื”ืŸ ื—ืœืง ืžื”ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช ืฉืœ ืงื•ื ื˜ื™ื™ื ืจื™ื (Docker ื•ื›ื•') ืฉืžื™ื™ืฉื ื ื™ื”ื•ืœ ืžืฉืื‘ื™ื. ืชื”ืœื™ื›ื™ื ื”ืžืฉื•ืœื‘ื™ื ืœืงื‘ื•ืฆื•ืช, ื›ืคื™ ืฉืจืฆื™ื ื•, ื”ื ืงื‘ื•ืฆื•ืช ื‘ืงืจื”.

ื ื—ื–ื•ืจ ืœื“ืจื™ืฉื•ืช ื”ืžืขื‘ื“ ืขื‘ื•ืจ ืชื”ืœื™ื›ื™ื ืืœื”, ื•ืขื›ืฉื™ื• ืœืงื‘ื•ืฆื•ืช ืฉืœ ืชื”ืœื™ื›ื™ื:

ืงื ื” ืžื™ื“ื” ืื•ื˜ื•ืžื˜ื™ ื•ื ื™ื”ื•ืœ ืžืฉืื‘ื™ื ื‘-Kubernetes (ืกืงื™ืจื” ื›ืœืœื™ืช ื•ื“ื•ื— ื•ื™ื“ืื•)
(ืื ื™ ื—ื•ื–ืจ ืขืœ ื›ืš ืฉื›ืœ ื”ืžืกืคืจื™ื ื”ื ื‘ื™ื˜ื•ื™ ืžื•ืคืฉื˜ ืœืฆื•ืจืš ื‘ืžืฉืื‘ื™ื)

ื™ื—ื“ ืขื ื–ืืช, ืœืžืขื‘ื“ ืขืฆืžื• ื™ืฉ ืžืฉืื‘ ืกื•ืคื™ ืžืกื•ื™ื (ื‘ื“ื•ื’ืžื” ื–ื” 1000), ืฉืื•ืœื™ ื™ื—ืกืจ ืœื›ื•ืœื (ืกื›ื•ื ื”ืฆืจื›ื™ื ืฉืœ ื›ืœ ื”ืงื‘ื•ืฆื•ืช ื”ื•ื 150+850+460=1460). ืžื” ื™ืงืจื” ื‘ืžืงืจื” ื”ื–ื”?

ื”ืงืจื ืœ ืžืชื—ื™ืœ ืœื”ืคื™ืฅ ืžืฉืื‘ื™ื ื•ืขื•ืฉื” ืืช ื–ื” "ื‘ื”ื’ื™ื ื•ืช", ื ื•ืชืŸ ืืช ืื•ืชื” ื›ืžื•ืช ืžืฉืื‘ื™ื ืœื›ืœ ืงื‘ื•ืฆื”. ืื‘ืœ ื‘ืžืงืจื” ื”ืจืืฉื•ืŸ ื™ืฉ ื™ื•ืชืจ ืžื”ื ื“ืจืฉ (333>150), ื•ืœื›ืŸ ื”ืขื•ื“ืฃ (333-150=183) ื ืฉืืจ ื‘ืžื™ืœื•ืื™ื, ืฉื’ื ื”ื•ื ืžืชื—ืœืง ืฉื•ื•ื” ื‘ืฉื•ื•ื” ื‘ื™ืŸ ืฉื ื™ ืžื›ื•ืœื•ืช ืื—ืจื•ืช:

ืงื ื” ืžื™ื“ื” ืื•ื˜ื•ืžื˜ื™ ื•ื ื™ื”ื•ืœ ืžืฉืื‘ื™ื ื‘-Kubernetes (ืกืงื™ืจื” ื›ืœืœื™ืช ื•ื“ื•ื— ื•ื™ื“ืื•)

ื›ืชื•ืฆืื” ืžื›ืš: ืœืžื™ื›ืœ ื”ืจืืฉื•ืŸ ื”ื™ื• ืžืกืคื™ืง ืžืฉืื‘ื™ื, ื”ืฉื ื™ - ืœื ื”ื™ื• ืœื• ืžืกืคื™ืง ืžืฉืื‘ื™ื, ื”ืฉืœื™ืฉื™ - ืœื ื”ื™ื• ืœื• ืžืกืคื™ืง ืžืฉืื‘ื™ื. ื–ื• ืชื•ืฆืื” ืฉืœ ืžืขืฉื™ื ืžืชื–ืžืŸ "ื›ื ื”" ื‘ืœื™ื ื•ืงืก - CFS. ื ื™ืชืŸ ืœื”ืชืื™ื ืืช ืคืขื•ืœืชื• ื‘ืืžืฆืขื•ืช ื”ืžืฉื™ืžื” ืžืฉืงื•ืœื•ืช ื›ืœ ืื—ื“ ืžื”ืžื™ื›ืœื™ื. ืœื“ื•ื’ืžื”, ื›ืš:

ืงื ื” ืžื™ื“ื” ืื•ื˜ื•ืžื˜ื™ ื•ื ื™ื”ื•ืœ ืžืฉืื‘ื™ื ื‘-Kubernetes (ืกืงื™ืจื” ื›ืœืœื™ืช ื•ื“ื•ื— ื•ื™ื“ืื•)

ื‘ื•ืื• ื ืกืชื›ืœ ืขืœ ื”ืžืงืจื” ืฉืœ ื—ื•ืกืจ ืžืฉืื‘ื™ื ื‘ืžื™ื›ืœ ื”ืฉื ื™ (php-fpm). ื›ืœ ืžืฉืื‘ื™ ื”ืžื›ื•ืœื” ืžื—ื•ืœืงื™ื ื‘ืื•ืคืŸ ืฉื•ื•ื” ื‘ื™ืŸ ืชื”ืœื™ื›ื™ื. ื›ืชื•ืฆืื” ืžื›ืš, ืชื”ืœื™ืš ื”ืžืืกื˜ืจ ืขื•ื‘ื“ ื”ื™ื˜ื‘, ืืš ื›ืœ ื”ืขื•ื‘ื“ื™ื ืžืื˜ื™ื ื•ืžืงื‘ืœื™ื ืคื—ื•ืช ืžืžื—ืฆื™ืช ืžืžื” ืฉื”ื ืฆืจื™ื›ื™ื:

ืงื ื” ืžื™ื“ื” ืื•ื˜ื•ืžื˜ื™ ื•ื ื™ื”ื•ืœ ืžืฉืื‘ื™ื ื‘-Kubernetes (ืกืงื™ืจื” ื›ืœืœื™ืช ื•ื“ื•ื— ื•ื™ื“ืื•)

ื›ืš ืคื•ืขืœ ืžืชื–ืžืŸ CFS. ืขื•ื“ ื ืงืจื ืœืžืฉืงื•ืœื•ืช ืฉืื ื• ืžืงืฆื™ื ืœืžื›ื•ืœื•ืช ื‘ืงืฉื•ืช. ืžื“ื•ืข ื–ื” ื›ืš - ืจืื” ืขื•ื“.

ื‘ื•ืื• ื ืกืชื›ืœ ืขืœ ื›ืœ ื”ืกื™ื˜ื•ืืฆื™ื” ืžื”ืฆื“ ื”ืฉื ื™. ื›ื™ื“ื•ืข, ื›ืœ ื”ื“ืจื›ื™ื ืžื•ื‘ื™ืœื•ืช ืœืจื•ืžื, ื•ื‘ืžืงืจื” ืฉืœ ืžื—ืฉื‘, ืœืžืขื‘ื“. ืžืขื‘ื“ ืื—ื“, ืžืฉื™ืžื•ืช ืจื‘ื•ืช - ืืชื” ืฆืจื™ืš ืจืžื–ื•ืจ. ื”ื“ืจืš ื”ืคืฉื•ื˜ื” ื‘ื™ื•ืชืจ ืœื ื”ืœ ืžืฉืื‘ื™ื ื”ื™ื "ืจืžื–ื•ืจ": ื”ื ื ืชื ื• ืœืชื”ืœื™ืš ืื—ื“ ื–ืžืŸ ื’ื™ืฉื” ืงื‘ื•ืข ืœืžืขื‘ื“, ื•ืœืื—ืจ ืžื›ืŸ ืœืฉืœื‘ ื”ื‘ื ื•ื›ื•'.

ืงื ื” ืžื™ื“ื” ืื•ื˜ื•ืžื˜ื™ ื•ื ื™ื”ื•ืœ ืžืฉืื‘ื™ื ื‘-Kubernetes (ืกืงื™ืจื” ื›ืœืœื™ืช ื•ื“ื•ื— ื•ื™ื“ืื•)

ื’ื™ืฉื” ื–ื• ื ืงืจืืช ืžื›ืกื•ืช ืงืฉื•ืช (ืงืฉื” ืœื”ื’ื‘ื™ืœ). ื‘ื•ืื• ื ื–ื›ื•ืจ ืืช ื–ื” ืคืฉื•ื˜ ื›ืžื• ื’ื‘ื•ืœื•ืช. ืขื ื–ืืช, ืื ืืชื” ืžื—ืœืง ืžื’ื‘ืœื•ืช ืœื›ืœ ื”ืžื›ื•ืœื•ืช, ืžืชืขื•ืจืจืช ื‘ืขื™ื”: mysql ื ืกืข ืœืื•ืจืš ื”ื›ื‘ื™ืฉ ื•ื‘ืฉืœื‘ ืžืกื•ื™ื ื”ืฆื•ืจืš ืฉืœื” ื‘ืžืขื‘ื“ ื”ืกืชื™ื™ื, ืื‘ืœ ื›ืœ ืฉืืจ ื”ืชื”ืœื™ื›ื™ื ื ืืœืฆื™ื ืœื”ืžืชื™ืŸ ืขื“ ืœืžืขื‘ื“ ืœึฐื”ึดืชึฐื‘ึผึทื˜ึตืœ.

ืงื ื” ืžื™ื“ื” ืื•ื˜ื•ืžื˜ื™ ื•ื ื™ื”ื•ืœ ืžืฉืื‘ื™ื ื‘-Kubernetes (ืกืงื™ืจื” ื›ืœืœื™ืช ื•ื“ื•ื— ื•ื™ื“ืื•)

ื ื—ื–ื•ืจ ืœืงืจื ืœ ื”ืœื™ื ื•ืงืก ื•ืœืื™ื ื˜ืจืืงืฆื™ื” ืฉืœื• ืขื ื”ืžืขื‘ื“ - ื”ืชืžื•ื ื” ื”ื›ื•ืœืœืช ื”ื™ื ื›ื“ืœืงืžืŸ:

ืงื ื” ืžื™ื“ื” ืื•ื˜ื•ืžื˜ื™ ื•ื ื™ื”ื•ืœ ืžืฉืื‘ื™ื ื‘-Kubernetes (ืกืงื™ืจื” ื›ืœืœื™ืช ื•ื“ื•ื— ื•ื™ื“ืื•)

ืœ-cgroup ื™ืฉ ืฉืชื™ ื”ื’ื“ืจื•ืช - ื‘ืขืฆื ืืœื• ืฉื ื™ "ืคื™ืชื•ืœื™ื" ืคืฉื•ื˜ื™ื ื”ืžืืคืฉืจื™ื ืœืš ืœืงื‘ื•ืข:

  1. ืžืฉืงืœ ืœืžื™ื›ืœ (ื‘ืงืฉื•ืช) ื”ื•ื ืžื ื™ื•ืช;
  2. ืื—ื•ื– ืžื–ืžืŸ ื”ืžืขื‘ื“ ื”ื›ื•ืœืœ ืœืขื‘ื•ื“ื” ืขืœ ืžืฉื™ืžื•ืช ืžื™ื›ืœ (ืžื’ื‘ืœื•ืช) ื”ื•ื ืžื›ืกืช.

ืื™ืš ืœืžื“ื•ื“ ืžืขื‘ื“?

ื™ืฉื ืŸ ื“ืจื›ื™ื ืฉื•ื ื•ืช:

  1. ืžื”ื• ืชื•ื›ื™ื, ืืฃ ืื—ื“ ืœื ื™ื•ื“ืข - ืืชื” ืฆืจื™ืš ืœื ื”ืœ ืžืฉื ื•ืžืชืŸ ื‘ื›ืœ ืคืขื.
  2. ืจื™ื‘ื™ืช ื‘ืจื•ืจ ื™ื•ืชืจ, ืื‘ืœ ื™ื—ืกื™: 50% ืžืฉืจืช ืขื 4 ืœื™ื‘ื•ืช ื•ืขื 20 ืœื™ื‘ื•ืช ื”ื ื“ื‘ืจื™ื ืฉื•ื ื™ื ืœื’ืžืจื™.
  3. ืืชื” ื™ื›ื•ืœ ืœื”ืฉืชืžืฉ ื‘ืืœื” ืฉื›ื‘ืจ ื”ื•ื–ื›ืจื• ืžืฉืงื•ืœื•ืช, ืฉืœื™ื ื•ืงืก ืžื›ื™ืจื”, ืื‘ืœ ื”ื ื’ื ื™ื—ืกื™ื™ื.
  4. ื”ืืคืฉืจื•ืช ื”ืžืชืื™ืžื” ื‘ื™ื•ืชืจ ื”ื™ื ืœืžื“ื•ื“ ืžืฉืื‘ื™ ืžื—ืฉื•ื‘ ื‘ ืฉื ื™ื•ืช. ื”ึธื”ึตืŸ. ื‘ืฉื ื™ื•ืช ืฉืœ ื–ืžืŸ ืžืขื‘ื“ ื‘ื™ื—ืก ืœืฉื ื™ื•ืช ืฉืœ ื–ืžืŸ ืืžืช: ื ื™ืชื ื” ืฉื ื™ื™ื” ืื—ืช ืฉืœ ื–ืžืŸ ืžืขื‘ื“ ืœื›ืœ ืฉื ื™ื™ื” ืืžื™ืชื™ืช - ื–ื•ื”ื™ ืœื™ื‘ืช ืžืขื‘ื“ ืื—ืช ืฉืœืžื”.

ื›ื“ื™ ืœื”ืงืœ ืขื•ื“ ื™ื•ืชืจ ืขืœ ื”ื“ื™ื‘ื•ืจ, ื”ื ื”ืชื—ื™ืœื• ืœืžื“ื•ื“ ื™ืฉื™ืจื•ืช ืคื ื™ืžื” ื’ืจืขื™ื ื™ื, ื›ืœื•ืžืจ ืขืœ ื™ื“ื ืื•ืชื• ื–ืžืŸ CPU ื‘ื™ื—ืก ืœื–ื” ื”ืืžื™ืชื™. ืžื›ื™ื•ื•ืŸ ืฉืœื™ื ื•ืงืก ืžื‘ื™ื ื” ืžืฉืงืœื™ื, ืื‘ืœ ืœื ื›ืœ ื›ืš ื”ืจื‘ื” ื–ืžืŸ/ืœื™ื‘ื•ืช CPU, ื”ื™ื” ืฆื•ืจืš ื‘ืžื ื’ื ื•ืŸ ื›ื“ื™ ืœืชืจื’ื ืžืื—ื“ ืœืฉื ื™.

ื ื™ืงื— ื‘ื—ืฉื‘ื•ืŸ ื“ื•ื’ืžื” ืคืฉื•ื˜ื” ืขื ืฉืจืช ืขื 3 ืœื™ื‘ื•ืช CPU, ืฉื‘ื• ืฉืœื•ืฉื” ืคื•ื“ื™ื ื™ืงื‘ืœื• ืžืฉืงืœื™ื (500, 1000 ื•-1500) ื”ืžื•ืžืจื™ื ื‘ืงืœื•ืช ืœื—ืœืงื™ื ื”ืžืงื‘ื™ืœื™ื ืฉืœ ื”ืœื™ื‘ื•ืช ื”ืžื•ืงืฆื™ื ืœื”ื (0,5, 1 ื•-1,5).

ืงื ื” ืžื™ื“ื” ืื•ื˜ื•ืžื˜ื™ ื•ื ื™ื”ื•ืœ ืžืฉืื‘ื™ื ื‘-Kubernetes (ืกืงื™ืจื” ื›ืœืœื™ืช ื•ื“ื•ื— ื•ื™ื“ืื•)

ืื ืืชื” ืœื•ืงื— ืฉืจืช ืฉื ื™, ืฉื‘ื• ื™ื”ื™ื• ืคื™ ืฉื ื™ื™ื ื™ื•ืชืจ ืœื™ื‘ื•ืช (6), ื•ืžื ื™ื—ื™ื ืฉื ืืช ืื•ืชื ืชืจืžื™ืœื™ื, ื ื™ืชืŸ ืœื—ืฉื‘ ื‘ืงืœื•ืช ืืช ื”ืชืคืœื’ื•ืช ื”ืœื™ื‘ื•ืช ืขืœ ื™ื“ื™ ื”ื›ืคืœื” ืฉืœ 2 (1, 2 ื•-3, ื‘ื”ืชืืžื”). ืื‘ืœ ืจื’ืข ื—ืฉื•ื‘ ืžืชืจื—ืฉ ื›ืืฉืจ ืžื•ืคื™ืข ืคื•ื“ ืจื‘ื™ืขื™ ื‘ืฉืจืช ื”ื–ื”, ืฉืžืฉืงืœื•, ืžื˜ืขืžื™ ื ื•ื—ื•ืช, ื™ื”ื™ื” 3000. ื”ื•ื ืœื•ืงื— ื—ืœืง ืžืžืฉืื‘ื™ ื”ืžืขื‘ื“ (ื—ืฆื™ ืžื”ืœื™ื‘ื•ืช), ื•ืขื‘ื•ืจ ื”ืคื•ื“ื™ื ื”ื ื•ืชืจื™ื ื”ื ืžื—ื•ืฉื‘ื™ื ืžื—ื“ืฉ (ื‘ื—ืฆื™):

ืงื ื” ืžื™ื“ื” ืื•ื˜ื•ืžื˜ื™ ื•ื ื™ื”ื•ืœ ืžืฉืื‘ื™ื ื‘-Kubernetes (ืกืงื™ืจื” ื›ืœืœื™ืช ื•ื“ื•ื— ื•ื™ื“ืื•)

Kubernetes ื•ืžืฉืื‘ื™ CPU

ื‘-Kubernetes, ืžืฉืื‘ื™ CPU ื ืžื“ื“ื™ื ื‘ื“ืจืš ื›ืœืœ ื‘ ืžื™ืœื™ืื“ืจืงืก, ื›ืœื•ืžืจ 0,001 ืœื™ื‘ื•ืช ื ืœืงื—ื•ืช ื›ืžืฉืงืœ ื”ื‘ืกื™ืก. (ืื•ืชื• ื“ื‘ืจ ื‘ื˜ืจืžื™ื ื•ืœื•ื’ื™ื” ืฉืœ Linux/cgroups ื ืงืจื ืฉื™ืชื•ืฃ ืžืขื‘ื“, ืื ื›ื™, ืœื™ืชืจ ื“ื™ื•ืง, 1000 ืžื™ืœื™ืงื•ืจื•ืช = 1024 ืฉื™ืชื•ืคื™ ืžืขื‘ื“.) K8s ืžื‘ื˜ื™ื— ืฉื”ื•ื ืœื ืžืฆื™ื‘ ื™ื•ืชืจ ืคื•ื“ื™ื ื‘ืฉืจืช ืžืืฉืจ ื™ืฉ ืžืฉืื‘ื™ CPU ืขื‘ื•ืจ ืกื›ื•ื ื”ืžืฉืงื•ืœื•ืช ืฉืœ ื›ืœ ื”ืคื•ื“ื™ื.

ืื™ืš ื–ื” ืงื•ืจื”? ื›ืืฉืจ ืืชื” ืžื•ืกื™ืฃ ืฉืจืช ืœืืฉื›ื•ืœ Kubernetes, ืžื“ื•ื•ื— ื›ืžื” ืœื™ื‘ื•ืช CPU ื™ืฉ ืœื•. ื•ื›ืืฉืจ ื™ื•ืฆืจื™ื ืคื•ื“ ื—ื“ืฉ, ืžืชื–ืžืŸ Kubernetes ื™ื•ื“ืข ื›ืžื” ืœื™ื‘ื•ืช ื”ืคื•ื“ ื”ื–ื” ื™ืฆื˜ืจืš. ืœืคื™ื›ืš, ื”ืคื•ื“ ื™ื•ืงืฆื” ืœืฉืจืช ืฉื‘ื• ื™ืฉ ืžืกืคื™ืง ืœื™ื‘ื•ืช.

ืžื” ื™ืงืจื” ืื ืœื ื”ื‘ืงืฉื” ืฆื•ื™ื ื” (ื›ืœื•ืžืจ, ืœืคื•ื“ ืื™ืŸ ืžืกืคืจ ืžื•ื’ื“ืจ ืฉืœ ืœื™ื‘ื•ืช ืฉื”ื•ื ืฆืจื™ืš)? ื‘ื•ืื• ื ื‘ื™ืŸ ื›ื™ืฆื“ Kubernetes ืกื•ืคืจืช ืžืฉืื‘ื™ื ื‘ื“ืจืš ื›ืœืœ.

ืขื‘ื•ืจ ืคื•ื“ ืืชื” ื™ื›ื•ืœ ืœืฆื™ื™ืŸ ื”ืŸ ื‘ืงืฉื•ืช (ืžืชื–ืžืŸ CFS) ื•ื”ืŸ ืžื’ื‘ืœื•ืช (ื–ื•ื›ืจื™ื ืืช ื”ืจืžื–ื•ืจ?):

  • ืื ื”ื ืžืฆื•ื™ื ื™ื ืฉื•ื•ื™ื, ืื– ืœืชืจืžื™ืœ ืžื•ืงืฆื” ืžื—ืœืงื” QoS ืžื•ื‘ื˜ื—. ืžืกืคืจ ื”ืœื™ื‘ื•ืช ื”ื–ื” ืฉืชืžื™ื“ ื–ืžื™ื ื•ืช ืœื• ืžื•ื‘ื˜ื—.
  • ืื ื”ื‘ืงืฉื” ืงื˜ื ื” ืžื”ืžื’ื‘ืœื” - ืžื—ืœืงื” QoS ืžืชืคืจืฅ. ื”ึธื”ึตืŸ. ืื ื• ืžืฆืคื™ื ืžืชืจืžื™ืœ, ืœืžืฉืœ, ื™ืฉืชืžืฉ ืชืžื™ื“ ื‘ืœื™ื‘ื” ืื—ืช, ืืš ืขืจืš ื–ื” ืื™ื ื• ืžื’ื‘ืœื” ืขื‘ื•ืจื•: ืœืคืขืžื™ื pod ื™ื›ื•ืœ ืœื”ืฉืชืžืฉ ื‘ื™ื•ืชืจ (ื›ืืฉืจ ืœืฉืจืช ื™ืฉ ืžืฉืื‘ื™ื ืคื ื•ื™ื™ื ืœื›ืš).
  • ื™ืฉ ื’ื ืžื—ืœืงื” QoS ื”ืžืืžืฅ ื”ื˜ื•ื‘ ื‘ื™ื•ืชืจ - ื”ื•ื ื›ื•ืœืœ ืืช ืื•ืชื ืชืจืžื™ืœื™ื ืฉืขื‘ื•ืจื ื”ื‘ืงืฉื” ืœื ืฆื•ื™ื ื”. ืžืฉืื‘ื™ื ื ื™ืชื ื™ื ืœื”ื ืื—ืจื•ืŸ.

ื–ื™ื›ืจื•ืŸ

ืขื ื–ื™ื›ืจื•ืŸ, ื”ืžืฆื‘ ื“ื•ืžื”, ืืš ืžืขื˜ ืฉื•ื ื” - ืื—ืจื™ ื”ื›ืœ, ืื•ืคื™ ื”ืžืฉืื‘ื™ื ื”ืœืœื• ืฉื•ื ื”. ื‘ืื•ืคืŸ ื›ืœืœื™, ื”ืื ืœื•ื’ื™ื” ื”ื™ื ื›ื“ืœืงืžืŸ:

ืงื ื” ืžื™ื“ื” ืื•ื˜ื•ืžื˜ื™ ื•ื ื™ื”ื•ืœ ืžืฉืื‘ื™ื ื‘-Kubernetes (ืกืงื™ืจื” ื›ืœืœื™ืช ื•ื“ื•ื— ื•ื™ื“ืื•)

ื‘ื•ืื• ื ืจืื” ื›ื™ืฆื“ ื‘ืงืฉื•ืช ืžื™ื•ืฉืžื•ืช ื‘ื–ื™ื›ืจื•ืŸ. ืชืŸ ืœืชืจืžื™ืœื™ื ืœื—ื™ื•ืช ื‘ืฉืจืช, ืœืฉื ื•ืช ืืช ืฆืจื™ื›ืช ื”ื–ื™ื›ืจื•ืŸ, ืขื“ ืฉืื—ื“ ืžื”ื ื™ื”ื™ื” ื›ืœ ื›ืš ื’ื“ื•ืœ ืฉื™ื’ืžืจ ืœื• ื”ื–ื™ื›ืจื•ืŸ. ื‘ืžืงืจื” ื–ื”, ื”ืจื•ืฆื— OOM ืžื•ืคื™ืข ื•ื”ื•ืจื’ ืืช ื”ืชื”ืœื™ืš ื”ื’ื“ื•ืœ ื‘ื™ื•ืชืจ:

ืงื ื” ืžื™ื“ื” ืื•ื˜ื•ืžื˜ื™ ื•ื ื™ื”ื•ืœ ืžืฉืื‘ื™ื ื‘-Kubernetes (ืกืงื™ืจื” ื›ืœืœื™ืช ื•ื“ื•ื— ื•ื™ื“ืื•)

ื–ื” ืœื ืชืžื™ื“ ืžืชืื™ื ืœื ื• ื•ืœื›ืŸ ืืคืฉืจ ืœื”ืกื“ื™ืจ ืื™ืœื• ืชื”ืœื™ื›ื™ื ื—ืฉื•ื‘ื™ื ืœื ื• ื•ืืกื•ืจ ืœื”ืจื•ื’ ืื•ืชื. ืœืฉื ื›ืš, ื”ืฉืชืžืฉ ื‘ืคืจืžื˜ืจ oom_score_adj.

ื‘ื•ืื• ื ื—ื–ื•ืจ ืœืžื—ืœืงื•ืช ื”-QoS ืฉืœ ื”-CPU ื•ื ืฆื™ื™ืจ ืื ืœื•ื’ื™ื” ืขื ืขืจื›ื™ oom_score_adj ืฉืงื•ื‘ืขื™ื ืืช ืกื“ืจ ื”ืขื“ื™ืคื•ื™ื•ืช ืฉืœ ืฆืจื™ื›ืช ื”ื–ื™ื›ืจื•ืŸ ืขื‘ื•ืจ ืชืจืžื™ืœื™ื:

  • ื”ืขืจืš ื”ื ืžื•ืš ื‘ื™ื•ืชืจ oom_score_adj ืขื‘ื•ืจ ืชืจืžื™ืœ - -998 - ืื•ืžืจ ืฉืฆืจื™ืš ืœื”ืจื•ื’ ืชืจืžื™ืœ ื›ื–ื” ืื—ืจื•ืŸ, ื–ื” ืžื•ื‘ื˜ื—.
  • ื”ื’ื‘ื•ื” ื‘ื™ื•ืชืจ - 1000 - ื”ื•ื ื”ืžืืžืฅ ื”ื˜ื•ื‘ ื‘ื™ื•ืชืจ, ืชืจืžื™ืœื™ื ื›ืืœื” ื ื”ืจื’ื™ื ืงื•ื“ื.
  • ื›ื“ื™ ืœื—ืฉื‘ ืืช ื”ืขืจื›ื™ื ื”ื ื•ืชืจื™ื (ืžืชืคืจืฅ) ื™ืฉ ื ื•ืกื—ื”, ืฉืžื”ื•ืชื” ืžืกืชื›ืžืช ื‘ืขื•ื‘ื“ื” ืฉื›ื›ืœ ืฉืชืจืžื™ืœ ื‘ื™ืงืฉ ื™ื•ืชืจ ืžืฉืื‘ื™ื, ื›ืš ื™ืฉ ืกื™ื›ื•ื™ ื ืžื•ืš ื™ื•ืชืจ ืฉื”ื•ื ื™ื™ื”ืจื’.

ืงื ื” ืžื™ื“ื” ืื•ื˜ื•ืžื˜ื™ ื•ื ื™ื”ื•ืœ ืžืฉืื‘ื™ื ื‘-Kubernetes (ืกืงื™ืจื” ื›ืœืœื™ืช ื•ื“ื•ื— ื•ื™ื“ืื•)

ื”"ื˜ื•ื•ื™ืกื˜" ื”ืฉื ื™ - limit_in_bytes - ืœื’ื‘ื•ืœื•ืช. ืขื ื–ื”, ื”ื›ืœ ืคืฉื•ื˜ ื™ื•ืชืจ: ืื ื—ื ื• ืคืฉื•ื˜ ืžืงืฆื™ื ืืช ื”ื›ืžื•ืช ื”ืžืงืกื™ืžืœื™ืช ืฉืœ ื–ื™ื›ืจื•ืŸ ืฉื”ื•ืคืง, ื•ื›ืืŸ (ื‘ื ื™ื’ื•ื“ ืœืžืขื‘ื“) ืื™ืŸ ืฉืืœื” ืฉืœ ืื™ืš ืœืžื“ื•ื“ ืื•ืชื• (ื–ื™ื›ืจื•ืŸ).

ื‘ืกืš ื”ื›ืœ

ื›ืœ ืคื•ื“ ื‘- Kubernetes ื ืชื•ืŸ requests ะธ limits - ืฉื ื™ ื”ืคืจืžื˜ืจื™ื ืœืžืขื‘ื“ ื•ื–ื™ื›ืจื•ืŸ:

  1. ื‘ื”ืชื‘ืกืก ืขืœ ื‘ืงืฉื•ืช, ืžืชื–ืžืŸ Kubernetes ืขื•ื‘ื“, ืฉืžืคื™ืฅ ืคื•ื“ื™ื ื‘ื™ืŸ ืฉืจืชื™ื;
  2. ื‘ื”ืชื‘ืกืก ืขืœ ื›ืœ ื”ืคืจืžื˜ืจื™ื, ืžื—ืœืงืช ื”-QoS ืฉืœ ื”ืชืจืžื™ืœ ื ืงื‘ืขืช;
  3. ืžืฉืงืœื™ื ื™ื—ืกื™ื™ื ืžื—ื•ืฉื‘ื™ื ืขืœ ืกืžืš ื‘ืงืฉื•ืช CPU;
  4. ืžืชื–ืžืŸ CFS ืžื•ื’ื“ืจ ืขืœ ืกืžืš ื‘ืงืฉื•ืช CPU;
  5. OOM killer ืžื•ื’ื“ืจ ืขืœ ืกืžืš ื‘ืงืฉื•ืช ื–ื™ื›ืจื•ืŸ;
  6. "ืจืžื–ื•ืจ" ืžื•ื’ื“ืจ ืขืœ ืกืžืš ืžื’ื‘ืœื•ืช ืžืขื‘ื“;
  7. ื‘ื”ืชื‘ืกืก ืขืœ ืžื’ื‘ืœื•ืช ื–ื™ื›ืจื•ืŸ, ืžื’ื‘ืœื” ืžื•ื’ื“ืจืช ืขื‘ื•ืจ cgroup.

ืงื ื” ืžื™ื“ื” ืื•ื˜ื•ืžื˜ื™ ื•ื ื™ื”ื•ืœ ืžืฉืื‘ื™ื ื‘-Kubernetes (ืกืงื™ืจื” ื›ืœืœื™ืช ื•ื“ื•ื— ื•ื™ื“ืื•)

ื‘ืื•ืคืŸ ื›ืœืœื™, ืชืžื•ื ื” ื–ื• ืขื•ื ื” ืขืœ ื›ืœ ื”ืฉืืœื•ืช ืœื’ื‘ื™ ื”ืื•ืคืŸ ืฉื‘ื• ืžืชืจื—ืฉ ื”ื—ืœืง ื”ืขื™ืงืจื™ ืฉืœ ื ื™ื”ื•ืœ ื”ืžืฉืื‘ื™ื ื‘-Kubernetes.

ืงื ื” ืžื™ื“ื” ืื•ื˜ื•ืžื˜ื™

K8s ืืฉื›ื•ืœ-autoscaler

ื‘ื•ืื• ื ื“ืžื™ื™ืŸ ืฉื›ืœ ื”ืืฉื›ื•ืœ ื›ื‘ืจ ืชืคื•ืก ื•ื™ืฉ ืœื™ืฆื•ืจ ืคื•ื“ ื—ื“ืฉ. ื‘ืขื•ื“ ืฉื”ืชืจืžื™ืœ ืื™ื ื• ื™ื›ื•ืœ ืœื”ื•ืคื™ืข, ื”ื•ื ื ืชืงืข ื‘ืžืฆื‘ ืžืžืชื™ืŸ ืœ. ื›ื“ื™ ืฉื”ื•ื ื™ื•ืคื™ืข, ื ื•ื›ืœ ืœื—ื‘ืจ ืฉืจืช ื—ื“ืฉ ืœืืฉื›ื•ืœ ืื•... ืœื”ืชืงื™ืŸ cluster-autoscaler, ืฉื™ืขืฉื” ื–ืืช ืขื‘ื•ืจื ื•: ืœื”ื–ืžื™ืŸ ืžื›ื•ื ื” ื•ื™ืจื˜ื•ืืœื™ืช ืžืกืคืง ื”ืขื ืŸ (ื‘ืืžืฆืขื•ืช ื‘ืงืฉืช API) ื•ืœื—ื‘ืจ ืื•ืชื” ืœืืฉื›ื•ืœ , ืœืื—ืจ ืžื›ืŸ ื™ืชื•ื•ืกืฃ ื”ืคื•ื“ .

ืงื ื” ืžื™ื“ื” ืื•ื˜ื•ืžื˜ื™ ื•ื ื™ื”ื•ืœ ืžืฉืื‘ื™ื ื‘-Kubernetes (ืกืงื™ืจื” ื›ืœืœื™ืช ื•ื“ื•ื— ื•ื™ื“ืื•)

ื–ื”ื• ืงื ื” ืžื™ื“ื” ืื•ื˜ื•ืžื˜ื™ ืฉืœ ืืฉื›ื•ืœ Kubernetes, ืฉืขื•ื‘ื“ ืžืฆื•ื™ืŸ (ืžื ืกื™ื•ื ื ื•). ืขื ื–ืืช, ื›ืžื• ื‘ืžืงื•ืžื•ืช ืื—ืจื™ื, ื™ืฉ ื›ืืŸ ื›ืžื” ื ื™ื•ืื ืกื™ื...

ื›ืœ ืขื•ื“ ื”ื’ื“ืœื ื• ืืช ื’ื•ื“ืœ ื”ืืฉื›ื•ืœ, ื”ื›ืœ ื”ื™ื” ื‘ืกื“ืจ, ืื‘ืœ ืžื” ืงื•ืจื” ื›ืฉื”ืืฉื›ื•ืœ ื”ืชื—ื™ืœ ืœื”ืฉืชื—ืจืจ? ื”ื‘ืขื™ื” ื”ื™ื ืฉื”ืขื‘ืจืช ืคื•ื“ื™ื (ื›ื“ื™ ืœืคื ื•ืช ืžืืจื—ื™ื) ื”ื™ื ืžืื•ื“ ืงืฉื” ืžื‘ื—ื™ื ื” ื˜ื›ื ื™ืช ื•ื™ืงืจื” ืžื‘ื—ื™ื ืช ืžืฉืื‘ื™ื. Kubernetes ืžืฉืชืžืฉ ื‘ื’ื™ืฉื” ืฉื•ื ื” ืœื—ืœื•ื˜ื™ืŸ.

ืฉืงื•ืœ ืืฉื›ื•ืœ ืฉืœ 3 ืฉืจืชื™ื ืขื Deployment. ื™ืฉ ืœื• 6 ืคื•ื“ื™ื: ืขื›ืฉื™ื• ื™ืฉ 2 ืœื›ืœ ืฉืจืช. ืžืฉื•ื ืžื” ืจืฆื™ื ื• ืœื›ื‘ื•ืช ืืช ืื—ื“ ื”ืฉืจืชื™ื. ืœืฉื ื›ืš ื ืฉืชืžืฉ ื‘ืคืงื•ื“ื” kubectl drain, ืื™ื–ื”:

  • ื™ืืกื•ืจ ืœืฉืœื•ื— ืคื•ื“ื™ื ื—ื“ืฉื™ื ืœืฉืจืช ื–ื”;
  • ืชืžื—ืง ืคื•ื“ื™ื ืงื™ื™ืžื™ื ื‘ืฉืจืช.

ืžื›ื™ื•ื•ืŸ ืฉ-Kubernetes ืื—ืจืื™ืช ืขืœ ืฉืžื™ืจื” ืขืœ ืžืกืคืจ ื”ืชืจืžื™ืœื™ื (6), ื–ื” ืคืฉื•ื˜ ื™ืฉื—ื–ืจ ืื•ืชื ื‘ืฆืžืชื™ื ืื—ืจื™ื, ืืš ืœื ืขืœ ื–ื” ื”ืžื•ืฉื‘ืช, ืžื›ื™ื•ื•ืŸ ืฉื”ื•ื ื›ื‘ืจ ืžืกื•ืžืŸ ื›ืœื ื–ืžื™ืŸ ืœืื™ืจื•ื— ืคื•ื“ื™ื ื—ื“ืฉื™ื. ื–ื”ื• ืžื›ื•ื ืื™ ื‘ืกื™ืกื™ ืขื‘ื•ืจ Kubernetes.

ืงื ื” ืžื™ื“ื” ืื•ื˜ื•ืžื˜ื™ ื•ื ื™ื”ื•ืœ ืžืฉืื‘ื™ื ื‘-Kubernetes (ืกืงื™ืจื” ื›ืœืœื™ืช ื•ื“ื•ื— ื•ื™ื“ืื•)

ืขื ื–ืืช, ื’ื ื›ืืŸ ื™ืฉ ื ื™ื•ืื ืก. ื‘ืžืฆื‘ ื“ื•ืžื”, ืขื‘ื•ืจ StatefulSet (ื‘ืžืงื•ื Deployment), ื”ืคืขื•ืœื•ืช ื™ื”ื™ื• ืฉื•ื ื•ืช. ืขื›ืฉื™ื• ื™ืฉ ืœื ื• ื›ื‘ืจ ืืคืœื™ืงืฆื™ื” stateful - ืœืžืฉืœ ืฉืœื•ืฉื” ืคื•ื“ื™ื ืขื MongoDB, ื‘ืื—ื“ ืžื”ื ื™ืฉ ืื™ื–ื•ืฉื”ื™ ื‘ืขื™ื” (ื”ื ืชื•ื ื™ื ื ืคื’ืžื• ืื• ืฉื’ื™ืื” ืื—ืจืช ืฉืžื•ื ืขืช ืžื”ืคื•ื“ ืœื”ืชื—ื™ืœ ื ื›ื•ืŸ). ื•ืฉื•ื‘ ืื ื—ื ื• ืžื—ืœื™ื˜ื™ื ืœื”ืฉื‘ื™ืช ืฉืจืช ืื—ื“. ืžื” ื™ืงืจื”?

ืงื ื” ืžื™ื“ื” ืื•ื˜ื•ืžื˜ื™ ื•ื ื™ื”ื•ืœ ืžืฉืื‘ื™ื ื‘-Kubernetes (ืกืงื™ืจื” ื›ืœืœื™ืช ื•ื“ื•ื— ื•ื™ื“ืื•)

MongoDB ื™ื›ื•ืœ ืœืžื•ืช ื›ื™ ื”ื•ื ืฆืจื™ืš ืžื ื™ื™ืŸ: ืขื‘ื•ืจ ืืฉื›ื•ืœ ืฉืœ ืฉืœื•ืฉื” ืžืชืงื ื™ื, ืœืคื—ื•ืช ืฉื ื™ื™ื ื—ื™ื™ื‘ื™ื ืœืชืคืงื“. ืขื ื–ืืช, ื–ื” ืœื ืงื•ืจื” - ื”ื•ื“ื•ืช ืœ PodDisruptionBudget. ืคืจืžื˜ืจ ื–ื” ืงื•ื‘ืข ืืช ื”ืžืกืคืจ ื”ืžื™ื ื™ืžืœื™ ื”ื ื“ืจืฉ ืฉืœ ืชืจืžื™ืœื™ื ืขื•ื‘ื“ื™ื. ืœื“ืขืช ืฉืื—ื“ ืžื”ืคื•ื“ื™ื ืฉืœ MongoDB ื›ื‘ืจ ืœื ืขื•ื‘ื“, ื•ืœืจืื•ืช ืฉ-PodDisruptionBudget ืžื•ื’ื“ืจ ืขื‘ื•ืจ MongoDB minAvailable: 2, Kubernetes ืœื ื™ืืคืฉืจ ืœืš ืœืžื—ื•ืง ืคื•ื“.

ื‘ืฉื•ืจื” ื”ืชื—ืชื•ื ื”: ืขืœ ืžื ืช ืฉื”ืชื ื•ืขื” (ื•ืœืžืขืฉื”, ื”ื™ืฆื™ืจื” ืžื—ื“ืฉ) ืฉืœ ืคื•ื“ื™ื ืชืคืขืœ ื‘ืฆื•ืจื” ื ื›ื•ื ื” ืขื ืฉื—ืจื•ืจ ื”ืืฉื›ื•ืœ, ืขืœื™ืš ืœื”ื’ื“ื™ืจ ืืช PodDisruptionBudget.

ืงื ื” ืžื™ื“ื” ืื•ืคืงื™

ื‘ื•ืื• ื ืฉืงื•ืœ ืžืฆื‘ ืื—ืจ. ื™ืฉ ื™ื™ืฉื•ื ื”ืคื•ืขืœ ื›-Deployment ื‘-Kubernetes. ืชืขื‘ื•ืจืช ืžืฉืชืžืฉื™ื ืžื’ื™ืขื” ืœืชืจืžื™ืœื™ื ืฉืœื• (ืœืžืฉืœ, ื™ืฉ ืฉืœื•ืฉื” ืžื”ื), ื•ืื ื—ื ื• ืžื•ื“ื“ื™ื ื‘ื”ื ืื™ื ื“ื™ืงื˜ื•ืจ ืžืกื•ื™ื (ื ื’ื™ื“ ืขื•ืžืก ืžืขื‘ื“). ื›ืืฉืจ ื”ืขื•ืžืก ื’ื“ืœ, ืื ื• ืžืชืขื“ื™ื ืื•ืชื• ื‘ืœื•ื— ื–ืžื ื™ื ื•ืžื’ื“ื™ืœื™ื ืืช ืžืกืคืจ ื”ืคื•ื“ื™ื ืœื”ืคืฆืช ื‘ืงืฉื•ืช.

ื›ื™ื•ื ื‘-Kubernetes ืื™ืŸ ืฆื•ืจืš ืœืขืฉื•ืช ื–ืืช ื‘ืื•ืคืŸ ื™ื“ื ื™: ืขืœื™ื™ื”/ื™ืจื™ื“ื” ืื•ื˜ื•ืžื˜ื™ืช ื‘ืžืกืคืจ ื”ืชืจืžื™ืœื™ื ืžื•ื’ื“ืจืช ื‘ื”ืชืื ืœืขืจื›ื™ ืžื—ื•ื•ื ื™ ื”ืขื•ืžืก ื”ื ืžื“ื“ื™ื.

ืงื ื” ืžื™ื“ื” ืื•ื˜ื•ืžื˜ื™ ื•ื ื™ื”ื•ืœ ืžืฉืื‘ื™ื ื‘-Kubernetes (ืกืงื™ืจื” ื›ืœืœื™ืช ื•ื“ื•ื— ื•ื™ื“ืื•)

ื”ืฉืืœื•ืช ื”ืขื™ืงืจื™ื•ืช ื›ืืŸ ื”ืŸ: ืžื” ื‘ื“ื™ื•ืง ืœืžื“ื•ื“ ะธ ืื™ืš ืœืคืจืฉ ืขืจื›ื™ื ืฉื”ื•ืฉื’ื• (ืœืงื‘ืœืช ื”ื—ืœื˜ื” ืขืœ ืฉื™ื ื•ื™ ืžืกืคืจ ื”ืชืจืžื™ืœื™ื). ืืชื” ื™ื›ื•ืœ ืœืžื“ื•ื“ ื”ืจื‘ื”:

ืงื ื” ืžื™ื“ื” ืื•ื˜ื•ืžื˜ื™ ื•ื ื™ื”ื•ืœ ืžืฉืื‘ื™ื ื‘-Kubernetes (ืกืงื™ืจื” ื›ืœืœื™ืช ื•ื“ื•ื— ื•ื™ื“ืื•)

ืื™ืš ืขื•ืฉื™ื ื–ืืช ืžื‘ื—ื™ื ื” ื˜ื›ื ื™ืช - ืื•ืกืคื™ื ืžื“ื“ื™ื ื•ื›ื•'. - ื“ื™ื‘ืจืชื™ ื‘ืคื™ืจื•ื˜ ื‘ื“ื•ื— ืขืœ ื ื™ื˜ื•ืจ ื•-Kubernetes. ื•ื”ืขืฆื” ื”ืขื™ืงืจื™ืช ืœื‘ื—ื™ืจืช ื”ืคืจืžื˜ืจื™ื ื”ืื•ืคื˜ื™ืžืœื™ื™ื ื”ื™ื ืœึฐื ึทืกื•ึนืช!

ื™ืฉ ืฉื™ื˜ืช USE (ืจื•ื•ื™ืช ืฉื™ืžื•ืฉ ื•ืฉื’ื™ืื•ืช), ืฉืžืฉืžืขื•ืชื• ื”ื™ื ื›ื“ืœืงืžืŸ. ืขืœ ืกืžืš ืžื” ื–ื” ื”ื’ื™ื•ื ื™ ืœื‘ืฆืข ืงื ื” ืžื™ื“ื”, ืœืžืฉืœ, php-fpm? ื‘ื”ืชื‘ืกืก ืขืœ ื”ืขื•ื‘ื“ื” ืฉื”ืขื•ื‘ื“ื™ื ืื•ื–ืœื™ื, ื–ื”ื• ื ื™ืฆื•ืœ. ื•ืื ื ื’ืžืจื• ื”ืขื•ื‘ื“ื™ื ื•ืœื ื™ืชืงื‘ืœื• ืงืฉืจื™ื ื—ื“ืฉื™ื, ื–ื” ื›ื‘ืจ ืจื•ื•ื™. ื™ืฉ ืœืžื“ื•ื“ ืืช ืฉื ื™ ื”ืคืจืžื˜ืจื™ื ื”ืœืœื•, ื•ื‘ื”ืชืื ืœืขืจื›ื™ื ื™ืฉ ืœื‘ืฆืข ืงื ื” ืžื™ื“ื”.

ื‘ืžืงื•ื ืžืกืงื ื”

ืœื“ื•ื— ื™ืฉ ื”ืžืฉืš: ืขืœ ืงื ื” ืžื™ื“ื” ืื ื›ื™ ื•ื›ื™ืฆื“ ืœื‘ื—ื•ืจ ืืช ื”ืžืฉืื‘ื™ื ื”ื ื›ื•ื ื™ื. ืื ื™ ืื“ื‘ืจ ืขืœ ื–ื” ื‘ืกืจื˜ื•ื ื™ื ื”ื‘ืื™ื ืขืœ ื”ื™ื•ื˜ื™ื•ื‘ ืฉืœื ื• - ื”ื™ืจืฉืžื• ื›ื“ื™ ืœื ืœืคืกืคืก!

ืกืจื˜ื•ื ื™ื ื•ืฉืงื•ืคื™ื•ืช

ืกืจื˜ื•ืŸ ืžื”ื”ื•ืคืขื” (44 ื“ืงื•ืช):

ื”ืฆื’ืช ื”ื“ื•"ื—:

ื .ื‘.

ื“ื™ื•ื•ื—ื™ื ื ื•ืกืคื™ื ืขืœ Kubernetes ื‘ื‘ืœื•ื’ ืฉืœื ื•:

ืžืงื•ืจ: www.habr.com

ื”ื•ืกืคืช ืชื’ื•ื‘ื”