ืžืขื‘ืจ ื˜ื™ื ื“ืจ ืœ-Kubernetes

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

ืžืขื‘ืจ ื˜ื™ื ื“ืจ ืœ-Kubernetes

ืœืžื”?

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

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

ื”ืชื”ืœื™ืš ื”ืชื‘ืจืจ ื›ืงืฉื”. ื‘ืžื”ืœืš ื”ื”ื’ื™ืจื” ืฉืœื ื• ื‘ืชื—ื™ืœืช 2019, ืืฉื›ื•ืœ Kubernetes ื”ื’ื™ืข ืœืžืกื” ืงืจื™ื˜ื™ืช ื•ื”ืชื—ืœื ื• ืœื”ื™ืชืงืœ ื‘ื‘ืขื™ื•ืช ืฉื•ื ื•ืช ืขืงื‘ ื ืคื— ืชืขื‘ื•ืจื”, ื’ื•ื“ืœ ืืฉื›ื•ืœ ื•-DNS. ืœืื•ืจืš ื”ื“ืจืš, ืคืชืจื ื• ื”ืจื‘ื” ื‘ืขื™ื•ืช ืžืขื ื™ื™ื ื•ืช ื”ืงืฉื•ืจื•ืช ืœื”ืขื‘ืจืช 200 ืฉื™ืจื•ืชื™ื ื•ืชื—ื–ื•ืงืช ืืฉื›ื•ืœ Kubernetes ื”ืžื•ืจื›ื‘ ืž-1000 ืฆืžืชื™ื, 15000 ืคื•ื“ื™ื ื•-48000 ืงื•ื ื˜ื™ื™ื ืจื™ื ืคื•ืขืœื™ื.

ืื™ืš?

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

ื‘ื ื™ื™ืช ืชืžื•ื ื•ืช ืขื‘ื•ืจ Kubernetes

ื™ืฉ ืœื ื• ืœืžืขืœื” ืž-30 ืžืื’ืจื™ ืงื•ื“ ืžืงื•ืจ ืขื‘ื•ืจ ืฉื™ืจื•ืชื™ ืžื™ืงืจื• ื”ืคื•ืขืœื™ื ืขืœ ืืฉื›ื•ืœ Kubernetes. ื”ืงื•ื“ ื‘ืžืื’ืจื™ื ืืœื” ื›ืชื•ื‘ ื‘ืฉืคื•ืช ืฉื•ื ื•ืช (ืœื“ื•ื’ืžื”, Node.js, Java, Scala, Go) ืขื ืžืกืคืจ ืกื‘ื™ื‘ื•ืช ื–ืžืŸ ืจื™ืฆื” ืขื‘ื•ืจ ืื•ืชื” ืฉืคื”.

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

ืžืขื‘ืจ ื˜ื™ื ื“ืจ ืœ-Kubernetes
ืื™ื•ืจ 1-1. ืชื”ืœื™ืš ื‘ื ื™ื™ื” ืกื˜ื ื“ืจื˜ื™ ื‘ืืžืฆืขื•ืช ืงื•ื ื˜ื™ื™ื ืจ Builder

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

