ื™ืฆื™ืจืช ืคืœื˜ืคื•ืจืžืช kubernetes ื‘ืคื™ื ื˜ืจืกื˜

ื‘ืžื”ืœืš ื”ืฉื ื™ื, 300 ืžื™ืœื™ื•ืŸ ื”ืžืฉืชืžืฉื™ื ืฉืœ ืคื™ื ื˜ืจืกื˜ ื™ืฆืจื• ื™ื•ืชืจ ืž-200 ืžื™ืœื™ืืจื“ ืกื™ื›ื•ืช ืขืœ ื™ื•ืชืจ ืž-4 ืžื™ืœื™ืืจื“ ืœื•ื—ื•ืช. ื›ื“ื™ ืœืฉืจืช ืืช ืฆื‘ื ื”ืžืฉืชืžืฉื™ื ื•ื‘ืกื™ืก ื”ืชื•ื›ืŸ ื”ืขืฆื•ื ื”ื–ื”, ื”ืคื•ืจื˜ืœ ืคื™ืชื— ืืœืคื™ ืฉื™ืจื•ืชื™ื, ื”ื—ืœ ืžืฉื™ืจื•ืชื™ ืžื™ืงืจื• ืฉื ื™ืชืŸ ืœื˜ืคืœ ื‘ื”ื ืขืœ ื™ื“ื™ ื›ืžื” ืžืขื‘ื“ื™ื, ื•ืขื“ ืœืžื•ื ื•ืœื™ื˜ื™ื ืขื ืงื™ื™ื ื”ืคื•ืขืœื™ื ืขืœ ืฆื™ ืฉืœื ืฉืœ ืžื›ื•ื ื•ืช ื•ื™ืจื˜ื•ืืœื™ื•ืช. ื•ืื– ื”ื’ื™ืข ื”ืจื’ืข ืฉื‘ื• ืขื™ื ื™ ื”ื—ื‘ืจื” ื ืคืœื• ืขืœ K8s. ืžื“ื•ืข ื”"ืงื•ื‘ื™ื”" ื ืจืืชื” ื˜ื•ื‘ ื‘ืคื™ื ื˜ืจืกื˜? ืชืœืžื“ ืขืœ ื›ืš ืžื”ืชืจื’ื•ื ืฉืœื ื• ืœืžืืžืจ ืฉืคื•ืจืกื ืœืื—ืจื•ื ื” ื”ื ื“ืกืช ื‘ืœื•ื’ Pinterest.

ื™ืฆื™ืจืช ืคืœื˜ืคื•ืจืžืช kubernetes ื‘ืคื™ื ื˜ืจืกื˜

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

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

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

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

ื™ืฆื™ืจืช ืคืœื˜ืคื•ืจืžืช kubernetes ื‘ืคื™ื ื˜ืจืกื˜

ืื™ื•ืจ 1: ืกื“ืจื™ ืขื“ื™ืคื•ื™ื•ืช ืฉืœ ืชืฉืชื™ืช (ืืžื™ื ื•ืช, ืคืจื•ื“ื•ืงื˜ื™ื‘ื™ื•ืช ืžืคืชื—ื™ื ื•ื™ืขื™ืœื•ืช).

ืฆื•ื•ืช ืคืœื˜ืคื•ืจืžืช ื ื™ื”ื•ืœ ื”ืขื ืŸ ื‘-Pinterest ื’ื™ืœื” ืืช K8s ื‘-2017. ื‘ืžื—ืฆื™ืช ื”ืจืืฉื•ื ื” ืฉืœ 2017, ืชื™ืขื“ื ื• ืืช ืจื•ื‘ ื™ื›ื•ืœื•ืช ื”ื™ื™ืฆื•ืจ ืฉืœื ื•, ื›ื•ืœืœ ื”-API ื•ื›ืœ ืฉืจืชื™ ื”ืื™ื ื˜ืจื ื˜ ืฉืœื ื•. ืœืื—ืจ ืžื›ืŸ, ืขืจื›ื ื• ื”ืขืจื›ื” ื™ืกื•ื“ื™ืช ืฉืœ ืžืขืจื›ื•ืช ืฉื•ื ื•ืช ืœืชื–ืžื•ืจ ืคืชืจื•ื ื•ืช ืžื›ื•ืœื•ืช, ื‘ื ื™ื™ืช ืืฉื›ื•ืœื•ืช ื•ืขื‘ื•ื“ื” ืื™ืชืŸ. ืœืงืจืืช ืกื•ืฃ 2017 ื”ื—ืœื˜ื ื• ืœื”ืฉืชืžืฉ ื‘-Kubernetes. ื–ื” ื”ื™ื” ื“ื™ ื’ืžื™ืฉ ื•ื ืชืžืš ื‘ืื•ืคืŸ ื ืจื—ื‘ ื‘ืงื”ื™ืœืช ื”ืžืคืชื—ื™ื.

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

Kubernetes: The Pinterest Way

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

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

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

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

ืžืืคื™ื™ื ื™ ืžืฉืชืžืฉ ื•ื‘ืงืจื™ Pinterest

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

CRDs ืžืกืคืงื™ื ืืช ื”ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช ื”ื‘ืื”:

  1. ืฉื™ืœื•ื‘ ืžืฉืื‘ื™ Kubernetes ืžืงื•ืจื™ื™ื ืฉื•ื ื™ื ื›ืš ืฉื™ืขื‘ื“ื• ื›ืขื•ืžืก ืขื‘ื•ื“ื” ื™ื—ื™ื“. ืœื“ื•ื’ืžื”, ื”ืžืฉืื‘ ืฉืœ PinterestService ื›ื•ืœืœ ืคืจื™ืกื”, ืฉื™ืจื•ืช ื”ืชื—ื‘ืจื•ืช ื•ืžืคืช ืชืฆื•ืจื”. ื–ื” ืžืืคืฉืจ ืœืžืคืชื—ื™ื ืœื ืœื“ืื•ื’ ืœื’ื‘ื™ ื”ื’ื“ืจืช DNS.
  2. ื™ื™ืฉื ืชืžื™ื›ื” ื‘ืืคืœื™ืงืฆื™ื” ื”ื“ืจื•ืฉื”. ื”ืžืฉืชืžืฉ ืฆืจื™ืš ืœื”ืชืžืงื“ ืจืง ื‘ืžืคืจื˜ ื”ืงื•ื ื˜ื™ื™ื ืจ ืœืคื™ ื”ื”ื™ื’ื™ื•ืŸ ื”ืขืกืงื™ ืฉืœื•, ื‘ืขื•ื“ ืฉื‘ืงืจ ื”-CRD ืžื™ื™ืฉื ืืช ื›ืœ ื”ืงื•ื ื˜ื™ื™ื ืจื™ื ื”ื ื—ื•ืฆื™ื, ืžืฉืชื ื™ ื”ืกื‘ื™ื‘ื” ื•ืžืคืจื˜ื™ ื”ืคื•ื“. ื–ื” ืžืกืคืง ืจืžื” ืฉื•ื ื” ืžื”ื•ืชื™ืช ืฉืœ ื ื•ื—ื•ืช ืœืžืคืชื—ื™ื.
  3. ื‘ืงืจื™ CRD ื’ื ืžื ื”ืœื™ื ืืช ืžื—ื–ื•ืจ ื”ื—ื™ื™ื ืฉืœ ืžืฉืื‘ื™ื ืžืงื•ืจื™ื™ื ื•ืžืฉืคืจื™ื ืืช ื–ืžื™ื ื•ืช ื ื™ืคื•ื™ ื”ื‘ืื’ื™ื. ื–ื” ื›ื•ืœืœ ื”ืชืืžื” ื‘ื™ืŸ ืžืคืจื˜ื™ื ืจืฆื•ื™ื™ื ื•ืžืžืฉื™ื™ื, ืขื“ื›ื•ืŸ ืกื˜ื˜ื•ืก CRD ื•ืชื—ื–ื•ืงืช ื™ื•ืžื ื™ ืื™ืจื•ืขื™ื ื•ืขื•ื“. ืœืœื CRD, ืžืคืชื—ื™ื ื™ื™ืืœืฆื• ืœื ื”ืœ ืžืฉืื‘ื™ื ืžืจื•ื‘ื™ื, ืžื” ืฉืจืง ื™ื’ื“ื™ืœ ืืช ื”ืกื‘ื™ืจื•ืช ืœื˜ืขื•ืช.