ื”ื˜ืžืขืช ื”ืžื›ื•ืœื” ืฉืœื• ื“ืจืฉื” ื˜ื›ื ื™ืงื•ืช ืžืชืงื“ืžื•ืช ืฉืœ Docker. Builder ื™ื•ืจืฉ ืืช ืžื–ื”ื” ื”ืžืฉืชืžืฉ ื”ืžืงื•ืžื™ ื•ืืช ื”ืกื•ื“ื•ืช (ื›ื’ื•ืŸ ืžืคืชื— SSH, ืื™ืฉื•ืจื™ AWS ื•ื›ื•') ื”ื ื“ืจืฉื™ื ื›ื“ื™ ืœื’ืฉืช ืœืžืื’ืจื™ ื˜ื™ื ื“ืจ ื”ืคืจื˜ื™ื™ื. ื”ื•ื ืžืขืœื” ืกืคืจื™ื•ืช ืžืงื•ืžื™ื•ืช ื”ืžื›ื™ืœื•ืช ืžืงื•ืจื•ืช ื›ื“ื™ ืœืื—ืกืŸ ื‘ืื•ืคืŸ ื˜ื‘ืขื™ ื—ืคืฆื™ ื‘ื ื™ื™ื”. ื’ื™ืฉื” ื–ื• ืžืฉืคืจืช ืืช ื”ื‘ื™ืฆื•ืขื™ื ืžื›ื™ื•ื•ืŸ ืฉื”ื™ื ืžื‘ื˜ืœืช ืืช ื”ืฆื•ืจืš ืœื”ืขืชื™ืง ื—ืคืฆื™ ื‘ื ื™ื™ื” ื‘ื™ืŸ ื”-Builder ืœืžืืจื—. ื ื™ืชืŸ ืœืขืฉื•ืช ืฉื™ืžื•ืฉ ื—ื•ื–ืจ ื‘ื—ืคืฆื™ ื‘ื ื™ื™ื” ืžืื•ื—ืกื ื™ื ืœืœื ืชืฆื•ืจื” ื ื•ืกืคืช.

ืขื‘ื•ืจ ืฉื™ืจื•ืชื™ื ืžืกื•ื™ืžื™ื, ื”ื™ื™ื ื• ืฆืจื™ื›ื™ื ืœื™ืฆื•ืจ ืงื•ื ื˜ื™ื™ื ืจ ื ื•ืกืฃ ื›ื“ื™ ืœืžืคื•ืช ืืช ืกื‘ื™ื‘ืช ื”ื”ื™ื“ื•ืจ ืœืกื‘ื™ื‘ืช ื–ืžืŸ ื”ืจื™ืฆื” (ืœื“ื•ื’ืžื”, ืกืคืจื™ื™ืช Node.js bcrypt ืžื™ื™ืฆืจืช ื—ืคืฆื™ื ื‘ื™ื ืืจื™ื™ื ืกืคืฆื™ืคื™ื™ื ืœืคืœื˜ืคื•ืจืžื” ื‘ืžื”ืœืš ื”ื”ืชืงื ื”). ื‘ืžื”ืœืš ืชื”ืœื™ืš ื”ืงื•ืžืคื™ืœืฆื™ื”, ื”ื“ืจื™ืฉื•ืช ืขืฉื•ื™ื•ืช ืœื”ืฉืชื ื•ืช ื‘ื™ืŸ ื”ืฉื™ืจื•ืชื™ื, ื•ื”-Dockerfile ื”ืกื•ืคื™ ื ืขืจืš ืชื•ืš ื›ื“ื™ ืชื ื•ืขื”.

ืืจื›ื™ื˜ืงื˜ื•ืจืช ืืฉื›ื•ืœื•ืช ื•ื”ื’ื™ืจื” ืฉืœ Kubernetes

ื ื™ื”ื•ืœ ื’ื•ื“ืœ ืืฉื›ื•ืœ

ื”ื—ืœื˜ื ื• ืœื”ืฉืชืžืฉ kube-aws ืœืคืจื™ืกืช ืืฉื›ื•ืœื•ืช ืื•ื˜ื•ืžื˜ื™ืช ื‘ืžื•ืคืขื™ Amazon EC2. ื‘ื”ืชื—ืœื” ื”ื›ืœ ืขื‘ื“ ื‘ืžืื’ืจ ืื—ื“ ืžืฉื•ืชืฃ ืฉืœ ืฆืžืชื™ื. ืžื”ืจ ืžืื•ื“ ื”ื‘ื ื• ืืช ื”ืฆื•ืจืš ืœื”ืคืจื™ื“ ืขื•ืžืกื™ ืขื‘ื•ื“ื” ืœืคื™ ื’ื•ื“ืœ ื•ืกื•ื’ ืžื•ืคืข ื›ื“ื™ ืœืขืฉื•ืช ืฉื™ืžื•ืฉ ื™ืขื™ืœ ื™ื•ืชืจ ื‘ืžืฉืื‘ื™ื. ื”ื”ื™ื’ื™ื•ืŸ ื”ื™ื” ืฉื”ืคืขืœืช ืžืกืคืจ ืชืจืžื™ืœื™ื ืžืจื•ื‘ื™ื ืคืชื™ืœื™ื ื˜ืขื•ื ื™ื ื”ืชื‘ืจืจื” ื›ืฆืคื•ื™ื” ื™ื•ืชืจ ืžื‘ื—ื™ื ืช ื‘ื™ืฆื•ืขื™ื ืžืืฉืจ ื”ื“ื•-ืงื™ื•ื ืฉืœื”ื ืขื ืžืกืคืจ ืจื‘ ืฉืœ ืคื•ื˜ื™ื ืขื ื—ื™ื‘ื•ืจื™ื ื‘ื•ื“ื“ื™ื.

ื‘ืกื•ืฃ ื”ืกืชืคืงื ื• ื‘:

  • m5.4x ืœื”ื’ื“ื™ืœ - ืœื ื™ื˜ื•ืจ (ืคืจื•ืžืชืื•ืก);
  • c5.4x ืœื”ื’ื“ื™ืœ - ืขื‘ื•ืจ ืขื•ืžืก ืขื‘ื•ื“ื” ืฉืœ Node.js (ืขื•ืžืก ืขื‘ื•ื“ื” ืขื ื—ื•ื˜ ื™ื—ื™ื“);
  • c5.2x ืœื”ื’ื“ื™ืœ - ืขื‘ื•ืจ Java ื•-Go (ืขื•ืžืก ืขื‘ื•ื“ื” ืžืจื•ื‘ื” ื—ื•ื˜ื™ื);
  • c5.4x ืœื”ื’ื“ื™ืœ - ืขื‘ื•ืจ ืœื•ื— ื”ื‘ืงืจื” (3 ืฆืžืชื™ื).

ื”ื’ื™ืจื”

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

ื ืงื•ื“ื•ืช ืงืฆื” ืืœื• ื ื•ืฆืจื• ื‘ืืžืฆืขื•ืช ืงื‘ื•ืฆื•ืช ืžืฉื•ืงืœืœื•ืช ืฉืœ ืจืฉื•ืžื•ืช DNS ืฉื‘ื”ืŸ ื”ื™ื• CNAMEs ืฉื”ืฆื‘ื™ืขื• ืขืœ ื›ืœ ELB ื—ื“ืฉ. ื›ื“ื™ ืœืขื‘ื•ืจ, ื”ื•ืกืคื ื• ืขืจืš ื—ื“ืฉ ื”ืžืฆื‘ื™ืข ืขืœ ื”-ELB ื”ื—ื“ืฉ ืฉืœ ืฉื™ืจื•ืช Kubernetes ืขื ืžืฉืงืœ ืฉืœ 0. ืœืื—ืจ ืžื›ืŸ ื”ื’ื“ืจื ื• ืืช Time To Live (TTL) ืฉืœ ื”ืขืจืš ืฉื”ื•ื’ื“ืจ ืœ-0. ืœืื—ืจ ืžื›ืŸ, ื”ืžืฉืงืœ ื”ื™ืฉืŸ ื•ื”ื—ื“ืฉ ื”ื™ื• ืžื•ืชืื ืœืื˜, ื•ื‘ืกื•ืคื• ืฉืœ ื“ื‘ืจ 100% ืžื”ืขื•ืžืก ื ืฉืœื— ืœืฉืจืช ื—ื“ืฉ. ืœืื—ืจ ื”ืฉืœืžืช ื”ืžืขื‘ืจ, ืขืจืš ื”-TTL ื—ื–ืจ ืœืจืžื” ื ืื•ืชื” ื™ื•ืชืจ.

ืžื•ื“ื•ืœื™ ื”-Java ืฉื”ื™ื• ืœื ื• ื™ื›ืœื• ืœื”ืชืžื•ื“ื“ ืขื DNS ื ืžื•ืš ืฉืœ TTL, ืื‘ืœ ื™ื™ืฉื•ืžื™ ื”-Node ืœื ื™ื›ืœื•. ืื—ื“ ื”ืžื”ื ื“ืกื™ื ื›ืชื‘ ืžื—ื“ืฉ ื—ืœืง ืžืงื•ื“ ืžืื’ืจ ื”ื—ื™ื‘ื•ืจ ื•ืขื˜ืฃ ืื•ืชื• ื‘ืžื ื”ืœ ืฉืขื“ื›ืŸ ืืช ื”ืžืื’ืจื™ื ื›ืœ 60 ืฉื ื™ื•ืช. ื”ื’ื™ืฉื” ืฉื ื‘ื—ืจื” ืขื‘ื“ื” ื˜ื•ื‘ ืžืื•ื“ ื•ืœืœื ื›ืœ ื™ืจื™ื“ื” ื ื™ื›ืจืช ื‘ื‘ื™ืฆื•ืขื™ื.

ื”ืฉื™ืขื•ืจื™ื

ื”ื’ื‘ื•ืœื•ืช ืฉืœ ืžืืจื’ ื”ืจืฉืช

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

ื™ืฉื ืŸ ืฉืœื•ืฉ ืืคืฉืจื•ื™ื•ืช ืœื™ื ื•ืงืก ื”ืงืฉื•ืจื•ืช ืœืžื˜ืžื•ืŸ ARP:

ืžืขื‘ืจ ื˜ื™ื ื“ืจ ืœ-Kubernetes
(ืžืงื•ืจ)

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

ืื ื• ืžืฉืชืžืฉื™ื ืคืœึธื ึถืœ ื›ืžืืจื’ ืจืฉืช ื‘- Kubernetes. ืžื ื•ืช ืžื•ืขื‘ืจื•ืช ื“ืจืš VXLAN. VXLAN ื”ื™ื ืžื ื”ืจื” L2 ื”ืžื•ืจืžืช ืขืœ ื’ื‘ื™ ืจืฉืช L3. ื”ื˜ื›ื ื•ืœื•ื’ื™ื” ืžืฉืชืžืฉืช ื‘ืื ืงืคืกื•ืœืฆื™ื” ืฉืœ MAC-in-UDP (MAC Address-in-User Datagram Protocol) ื•ืžืืคืฉืจืช ื”ืจื—ื‘ื” ืฉืœ ืžืงื˜ืขื™ ืจืฉืช ืฉื›ื‘ื” 2. ืคืจื•ื˜ื•ืงื•ืœ ื”ืชื—ื‘ื•ืจื” ื‘ืจืฉืช ืžืจื›ื– ื”ื ืชื•ื ื™ื ื”ืคื™ื–ื™ ื”ื•ื IP ืคืœื•ืก UDP.

ืžืขื‘ืจ ื˜ื™ื ื“ืจ ืœ-Kubernetes
ืื™ื•ืจ 2-1. ื“ื™ืื’ืจืžืช ืคืœื ืœ (ืžืงื•ืจ)

ืžืขื‘ืจ ื˜ื™ื ื“ืจ ืœ-Kubernetes
ืื™ื•ืจ 2-2. ื—ื‘ื™ืœืช VXLAN (ืžืงื•ืจ)

ื›ืœ ืฆื•ืžืช ืขื•ื‘ื“ ืฉืœ Kubernetes ืžืงืฆื” ืžืจื—ื‘ ื›ืชื•ื‘ื•ืช ื•ื™ืจื˜ื•ืืœื™ ืขื ืžืกื™ื›ืช /24 ืžื‘ืœื•ืง /9 ื’ื“ื•ืœ ื™ื•ืชืจ. ืขื‘ื•ืจ ื›ืœ ืฆื•ืžืช ื–ื” ืืžืฆืขื™ื ืขืจืš ืื—ื“ ื‘ื˜ื‘ืœืช ื”ื ื™ืชื•ื‘, ืขืจืš ืื—ื“ ื‘ื˜ื‘ืœืช ื”-ARP (ื‘ืžืžืฉืง flannel.1), ื•ืขืจืš ืื—ื“ ื‘ื˜ื‘ืœืช ื”ืžื™ืชื•ื’ (FDB). ื”ื ืžืชื•ื•ืกืคื™ื ื‘ืคืขื ื”ืจืืฉื•ื ื” ืฉืฆื•ืžืช ืขื•ื‘ื“ ืžื•ืคืขืœ ืื• ื‘ื›ืœ ืคืขื ืฉืžืชื’ืœื” ืฆื•ืžืช ื—ื“ืฉ.

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

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

ื‘ื–ืžืŸ ื”ื›ืฉืœ, ื”ื™ื• 605 ืฆืžืชื™ื ื‘ืืฉื›ื•ืœ. ืžื”ื˜ืขืžื™ื ืฉืฆื•ื™ื ื• ืœืขื™ืœ, ื“ื™ ื”ื™ื” ื‘ื›ืš ื›ื“ื™ ืœื”ืชื’ื‘ืจ ืขืœ ื”ืžืฉืžืขื•ืช gc_thresh3, ืฉื”ื™ื ื‘ืจื™ืจืช ื”ืžื—ื“ืœ. ื›ืฉื–ื” ืงื•ืจื”, ืœื ืจืง ืฉืžืชื—ื™ืœื•ืช ืœื”ื™ืฉืžื˜ ืžื ื•ืช, ืืœื ืฉื›ืœ ืžืจื—ื‘ ื”ื›ืชื•ื‘ื•ืช ื”ื•ื•ื™ืจื˜ื•ืืœื™ ืฉืœ ืคืœื ืœ ืขื ืžืกื™ื›ืช /24 ื ืขืœื ืžื˜ื‘ืœืช ื”-ARP. ืชืงืฉื•ืจืช ื‘-Pod ื•ืฉืื™ืœืชื•ืช DNS ื ืงื˜ืขื•ืช (DNS ืžืชืืจื— ื‘ืืฉื›ื•ืœ; ืงืจื ื‘ื”ืžืฉืš ืžืืžืจ ื–ื” ืœืคืจื˜ื™ื).

ื›ื“ื™ ืœืคืชื•ืจ ื‘ืขื™ื” ื–ื•, ืืชื” ืฆืจื™ืš ืœื”ื’ื“ื™ืœ ืืช ื”ืขืจื›ื™ื gc_thresh1, gc_thresh2 ะธ gc_thresh3 ื•ื”ืคืขืœ ืžื—ื“ืฉ ืืช Flanell ื›ื“ื™ ืœืจืฉื•ื ืžื—ื“ืฉ ืืช ื”ืจืฉืชื•ืช ื”ื—ืกืจื•ืช.

ืฉื™ื ื•ื™ ืงื ื” ืžื™ื“ื” DNS ืœื ืฆืคื•ื™

ื‘ืžื”ืœืš ืชื”ืœื™ืš ื”ื”ื’ื™ืจื”, ื”ืฉืชืžืฉื ื• ื‘ืื•ืคืŸ ืคืขื™ืœ ื‘-DNS ืœื ื™ื”ื•ืœ ืชืขื‘ื•ืจื” ื•ื”ืขื‘ืจื” ื”ื“ืจื’ืชื™ืช ืฉืœ ืฉื™ืจื•ืชื™ื ืžื”ืชืฉืชื™ืช ื”ื™ืฉื ื” ืœ-Kubernetes. ื”ื’ื“ืจื ื• ืขืจื›ื™ TTL ื ืžื•ื›ื™ื ื™ื—ืกื™ืช ืขื‘ื•ืจ RecordSets ืžืฉื•ื™ื›ื™ื ื‘-Route53. ื›ืืฉืจ ื”ืชืฉืชื™ืช ื”ื™ืฉื ื” ืคืขืœื” ืขืœ ืžื•ืคืขื™ EC2, ืชืฆื•ืจืช ื”ืคื•ืชืจ ืฉืœื ื• ื”ืฆื‘ื™ืขื” ืขืœ ืืžื–ื•ืŸ DNS. ืœืงื—ื ื• ืืช ื–ื” ื›ืžื•ื‘ืŸ ืžืืœื™ื• ื•ื”ื”ืฉืคืขื” ืฉืœ ื”-TTL ื”ื ืžื•ืš ืขืœ ื”ืฉื™ืจื•ืชื™ื ืฉืœื ื• ื•ืฉื™ืจื•ืชื™ ืืžื–ื•ืŸ (ื›ื’ื•ืŸ DynamoDB) ื ืขืœืžื” ื‘ืจื•ื‘ื”.

ื›ืฉื”ืขื‘ืจื ื• ืฉื™ืจื•ืชื™ื ืœ-Kubernetes, ื’ื™ืœื™ื ื• ืฉ-DNS ืžืขื‘ื“ 250 ืืœืฃ ื‘ืงืฉื•ืช ื‘ืฉื ื™ื™ื”. ื›ืชื•ืฆืื” ืžื›ืš, ื™ื™ืฉื•ืžื™ื ื”ื—ืœื• ืœื—ื•ื•ืช ืคืกืง ื–ืžืŸ ืงื‘ื•ืข ื•ืจืฆื™ื ื™ ืขื‘ื•ืจ ืฉืื™ืœืชื•ืช DNS. ื–ื” ืงืจื” ืœืžืจื•ืช ืžืืžืฆื™ื ืžื“ื”ื™ืžื™ื ืœื™ื™ืขืœ ื•ืœื”ืขื‘ื™ืจ ืืช ืกืคืง ื”-DNS ืœ-CoreDNS (ืฉื‘ืขื•ืžืก ื”ืฉื™ื ื”ื’ื™ืข ืœ-1000 ืคื•ื“ื™ื ื”ืคื•ืขืœื™ื ืขืœ 120 ืœื™ื‘ื•ืช).

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

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

  • ืื™ืŸ ืฆื•ืจืš ื‘-SNAT ื›ื™ ื”ืชืขื‘ื•ืจื” ื ืฉืืจืช ื‘ืชื•ืš ื”ืฆื•ืžืช. ืื™ืŸ ืฆื•ืจืš ืœื ืชื‘ ืื•ืชื• ื“ืจืš ื”ืžืžืฉืง eth0.
  • ืื™ืŸ ืฆื•ืจืš ื‘-DNAT ืžื›ื™ื•ื•ืŸ ืฉื›ืชื•ื‘ืช ื”-IP ืฉืœ ื”ื™ืขื“ ื”ื™ื ืžืงื•ืžื™ืช ืœืฆื•ืžืช, ื•ืœื ืชืจืžื™ืœ ืฉื ื‘ื—ืจ ื‘ืืงืจืื™ ืœืคื™ ื”ื›ืœืœื™ื iptables.

ื”ื—ืœื˜ื ื• ืœื”ื™ืฉืืจ ืขื ื”ื’ื™ืฉื” ื”ื–ื•. CoreDNS ื ืคืจืก ื›-DaemonSet ื‘-Kubernetes ื•ื”ื˜ืžืขื ื• ืฉืจืช DNS ืžืงื•ืžื™ ืฉืœ ืฆื•ืžืช ื‘- resolve.conf ื›ืœ ืชืจืžื™ืœ ืขืœ ื™ื“ื™ ื”ืฆื‘ืช ื“ื’ืœ --cluster-dns ืฆื•ื•ืชื™ื ืงื•ื‘ืœื˜โ€Š. ืคืชืจื•ืŸ ื–ื” ื”ืชื‘ืจืจ ื›ื™ืขื™ืœ ืขื‘ื•ืจ ืคืกืงื™ ื–ืžืŸ ืฉืœ DNS.

ืขื ื–ืืช, ืขื“ื™ื™ืŸ ืจืื™ื ื• ืื•ื‘ื“ืŸ ืžื ื•ืช ื•ืขืœื™ื™ื” ื‘ืžื•ื ื” insert_failed ื‘ืžืžืฉืง ืคืœื ืœ. ื–ื” ื ืžืฉืš ืœืื—ืจ ื”ื˜ืžืขืช ื”ืคืชืจื•ืŸ ืœืขืงื™ืคืช ื”ื‘ืขื™ื” ืžื›ื™ื•ื•ืŸ ืฉื”ืฆืœื—ื ื• ืœื‘ื˜ืœ ืืช SNAT ื•/ืื• DNAT ืขื‘ื•ืจ ืชืขื‘ื•ืจืช DNS ื‘ืœื‘ื“. ืชื ืื™ ื”ืžืจื•ืฅ ื ืฉืžืจื• ืœืกื•ื’ื™ ืชื ื•ืขื” ืื—ืจื™ื. ืœืžืจื‘ื” ื”ืžื–ืœ, ืจื•ื‘ ื”ื—ื‘ื™ืœื•ืช ืฉืœื ื• ื”ืŸ TCP, ื•ืื ืžืชืจื—ืฉืช ื‘ืขื™ื” ื”ืŸ ืคืฉื•ื˜ ืžื•ืขื‘ืจื•ืช ืžื—ื“ืฉ. ืื ื—ื ื• ืขื“ื™ื™ืŸ ืžื ืกื™ื ืœืžืฆื•ื ืคืชืจื•ืŸ ืžืชืื™ื ืœื›ืœ ืกื•ื’ื™ ื”ืชื ื•ืขื”.

ืฉื™ืžื•ืฉ ื‘-Envoy ืœืื™ื–ื•ืŸ ืขื•ืžืกื™ื ื˜ื•ื‘ ื™ื•ืชืจ

ื›ืฉื”ืขื‘ืจื ื• ืฉื™ืจื•ืชื™ backend ืœ-Kubernetes, ื”ืชื—ืœื ื• ืœืกื‘ื•ืœ ืžืขื•ืžืก ืœื ืžืื•ื–ืŸ ื‘ื™ืŸ ื”ืชืจืžื™ืœื™ื. ืžืฆืื ื• ืฉ-HTTP Keepalive ื’ืจื ืœื—ื™ื‘ื•ืจื™ ELB ืœื”ื™ืชืงืข ืขืœ ื”ืคื•ื“ื™ื ื”ืžื•ื›ื ื™ื ื”ืจืืฉื•ื ื™ื ืฉืœ ื›ืœ ืคืจื™ืกื” ืฉื”ื•ืฉืงื”. ืœืคื™ื›ืš, ืขื™ืงืจ ื”ืชื ื•ืขื” ืขื‘ืจื” ื‘ืื—ื•ื– ืงื˜ืŸ ืžื”ืคื•ื“ื™ื ื”ื–ืžื™ื ื™ื. ื”ืคืชืจื•ืŸ ื”ืจืืฉื•ืŸ ืฉื‘ื“ืงื ื• ื”ื™ื” ืœื”ื’ื“ื™ืจ ืืช MaxSurge ืœ-100% ืขืœ ืคืจื™ืกื•ืช ื—ื“ืฉื•ืช ืขื‘ื•ืจ ืชืจื—ื™ืฉื™ื ื’ืจื•ืขื™ื ื‘ื™ื•ืชืจ. ื”ื”ืฉืคืขื” ื”ืชื‘ืจืจื” ื›ืœื ืžืฉืžืขื•ืชื™ืช ื•ืœื ืžื‘ื˜ื™ื—ื” ื‘ืžื•ื ื—ื™ื ืฉืœ ืคืจื™ืกื•ืช ื’ื“ื•ืœื•ืช ื™ื•ืชืจ.

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

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

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

ืฉืœื™ื—ื™ ื—ื–ื™ืช ื”ืฉื™ืจื•ืช ื”ืฉืชืžืฉื• ืื– ื‘ืžื ื’ื ื•ืŸ ื’ื™ืœื•ื™ ืฉื™ืจื•ืช ื–ื” ืขื ืืฉื›ื•ืœ ื•ืžืกืœื•ืœ ืื—ื“ ื‘ืžืขืœื” ื”ื–ืจื. ืงื‘ืขื ื• ืคืกืงื™ ื–ืžืŸ ื ืื•ืชื™ื, ื”ื’ื“ืœื ื• ืืช ื›ืœ ื”ื’ื“ืจื•ืช ืžืคืกืง ื”ื–ืจื ื•ื”ื•ืกืคื ื• ืชืฆื•ืจืช ื ื™ืกื™ื•ืŸ ื—ื•ื–ืจ ืžื™ื ื™ืžืœื™ืช ื›ื“ื™ ืœืกื™ื™ืข ื‘ื›ืฉืœื™ื ื‘ื•ื“ื“ื™ื ื•ืœื”ื‘ื˜ื™ื— ืคืจื™ืกื” ื—ืœืงื”. ื”ืฆื‘ื ื• TCP ELB ืžื•ืœ ื›ืœ ืื—ื“ ืžื”ืฉืœื™ื—ื™ื ื”ืงื“ืžื™ื™ื ืฉืœ ื”ืฉื™ืจื•ืช ื”ืœืœื•. ื’ื ืื Keepalive ืžืฉื›ื‘ืช โ€‹โ€‹ื”-proxy ื”ืจืืฉื™ืช ืฉืœื ื• ื”ื™ื” ืชืงื•ืข ื‘ื—ืœืง ืžื”ืชืจืžื™ืœื™ื ืฉืœ Envoy, ื”ื ืขื“ื™ื™ืŸ ื”ื™ื• ืžืกื•ื’ืœื™ื ืœื”ืชืžื•ื“ื“ ืขื ื”ืขื•ืžืก ื”ืจื‘ื” ื™ื•ืชืจ ื˜ื•ื‘ ื•ื”ื•ื’ื“ืจื• ืœืื–ืŸ ื“ืจืš least_request ื‘-backend.

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

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

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

ืžืขื‘ืจ ื˜ื™ื ื“ืจ ืœ-Kubernetes
ืื™ื•ืจ 3-1. ื”ืชื›ื ืกื•ืช ืžืขื‘ื“ ืฉืœ ืฉื™ืจื•ืช ืื—ื“ ื‘ืžื”ืœืš ื”ืžืขื‘ืจ ืœ-Envoy

ืžืขื‘ืจ ื˜ื™ื ื“ืจ ืœ-Kubernetes

ืžืขื‘ืจ ื˜ื™ื ื“ืจ ืœ-Kubernetes

ืชื•ืฆืื” ืกื•ืคื™ืช

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

ื›ืืฉืจ ืขืœื” ื”ืฆื•ืจืš ื‘ืงื™ื‘ื•ืœืช ื ื•ืกืคืช ืขืœ ื”ืชืฉืชื™ืช ื”ื™ืฉื ื”, โ€‹โ€‹ื ืืœืฆื ื• ืœื”ืžืชื™ืŸ ืžืกืคืจ ื“ืงื•ืช ืœื”ืคืขืœืช ืžื•ืคืขื™ EC2 ื—ื“ืฉื™ื. ื›ืขืช ืงื•ื ื˜ื™ื™ื ืจื™ื ืžืชื—ื™ืœื™ื ืœืจื•ืฅ ื•ืžืชื—ื™ืœื™ื ืœืขื‘ื“ ืชื ื•ืขื” ืชื•ืš ืฉื ื™ื•ืช ื‘ืžืงื•ื ื“ืงื•ืช. ืชื–ืžื•ืŸ ืžื™ื›ืœื™ื ืžืจื•ื‘ื™ื ืขืœ ืžื•ืคืข EC2 ื‘ื•ื“ื“ ืžืกืคืง ื’ื ืจื™ื›ื•ื– ืื•ืคืงื™ ืžืฉื•ืคืจ. ื›ืชื•ืฆืื” ืžื›ืš, ืื ื• ืฆื•ืคื™ื ื™ืจื™ื“ื” ืžืฉืžืขื•ืชื™ืช ื‘ืขืœื•ื™ื•ืช EC2019 ื‘ืฉื ืช 2 ื‘ื”ืฉื•ื•ืื” ืœืฉื ื” ืฉืขื‘ืจื”.

ื”ื”ื’ื™ืจื” ืืจื›ื” ื›ืžืขื˜ ืฉื ืชื™ื™ื, ืื‘ืœ ื”ืฉืœืžื ื• ืื•ืชื” ื‘ืžืจืฅ 2019. ื ื›ื•ืŸ ืœืขื›ืฉื™ื•, ืคืœื˜ืคื•ืจืžืช ื˜ื™ื ื“ืจ ืคื•ืขืœืช ื‘ืœืขื“ื™ืช ืขืœ ืืฉื›ื•ืœ Kubernetes ื”ืžื•ืจื›ื‘ ืž-200 ืฉื™ืจื•ืชื™ื, 1000 ืฆืžืชื™ื, 15 ืคื•ื“ื™ื ื•-000 ืžื›ื•ืœื•ืช ืคื•ืขืœื•ืช. ืชืฉืชื™ืช ื”ื™ื ื›ื‘ืจ ืœื ื”ืชื—ื•ื ื”ื‘ืœืขื“ื™ ืฉืœ ืฆื•ื•ืชื™ ื”ืชืคืขื•ืœ. ื›ืœ ื”ืžื”ื ื“ืกื™ื ืฉืœื ื• ื—ื•ืœืงื™ื ืื—ืจื™ื•ืช ื–ื• ื•ืฉื•ืœื˜ื™ื ื‘ืชื”ืœื™ืš ื”ื‘ื ื™ื™ื” ื•ื”ืคืจื™ืกื” ืฉืœ ื”ื™ื™ืฉื•ืžื™ื ืฉืœื”ื ื‘ืืžืฆืขื•ืช ืงื•ื“ ื‘ืœื‘ื“.

ื .ื‘ ืžื”ืžืชืจื’ื

ืงืจื ื’ื ืกื“ืจืช ืžืืžืจื™ื ื‘ื‘ืœื•ื’ ืฉืœื ื•:

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

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