ื”ื ื” ื“ื•ื’ืžื” ืฉืœ PinterestService ื•ืžืฉืื‘ ืคื ื™ืžื™ ื”ืžื ื•ื”ืœ ืขืœ ื™ื“ื™ ื”ื‘ืงืจ ืฉืœื ื•:

ื™ืฆื™ืจืช ืคืœื˜ืคื•ืจืžืช kubernetes ื‘ืคื™ื ื˜ืจืกื˜

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

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

ื–ืจื™ืžืช ืขื‘ื•ื“ื” ืฉืœ ืคืจื™ืกืช ื™ื™ืฉื•ืžื™ื

ื™ืฆื™ืจืช ืคืœื˜ืคื•ืจืžืช kubernetes ื‘ืคื™ื ื˜ืจืกื˜

ื”ืชืžื•ื ื” ืœืžืขืœื” ืžืจืื” ื›ื™ืฆื“ ืœืคืจื•ืก ืžืฉืื‘ ืžื•ืชืื ืื™ืฉื™ืช ืฉืœ Pinterest ืœืืฉื›ื•ืœ Kubernetes:

  1. ืžืคืชื—ื™ื ืžืงื™ื™ืžื™ื ืื™ื ื˜ืจืืงืฆื™ื” ืขื ืืฉื›ื•ืœ Kubernetes ืฉืœื ื• ื“ืจืš ื”-CLI ื•ืžืžืฉืง ื”ืžืฉืชืžืฉ.
  2. ื›ืœื™ ื”-CLI/UI ืžืื—ื–ืจื™ื ืืช ืงื‘ืฆื™ YAML ืฉืœ ืชืฆื•ืจืช ื–ืจื™ืžืช ื”ืขื‘ื•ื“ื” ื•ืžืืคื™ื™ื ื™ ื‘ื ื™ื™ื” ืื—ืจื™ื (ืื•ืชื• ืžื–ื”ื” ื’ืจืกื”) ืž-Artifactory ื•ืœืื—ืจ ืžื›ืŸ ืžื’ื™ืฉื™ื ืื•ืชื ืœืฉื™ืจื•ืช ื”ื’ืฉืช ื”ืขื‘ื•ื“ื”. ืฉืœื‘ ื–ื” ืžื‘ื˜ื™ื— ืฉืจืง ื’ืจืกืื•ืช ื™ื™ืฆื•ืจ ื™ื™ืžืกืจื• ืœืืฉื›ื•ืœ.
  3. JSS ื”ื•ื ืฉืขืจ ืœืคืœื˜ืคื•ืจืžื•ืช ืฉื•ื ื•ืช, ื›ื•ืœืœ Kubernetes. ื›ืืŸ ื”ืžืฉืชืžืฉ ืžืื•ืžืช, ืžื›ืกื•ืช ืžื•ื ืคืงื•ืช ื•ืชืฆื•ืจืช ื”-CRD ืฉืœื ื• ื ื‘ื“ืงืช ื—ืœืงื™ืช.
  4. ืœืื—ืจ ื‘ื“ื™ืงืช ื”-CRD ื‘ืฆื“ ื”-JSS, ื”ืžื™ื“ืข ื ืฉืœื— ืœ-API ืฉืœ ืคืœื˜ืคื•ืจืžืช k8s.
  5. ื‘ืงืจ ื”-CRD ืฉืœื ื• ืžื ื˜ืจ ืื™ืจื•ืขื™ื ื‘ื›ืœ ืžืฉืื‘ื™ ื”ืžืฉืชืžืฉ. ื”ื•ื ืžืžื™ืจ CRs ืœืžืฉืื‘ื™ k8s ืžืงื•ืจื™ื™ื, ืžื•ืกื™ืฃ ืืช ื”ืžื•ื“ื•ืœื™ื ื”ื“ืจื•ืฉื™ื, ืžื’ื“ื™ืจ ืืช ืžืฉืชื ื™ ื”ืกื‘ื™ื‘ื” ื”ืžืชืื™ืžื™ื ื•ืžื‘ืฆืข ืขื‘ื•ื“ื•ืช ืชืžื™ื›ื” ืื—ืจื•ืช ื›ื“ื™ ืœื”ื‘ื˜ื™ื— ืฉืœืืคืœื™ืงืฆื™ื•ืช ืžืฉืชืžืฉ ืžื›ื•ืœื•ืช ื™ืฉ ืชืžื™ื›ื” ืžืกืคืงืช ื‘ืชืฉืชื™ืช.
  6. ืœืื—ืจ ืžื›ืŸ, ื‘ืงืจ ื”-CRD ืžืขื‘ื™ืจ ืืช ื”ื ืชื•ื ื™ื ืฉื”ืชืงื‘ืœื• ืœ-Kubernetes API ื›ืš ืฉื ื™ืชืŸ ื™ื”ื™ื” ืœืขื‘ื“ ืื•ืชื ืขืœ ื™ื“ื™ ื”ืžืชื–ืžืŸ ื•ืœื”ื›ื ื™ืกื ืœื™ื™ืฆื•ืจ.

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

ืกื•ื’ื™ ืžืฉืื‘ื™ื ืžื™ื•ื—ื“ื™ื

ื‘ื”ืชื‘ืกืก ืขืœ ื”ืฆืจื›ื™ื ื”ืกืคืฆื™ืคื™ื™ื ืฉืœ Pinterest, ืคื™ืชื—ื ื• ืืช ื”-CRD ื”ื‘ืื•ืช ื›ื“ื™ ืœื”ืชืื™ื ืœื–ืจื™ืžื•ืช ืขื‘ื•ื“ื” ืฉื•ื ื•ืช:

  • PinterestService ื”ื ืฉื™ืจื•ืชื™ื ื—ืกืจื™ ืžื“ื™ื ื” ืฉืคื•ืขืœื™ื ื›ื‘ืจ ื–ืžืŸ ืจื‘. ืจื‘ื•ืช ืžืžืขืจื›ื•ืช ื”ืœื™ื‘ื” ืฉืœื ื• ืžื‘ื•ืกืกื•ืช ืขืœ ืงื‘ื•ืฆื” ืฉืœ ืฉื™ืจื•ืชื™ื ื›ืืœื”.
  • PinterestJobSet ืžื“ื’ืžื ืช ืขื‘ื•ื“ื•ืช ืืฆื•ื•ื” ื‘ืžื—ื–ื•ืจ ืžืœื. ืชืจื—ื™ืฉ ื ืคื•ืฅ ื‘-Pinterest ื”ื•ื ืฉืขื‘ื•ื“ื•ืช ืžืจื•ื‘ื•ืช ืžืจืฆื•ืช ืืช ืื•ืชื ืงื•ื ื˜ื™ื™ื ืจื™ื ื‘ืžืงื‘ื™ืœ, ืœืœื ืงืฉืจ ืœืชื”ืœื™ื›ื™ื ื“ื•ืžื™ื ืื—ืจื™ื.
  • PinterestCronJob ื ืžืฆื ื‘ืฉื™ืžื•ืฉ ื ืจื—ื‘ ื‘ืฉื™ืœื•ื‘ ืขื ืขื•ืžืกื™ื ืชืงื•ืคืชื™ื™ื ืงื˜ื ื™ื. ื–ื•ื”ื™ ืขื˜ื™ืคื” ืœืขื‘ื•ื“ืช ืงืจื•ืŸ ืžืงื•ืจื™ืช ืขื ืžื ื’ื ื•ื ื™ ืชืžื™ื›ื” ืฉืœ Pinterest ืฉืื—ืจืื™ื ืขืœ ืื‘ื˜ื—ื”, ืชืขื‘ื•ืจื”, ื™ื•ืžื ื™ื ื•ืžื“ื“ื™ื.
  • PinterestDaemon ื›ื•ืœืœ ืชืฉืชื™ืช Daemons. ื”ืžืฉืคื—ื” ื”ื–ื• ืžืžืฉื™ื›ื” ืœื’ื“ื•ืœ ื›ื›ืœ ืฉืื ื• ืžื•ืกื™ืคื™ื ืขื•ื“ ืชืžื™ื›ื” ืœืืฉื›ื•ืœื•ืช ืฉืœื ื•.
  • PinterestTrainingJob ืžืฉืชืจืข ืขืœ ืชื”ืœื™ื›ื™ Tensorflow ื•- Pytorch, ื•ืžืกืคืง ืืช ืื•ืชื” ืจืžื” ืฉืœ ืชืžื™ื›ื” ื‘ื–ืžืŸ ืจื™ืฆื” ื›ืžื• ื›ืœ ืฉืืจ ื”-CRDs. ืžื›ื™ื•ื•ืŸ ืฉ-Pinterest ืžืฉืชืžืฉืช ื‘ืื•ืคืŸ ืคืขื™ืœ ื‘- Tensorflow ื•ื‘ืžืขืจื›ื•ืช ืœืžื™ื“ืช ืžื›ื•ื ื” ืื—ืจื•ืช, ื”ื™ื™ืชื” ืœื ื• ืกื™ื‘ื” ืœื‘ื ื•ืช CRD ื ืคืจื“ ืกื‘ื™ื‘ืŸ.

ืื ื—ื ื• ืขื•ื‘ื“ื™ื ื’ื ืขืœ PinterestStatefulSet, ืฉื™ื•ืชืื ื‘ืงืจื•ื‘ ืœืžื—ืกื ื™ ื ืชื•ื ื™ื ื•ืžืขืจื›ื•ืช ืžืชืงื“ืžื•ืช ืื—ืจื•ืช.

ืชืžื™ื›ื” ื‘ื–ืžืŸ ืจื™ืฆื”

ื›ืืฉืจ ืคื•ื“ ื™ื™ืฉื•ืžื™ื ืคื•ืขืœ ืขืœ Kubernetes, ื”ื•ื ืžืงื‘ืœ ืื•ื˜ื•ืžื˜ื™ืช ืื™ืฉื•ืจ ืœื–ื”ื•ืช ืืช ืขืฆืžื•. ืื™ืฉื•ืจ ื–ื” ืžืฉืžืฉ ืœื’ื™ืฉื” ืœืื—ืกื•ืŸ ืกื•ื“ื™ ืื• ืœืชืงืฉื•ืจืช ืขื ืฉื™ืจื•ืชื™ื ืื—ืจื™ื ื‘ืืžืฆืขื•ืช mTLS. ื‘ื™ื ืชื™ื™ื, Configurator Init Container ื•-Daemon ื™ื•ืจื™ื“ื• ืืช ื›ืœ ื”ืชืœื•ืช ื”ื“ืจื•ืฉื•ืช ืœืคื ื™ ื”ืคืขืœืช ื”ืืคืœื™ืงืฆื™ื” ื”ืžื›ื•ืœื”. ื›ืฉื”ื›ืœ ื™ื”ื™ื” ืžื•ื›ืŸ, ื”-sidecar ื•-Daemon ื™ืจืฉืžื• ืืช ื›ืชื•ื‘ืช ื”-IP ืฉืœ ื”ืžื•ื“ื•ืœ ืืฆืœ Zookeeper ืฉืœื ื• ื›ื“ื™ ืฉืœืงื•ื—ื•ืช ื™ื•ื›ืœื• ืœื’ืœื•ืช ืื•ืชื”. ื›ืœ ื–ื” ื™ืขื‘ื•ื“ ืžื›ื™ื•ื•ืŸ ืฉืžื•ื“ื•ืœ ื”ืจืฉืช ื”ื•ื’ื“ืจ ืœืคื ื™ ื”ืคืขืœืช ื”ื™ื™ืฉื•ื.

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

ื‘ื“ื™ืงื•ืช ื•-QA

ื‘ื ื™ื ื• ืฆื™ื ื•ืจ ื‘ื“ื™ืงื” ืžืงืฆื” ืœืงืฆื” ืขืœ ื’ื‘ื™ ืชืฉืชื™ืช ื”ื‘ื“ื™ืงื” ื”ืงื™ื™ืžืช ืฉืœ Kubernetes. ื‘ื“ื™ืงื•ืช ืืœื• ื—ืœื•ืช ืขืœ ื›ืœ ื”ืืฉื›ื•ืœื•ืช ืฉืœื ื•. ื”ืฆื™ื ื•ืจ ืฉืœื ื• ืขื‘ืจ ืชื™ืงื•ื ื™ื ืจื‘ื™ื ืœืคื ื™ ืฉื”ืคืš ืœื—ืœืง ืžืืฉื›ื•ืœ ื”ืžื•ืฆืจื™ื.

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

ืืœื˜ืจื ื˜ื™ื‘ื•ืช

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

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

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

ืขื‘ื•ื“ื” ืงืจื•ื‘ื”

ืื ื• ืžืชืžื•ื“ื“ื™ื ื›ืขืช ืขื ืขื•ืžืก ืžืขื•ืจื‘ ื‘ื›ืœ ื”ืืฉื›ื•ืœื•ืช ืฉืœื ื•. ื›ื“ื™ ืœืชืžื•ืš ื‘ืชื”ืœื™ื›ื™ื ื›ืืœื” ืžืกื•ื’ื™ื ื•ื’ื“ืœื™ื ืฉื•ื ื™ื, ืื ื• ืขื•ื‘ื“ื™ื ื‘ืชื—ื•ืžื™ื ื”ื‘ืื™ื:

  • ืื•ืกืฃ ืฉืœ ืืฉื›ื•ืœื•ืช ืžืคื™ืฅ ื™ื™ืฉื•ืžื™ื ื’ื“ื•ืœื™ื ืขืœ ืคื ื™ ืืฉื›ื•ืœื•ืช ืฉื•ื ื™ื ืœืฆื•ืจืš ืžื“ืจื’ื™ื•ืช ื•ื™ืฆื™ื‘ื•ืช.
  • ื”ื‘ื˜ื—ืช ื™ืฆื™ื‘ื•ืช ืืฉื›ื•ืœ, ืžื“ืจื’ื™ื•ืช ื•ื ืจืื•ืช ืœื™ืฆื™ืจืช ืงื™ืฉื•ืจื™ื•ืช ื™ื™ืฉื•ืžื™ื ื•-SLAs.
  • ื ื™ื”ื•ืœ ืžืฉืื‘ื™ื ื•ืžื›ืกื•ืช ื›ืš ืฉื”ืืคืœื™ืงืฆื™ื•ืช ืœื ื™ืชื ื’ืฉื• ื–ื• ื‘ื–ื•, ื•ื”ื™ืงืฃ ื”ืืฉื›ื•ืœ ื ืฉืœื˜ ืžืฆื™ื“ื ื•.
  • ืคืœื˜ืคื•ืจืžืช CI/CD ื—ื“ืฉื” ืœืชืžื™ื›ื” ื•ืคืจื™ืกื” ืฉืœ ื™ื™ืฉื•ืžื™ื ื‘-Kubernetes.

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

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