10 เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบ—เบปเปˆเบงเป„เบ›เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเปƒเบŠเป‰ Kubernetes

เบซเบกเบฒเบโ€‹เป€เบซเบ”โ€‹. เปเบ›.: เบœเบนเป‰เบ‚เบฝเบ™เบ‚เบญเบ‡เบšเบปเบ”เบ„เบงเบฒเบกเบ™เบตเป‰เปเบกเปˆเบ™เบงเบดเบชเบฐเบงเบฐเบเบญเบ™เบˆเบฒเบเบšเปเบฅเบดเบชเบฑเบ”เบžเบฒเบชเบฒเป€เบŠเบฑเบเป‚เบเบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบ, pipetail. เบžเบงเบเป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเบชเบฒเบกเบฒเบ”เบˆเบฑเบ”เบงเบฒเบ‡เบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเบ—เบตเปˆเบเบญเบ”เบขเป‰เบฝเบกเบ‚เบญเบ‡ [เบšเบฒเบ‡เบ„เบฑเป‰เบ‡ banal, เปเบ•เปˆเบเบฑเบ‡] เบšเบฑเบ™เบซเบฒเบ—เบตเปˆเบเบปเบ”เบ”เบฑเบ™เบซเบผเบฒเบเปเบฅเบฐเบ„เบงเบฒเบกเป€เบ‚เบปเป‰เบฒเปƒเบˆเบœเบดเบ”เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบ‚เบญเบ‡เบเบธเปˆเบก Kubernetes.

10 เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบ—เบปเปˆเบงเป„เบ›เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเปƒเบŠเป‰ Kubernetes

เปƒเบ™เป„เบฅเบเบฐเบ›เบตเบ‚เบญเบ‡เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ Kubernetes, เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบเบธเปˆเบกเบˆเปเบฒเบ™เบงเบ™เบซเบฅเบฒเบ (เบ—เบฑเบ‡เบเบฒเบ™เบ„เบธเป‰เบกเบ„เบญเบ‡เปเบฅเบฐเบšเปเปˆเบกเบตเบเบฒเบ™เบ„เบธเป‰เบกเบ„เบญเบ‡ - เปƒเบ™ GCP, AWS เปเบฅเบฐ Azure). เป€เบกเบทเปˆเบญเป€เบงเบฅเบฒเบœเปˆเบฒเบ™เป„เบ›, เบžเบงเบเป€เบฎเบปเบฒเป€เบฅเบตเปˆเบกเบชเบฑเบ‡เป€เบเบ”เป€เบซเบฑเบ™เบงเปˆเบฒเบšเบฒเบ‡เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เป„เบ”เป‰เบ–เบทเบเบŠเป‰เปเบฒเป€เบฅเบทเป‰เบญเบเป†. เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เบšเปเปˆเบกเบตเบ„เบงเบฒเบกเบญเบฑเบšเบญเบฒเบเปƒเบ™เป€เบฅเบทเปˆเบญเบ‡เบ™เบตเป‰: เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เป€เบฎเบฑเบ”เบชเปˆเบงเบ™เปƒเบซเบเปˆเบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡!

เบšเบปเบ”เบ„เบงเบฒเบกเบกเบตเบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เบ—เบปเปˆเบงเป„เบ›เบ—เบตเปˆเบชเบธเบ”เปเบฅเบฐเบเบฑเบ‡เบเปˆเบฒเบงเป€เบ–เบดเบ‡เบงเบดเบ—เบตเบเบฒเบ™เปเบเป‰เป„เบ‚เบžเบงเบเบกเบฑเบ™.

1. เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™: เบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเปเบฅเบฐเบ‚เปเป‰เบˆเปเบฒเบเบฑเบ”

เบฅเบฒเบเบเบฒเบ™เบ™เบตเป‰เปเบ™เปˆเบ™เบญเบ™เบชเบปเบกเบ„เบงเบ™เป„เบ”เป‰เบฎเบฑเบšเบ„เบงเบฒเบกเบชเบปเบ™เปƒเบˆเบขเปˆเบฒเบ‡เปƒเบเป‰เบŠเบดเบ”เบ—เบตเปˆเบชเบธเบ”เปเบฅเบฐเบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเบ—เปเบฒเบญเบดเบ”เปƒเบ™เบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆ.

เบ›เบปเบเบเบฐเบ•เบดเปเบฅเป‰เบงเบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เป CPU เบ—เบฑเบ‡เบšเปเปˆเป„เบ”เป‰เบฅเบฐเบšเบธเป„เบงเป‰เบ—เบฑเบ‡เปเบปเบ” เบซเบผเบทเบกเบตเบกเบนเบ™เบ„เปˆเบฒเบ•เปเปˆเบฒเบซเบผเบฒเบ (เป€เบžเบทเปˆเบญเบงเบฒเบ‡เบเบฑเบเปƒเบซเป‰เบซเบผเบฒเบเป€เบ—เบปเปˆเบฒเบ—เบตเปˆเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เปƒเบ™เปเบ•เปˆเบฅเบฐเบ‚เปเป‰). เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, nodes เบเบฒเบเป€เบ›เบฑเบ™ overloaded. เปƒเบ™เบŠเปˆเบงเบ‡เป€เบงเบฅเบฒเบ‚เบญเบ‡เบเบฒเบ™เป‚เบซเบผเบ”เบชเบนเบ‡, เบžเบฐเบฅเบฑเบ‡เบ‡เบฒเบ™เบเบฒเบ™เบ›เบฐเบกเบงเบ™เบœเบปเบ™เบ‚เบญเบ‡ node เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบขเปˆเบฒเบ‡เป€เบ•เบฑเบกเบชเปˆเบงเบ™เปเบฅเบฐเบงเบฝเบเบ‡เบฒเบ™เบชเบฐเป€เบžเบฒเบฐเปƒเบ”เบซเบ™เบถเปˆเบ‡เป„เบ”เป‰เบฎเบฑเบšเบžเบฝเบ‡เปเบ•เปˆเบชเบดเปˆเบ‡เบ—เบตเปˆเบกเบฑเบ™ "เบฎเป‰เบญเบ‡เบ‚เป" เป‚เบ”เบ. เบเบฒเบ™เบ„เบงเบšเบ„เบธเบก CPU. เบญเบฑเบ™เบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบŠเบฑเบเบŠเป‰เบฒเบ‚เบญเบ‡เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เป€เบžเบตเปˆเบกเบ‚เบถเป‰เบ™, เปเบปเบ”เป€เบงเบฅเบฒ, เปเบฅเบฐเบœเบปเบ™เบชเบฐเบ—เป‰เบญเบ™เบ—เบตเปˆเบšเปเปˆเบ”เบตเบญเบทเปˆเบ™เป†. (เบญเปˆเบฒเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบเปˆเบฝเบงเบเบฑเบšเป€เบฅเบทเปˆเบญเบ‡เบ™เบตเป‰เปƒเบ™เบเบฒเบ™เปเบ›เบซเบผเป‰เบฒเบชเบธเบ”เบญเบทเปˆเบ™เป†เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ: โ€œเบ‚เบตเบ”เบˆเบณเบเบฑเบ” CPU เปเบฅเบฐเบเบฒเบ™เบ‚เบฑเบ”เบ‚เบงเบฒเบ‡เบ—เบตเปˆเบฎเบธเบเบฎเบฒเบ™เปƒเบ™ Kubernetes" - เบ›เบฐโ€‹เบกเบฒเบ™โ€‹. เปเบ›.)

เบ„เบงเบฒเบกเบžเบฐเบเบฒเบเบฒเบกเบ—เบตเปˆเบ”เบตเบ—เบตเปˆเบชเบธเบ” (เบขเปˆเบฒเบ‡โ€‹เบเบดเปˆเบ‡ เบšเปเปˆ เปเบ™เบฐโ€‹เบ™เปเบฒโ€‹:

resources: {}

เบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เป CPU เบ•เปเปˆเบฒเบซเบผเบฒเบ (เบ—เบตเปˆเบชเบธเบ” เบšเปเปˆ เปเบ™เบฐโ€‹เบ™เปเบฒโ€‹:

   resources:
      Requests:
        cpu: "1m"

เปƒเบ™เบ—เบฒเบ‡เบเบปเบ‡เบเบฑเบ™เบ‚เป‰เบฒเบก, เบเบฒเบ™เบกเบตเบ‚เบญเบšเป€เบ‚เบ”เบˆเปเบฒเบเบฑเบ”เบ‚เบญเบ‡ CPU เบชเบฒเบกเบฒเบ”เบ™เปเบฒเป„เบ›เบชเบนเปˆเบเบฒเบ™เบ‚เป‰เบฒเบกเป‚เบกเบ‡เบ—เบตเปˆเบšเปเปˆเบชเบปเบกเป€เบซเบ”เบชเบปเบกเบœเบปเบ™เป‚เบ”เบ pods, เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเป‚เบ›เป€เบŠเบ”เป€เบŠเบต node เบšเปเปˆเป„เบ”เป‰เป‚เบซเบฅเบ”เบขเปˆเบฒเบ‡เป€เบ•เบฑเบกเบ—เบตเปˆ. เบญเบตเบเป€เบ—เบทเปˆเบญเบซเบ™เบถเปˆเบ‡, เบ™เบตเป‰เบชเบฒเบกเบฒเบ”เบ™เปเบฒเป„เบ›เบชเบนเปˆเบเบฒเบ™เบŠเบฑเบเบŠเป‰เบฒเป€เบžเบตเปˆเบกเบ‚เบถเป‰เบ™. เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เบเบฑเบ™เบเบฑเบ‡เบชเบทเบšเบ•เปเปˆเบ›เบฐเบกเบฒเบ™เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบต เป‚เบ„เบ•เป‰เบฒ CPU CFS เปƒเบ™ Linux kernel เปเบฅเบฐ CPU throttling เบ‚เบถเป‰เบ™เบเบฑเบšเบ‚เปเป‰เบˆเปเบฒเบเบฑเบ”เบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เป„เบงเป‰, เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบเบฒเบ™เบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เป‚เบ„เบ•เป‰เบฒ CFS ... เบญเบฐเบ™เบดเบˆเบฒ, เบ‚เบญเบšเป€เบ‚เบ”เบˆเปเบฒเบเบฑเบ”เบ‚เบญเบ‡ CPU เบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบเบตเบ”เบšเบฑเบ™เบซเบฒเบซเบผเบฒเบเบเปˆเบงเบฒเบ—เบตเปˆเบžเบงเบเป€เบ‚เบปเบฒเบชเบฒเบกเบฒเบ”เปเบเป‰เป„เบ‚เป„เบ”เป‰. เบ‚เปเป‰เบกเบนเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบเปˆเบฝเบงเบเบฑเบšเป€เบฅเบทเปˆเบญเบ‡เบ™เบตเป‰เบชเบฒเบกเบฒเบ”เบžเบปเบšเป„เบ”เป‰เบ—เบตเปˆเบฅเบดเป‰เบ‡เบ‚เป‰เบฒเบ‡เบฅเบธเปˆเบกเบ™เบตเป‰.

เบเบฒเบ™เบ„เบฑเบ”เป€เบฅเบทเบญเบเบซเบผเบฒเบเป€เบเบตเบ™เป„เบ› ( overcommitting ) เบšเบฑเบ™เบซเบฒเบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒเบชเบฒเบกเบฒเบ”เบ™เปเบฒเป„เบ›เบชเบนเปˆเบšเบฑเบ™เบซเบฒเปƒเบซเบเปˆเบเบงเปˆเบฒ. เบเบฒเบ™เบšเบฑเบ™เบฅเบธเบ‚เบญเบšเป€เบ‚เบ”เบˆเปเบฒเบเบฑเบ” CPU เบซเบกเบฒเบเป€เบ–เบดเบ‡เบเบฒเบ™เบ‚เป‰เบฒเบกเบฎเบญเบšเบงเบฝเบ™เป‚เบกเบ‡, เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเบเบฒเบ™เป€เบ–เบดเบ‡เบ‚เบตเบ”เบˆเปเบฒเบเบฑเบ”เบ‚เบญเบ‡เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบˆเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบเบตเบ”เบเบฒเบ™เบ‚เป‰เบฒเบเบฑเบ. เป€เบˆเบปเป‰เบฒเป€เบ„เบตเบเบชเบฑเบ‡เป€เบเบ”เบšเปเปˆ OOMkill? เปเบกเปˆเบ™เปเบฅเป‰เบง, เบ™เบฑเป‰เบ™เปเบกเปˆเบ™เบชเบดเปˆเบ‡เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเป€เบงเบปเป‰เบฒเบเปˆเบฝเบงเบเบฑเบš.

เบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เบซเบผเบธเบ”เบœเปˆเบญเบ™เบ„เบงเบฒเบกเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ‚เบญเบ‡เป€เบซเบ”เบเบฒเบ™เบ™เบตเป‰เบšเป? เบขเปˆเบฒเบˆเบฑเบ”เบชเบฑเบ™เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบซเบผเบฒเบเป€เบเบตเบ™เป„เบ›เปเบฅเบฐเบ™เปเบฒเปƒเบŠเป‰เบเบฒเบ™เบฎเบฑเบšเบ›เบฐเบเบฑเบ™ QoS (เบ„เบธเบ™เบ™เบฐเบžเบฒเบšเบ‚เบญเบ‡เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™) เป‚เบ”เบเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบ—เบตเปˆเบˆเปเบฒเบเบฑเบ” (เปƒเบ™เบ•เบปเบงเบขเปˆเบฒเบ‡เบ‚เป‰เบฒเบ‡เบฅเบธเปˆเบกเบ™เบตเป‰). เบญเปˆเบฒเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบเปˆเบฝเบงเบเบฑเบšเป€เบฅเบทเปˆเบญเบ‡เบ™เบตเป‰เปƒเบ™ เบเบฒเบ™เบ™เบณเบชเบฐเป€เปœเบตเบ‚เบญเบ‡ Henning Jacobs (เบซเบปเบงเบซเบ™เป‰เบฒเบงเบดเบชเบฐเบงเบฐเบเบญเบ™เบขเบนเปˆ Zalando).

เบฅเบฐเป€เบšเบตเบ”เป„เบ”เป‰ (เป‚เบญเบเบฒเบ”เบชเบนเบ‡เบ—เบตเปˆเบˆเบฐเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบ‚เป‰เบฒ OOM):

   resources:
      requests:
        memory: "128Mi"
        cpu: "500m"
      limits:
        memory: "256Mi"
        cpu: 2

เบฎเบฑเบšเบ›เบฐเบเบฑเบ™:

   resources:
      requests:
        memory: "128Mi"
        cpu: 2
      limits:
        memory: "128Mi"
        cpu: 2

เบชเบดเปˆเบ‡เบ—เบตเปˆเบญเบฒเบ”เบˆเบฐเบŠเปˆเบงเบเป„เบ”เป‰เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบเบฒเบ™เบชเป‰เบฒเบ‡เบ•เบฑเป‰เบ‡เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™?

เบ”เป‰เบงเบเบ„เบงเบฒเบกเบŠเปˆเบงเบเป€เบซเบผเบทเบญเบ‚เบญเบ‡ metrics-เป€เบŠเบตเบšเป€เบงเบต เบ—เปˆเบฒเบ™โ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เป€เบšเบดเปˆเบ‡โ€‹เบเบฒเบ™โ€‹เบšเปโ€‹เบฅเบดโ€‹เป‚เบžเบโ€‹เบŠเบฑเบšโ€‹เบžเบฐโ€‹เบเบฒโ€‹เบเบญเบ™ CPU เปเบฅเบฐโ€‹เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบซเบ™เปˆเบงเบโ€‹เบ„เบงเบฒเบกโ€‹เบˆเปเบฒโ€‹เปƒเบ™โ€‹เบ›เบฑเบ”โ€‹เบˆเบธโ€‹เบšเบฑเบ™โ€‹เป‚เบ”เบ pods (เปเบฅเบฐโ€‹เบเบฒเบ™โ€‹เบšเบฑเบ™โ€‹เบˆเบธโ€‹เบขเบนเปˆโ€‹เปƒเบ™โ€‹เบžเบงเบโ€‹เป€เบ‚เบปเบฒโ€‹)โ€‹. เบชเปˆเบงเบ™เบซเบผเบฒเบเบญเบฒเบ”เบˆเบฐ, เบ—เปˆเบฒเบ™เบเปเบฒเบฅเบฑเบ‡เปƒเบŠเป‰เบกเบฑเบ™เปเบฅเป‰เบง. เบžเบฝเบ‡เปเบ•เปˆเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡เบ•เปเปˆเป„เบ›เบ™เบตเป‰:

kubectl top pods
kubectl top pods --containers
kubectl top nodes

เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เบžเบงเบเป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเบžเบฝเบ‡เปเบ•เปˆเบชเบฐเปเบ”เบ‡เปƒเบซเป‰เป€เบซเบฑเบ™เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เปƒเบ™เบ›เบฐเบˆเบธเบšเบฑเบ™. เบกเบฑเบ™เบชเบฒเบกเบฒเบ”เปƒเบซเป‰เบ—เปˆเบฒเบ™เบกเบตเบ„เบงเบฒเบกเบ„เบดเบ”เบ—เบตเปˆเบซเบเบฒเบšเบ„เบฒเบเบ‚เบญเบ‡เบ„เปเบฒเบชเบฑเปˆเบ‡เบ‚เบญเบ‡เบ‚เบฐเบซเบ™เบฒเบ”, เปเบ•เปˆเปƒเบ™เบ—เบตเปˆเบชเบธเบ”เบ—เปˆเบฒเบ™เบˆเบฐเบ•เป‰เบญเบ‡เบเบฒเบ™ เบ›เบฐเบซเบงเบฑเบ”เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ‚เบญเบ‡ metrics เปƒเบ™เป„เบฅเบเบฐเป€เบงเบฅเบฒ (เป€เบžเบทเปˆเบญเบ•เบญเบšเบ„เปเบฒเบ–เบฒเบกเป€เบŠเบฑเปˆเบ™: "เบเบฒเบ™เป‚เบซเบผเบ” CPU เบชเบนเบ‡เบชเบธเบ”เปเบกเปˆเบ™เบซเบเบฑเบ‡?", "เบเบฒเบ™เป‚เบซเบผเบ”เปƒเบ™เบ•เบญเบ™เป€เบŠเบปเป‰เบฒเบกเบทเป‰เบงเบฒเบ™เบ™เบตเป‰เปเบกเปˆเบ™เบซเบเบฑเบ‡?", เปเบฅเบฐเบญเบทเปˆเบ™เป†). เบชเปเบฒเบฅเบฑเบšเบ™เบตเป‰, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰ Prometheus, DataDog เปเบฅเบฐเป€เบ„เบทเปˆเบญเบ‡เบกเบทเบญเบทเปˆเบ™เป†. เบžเบงเบเป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเบžเบฝเบ‡เปเบ•เปˆเป„เบ”เป‰เบฎเบฑเบš metrics เบˆเบฒเบ metrics-server เปเบฅเบฐเป€เบเบฑเบšเบฎเบฑเบเบชเบฒเปƒเบซเป‰เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒ, เปเบฅเบฐเบœเบนเป‰เปƒเบŠเป‰เบชเบฒเบกเบฒเบ”เบชเบญเบšเบ–เบฒเบกเปเบฅเบฐเบงเบฒเบ‡เปเบœเบ™เปƒเบซเป‰เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเบ•เบฒเบกเบ„เบงเบฒเบกเป€เบซเบกเบฒเบฐเบชเบปเบก.

VerticalPodAutoscaler เบญเบฐเบ™เบธเบเบฒเบ” เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ” เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบ™เบตเป‰. เบกเบฑเบ™เบ•เบดเบ”เบ•เบฒเบกเบ›เบฐเบซเบงเบฑเบ”เบเบฒเบ™เปƒเบŠเป‰ CPU เปเบฅเบฐเบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเปเบฅเบฐเบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเปเบฅเบฐเบ‚เปเป‰เบˆเปเบฒเบเบฑเบ”เปƒเบซเบกเปˆเป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆเบ‚เปเป‰เบกเบนเบ™เบ™เบตเป‰.

เบเบฒเบ™เปƒเบŠเป‰เบžเบฐเบฅเบฑเบ‡เบ‡เบฒเบ™เบ„เบญเบกเบžเบดเบงเป€เบ•เบตเบขเปˆเบฒเบ‡เบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบšเปเปˆเปเบกเปˆเบ™เบงเบฝเบเบ—เบตเปˆเบ‡เปˆเบฒเบ. เบกเบฑเบ™เบ„เป‰เบฒเบเบ„เบทเบเบฑเบšเบเบฒเบ™เบซเบผเบตเป‰เบ™ Tetris เบ•เบฐเบซเบผเบญเบ”เป€เบงเบฅเบฒ. เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบเปเบฒเบฅเบฑเบ‡เบˆเปˆเบฒเบเป€เบ‡เบดเบ™เบซเบผเบฒเบเป€เบเบตเบ™เป„เบ›เบชเปเบฒเบฅเบฑเบšเบžเบฐเบฅเบฑเบ‡เบ‡เบฒเบ™เบ„เบญเบกเบžเบดเบงเป€เบ•เบตเป‰เบ—เบตเปˆเบกเบตเบเบฒเบ™เบšเปเบฅเบดเป‚เบžเบเบชเบฐเป€เบฅเปˆเบเบ•เปˆเปเบฒ (เป€เบงเบปเป‰เบฒเบงเปˆเบฒ ~ 10%), เบžเบงเบเป€เบฎเบปเบฒเปเบ™เบฐเบ™เปเบฒเปƒเบซเป‰เป€เบšเบดเปˆเบ‡เบœเบฐเบฅเบดเบ”เบ•เบฐเบžเบฑเบ™เป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆ AWS Fargate เบซเบผเบท Virtual Kubelet. เบžเบงเบเบกเบฑเบ™เบ–เบทเบเบชเป‰เบฒเบ‡เบขเบนเปˆเปƒเบ™เบฎเบนเบšเปเบšเบšเบเบฒเบ™เป€เบญเบตเป‰เบ™เป€เบเบฑเบšเป€เบ‡เบดเบ™เปเบšเบš serverless/pay-per-usage, เป€เบŠเบดเปˆเบ‡เบญเบฒเบ”เบˆเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰เบฅเบฒเบ„เบฒเบ–เบทเบเบเบงเปˆเบฒเปƒเบ™เป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เบ”เบฑเปˆเบ‡เบเปˆเบฒเบง.

2. เบกเบตเบŠเบตเบงเบดเบ”เปเบฅเบฐเบ„เบงเบฒเบกเบžเป‰เบญเบก probes

เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, เบเบฒเบ™เบเบงเบ”เบชเบญเบšเบŠเบตเบงเบดเบ” เปเบฅเบฐ เบ„เบงเบฒเบกเบžเป‰เบญเบกเบˆเบฐเบšเปเปˆเบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เปƒเบ™ Kubernetes. เปเบฅเบฐเบšเบฒเบ‡เบ„เบฑเป‰เบ‡เบžเบงเบเป€เบ‚เบปเบฒเบฅเบทเบกเป€เบ›เบตเบ”เบžเบงเบเบกเบฑเบ™ ...

เปเบ•เปˆเปเบ™เบงเปƒเบ”เบญเบตเบเปเบ”เปˆเบ—เบตเปˆเบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบฅเบดเป€เบฅเบตเปˆเบกเบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เปƒเบซเบกเปˆเปƒเบ™เบเปเบฅเบฐเบ™เบตเบ—เบตเปˆเป€เบเบตเบ”เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบฎเป‰เบฒเบเปเบฎเบ‡? เปเบฅเบฐเบœเบนเป‰เบ”เบธเปˆเบ™เบ”เปˆเบฝเบ‡เบเบฒเบ™เป‚เบซเบผเบ”เบฎเบนเป‰เป„เบ”เป‰เปเบ™เบงเปƒเบ”เบงเปˆเบฒเบเบฑเบเปเบกเปˆเบ™เบžเป‰เบญเบกเบ—เบตเปˆเบˆเบฐเบเบญเบกเบฎเบฑเบšเบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™? เบซเบผเบทเบงเปˆเบฒเบกเบฑเบ™เบชเบฒเบกเบฒเบ”เบˆเบฑเบ”เบเบฒเบ™เบเบฑเบšเบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™เบซเบผเบฒเบ?

เบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบกเบฑเบเบˆเบฐเบชเบฑเบšเบชเบปเบ™เบเบฑเบšเบเบฑเบ™เปเบฅเบฐเบเบฑเบ™:

  • เบŠเบตเบงเบดเบ”เบเบฒเบ™เป€เบ›เบฑเบ™เบขเบนเปˆ โ€” เบเบฒเบ™เบเบงเบ”เบชเบญเบš โ€œเบ„เบงเบฒเบกเบขเบนเปˆเบฅเบญเบ”โ€, เป€เบŠเบดเปˆเบ‡เบˆเบฐเป€เบฅเบตเปˆเบกเบเบฑเบเบ„เบทเบ™เปƒเปเปˆ เบ–เป‰เบฒเบกเบฑเบ™เบฅเบปเป‰เบกเป€เบซเบฅเบง;
  • เบ„เบงเบฒเบกเบžเป‰เบญเบก โ€” เบเบฒเบ™โ€‹เบเบงเบ”โ€‹เบชเบญเบšโ€‹เบ„เบงเบฒเบกโ€‹เบžเป‰เบญเบกโ€‹, เบ–เป‰เบฒโ€‹เบซเบฒเบโ€‹เบงเปˆเบฒโ€‹เบกเบฑเบ™โ€‹เบšเปเปˆโ€‹เบชเปเบฒโ€‹เป€เบฅเบฑเบ”โ€‹, เบกเบฑเบ™โ€‹เบ•เบฑเบ”โ€‹เบเบฒเบ™โ€‹เป€เบŠเบทเปˆเบญเบกโ€‹เบ•เปเปˆ pod เบˆเบฒเบโ€‹เบเบฒเบ™โ€‹เบšเปโ€‹เบฅเบดโ€‹เบเบฒเบ™ Kubernetes (เบญเบฑเบ™โ€‹เบ™เบตเป‰โ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เบเบงเบ”โ€‹เบชเบญเบšโ€‹เป„เบ”เป‰โ€‹เป‚เบ”เบโ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰ kubectl get endpoints) เปเบฅเบฐเบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™เบšเปเปˆเป„เบ”เป‰เบกเบฒเบฎเบญเบ”เบกเบฑเบ™เบˆเบปเบ™เบเปˆเบงเบฒเบเบฒเบ™เบเบงเบ”เบชเบญเบšเบ•เปเปˆเป„เบ›เบˆเบฐเบชเปเบฒเป€เบฅเบฑเบ”เบขเปˆเบฒเบ‡เบชเปเบฒเป€เบฅเบฑเบ”เบœเบปเบ™.

เบ—เบฑเบ‡เบชเบญเบ‡เบเบฒเบ™เบเบงเบ”เบชเบญเบšเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰ เบ›เบฐเบ•เบดเบšเบฑเบ”เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบงเบปเบ‡เบˆเบญเบ™เบŠเบตเบงเบดเบ”เบ—เบฑเบ‡เบซเบกเบปเบ”เบ‚เบญเบ‡ POD. เบกเบฑเบ™เป€เบ›เบฑเบ™เบชเบดเปˆเบ‡เบชเปเบฒเบ„เบฑเบ™เบซเบผเบฒเบ.

เบ„เบงเบฒเบกเป€เบ‚เบปเป‰เบฒเปƒเบˆเบœเบดเบ”เบ—เบปเปˆเบงเป„เบ›เปเบกเปˆเบ™เบงเปˆเบฒเบเบฒเบ™เบชเบทเบšเบชเบงเบ™เบเบฒเบ™เบเบฝเบกเบžเป‰เบญเบกเปเบกเปˆเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบžเบฝเบ‡เปเบ•เปˆเปƒเบ™เบ•เบญเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบžเบทเปˆเบญเปƒเบซเป‰เบœเบนเป‰เบ”เบธเปˆเบ™เบ”เปˆเบฝเบ‡เบชเบฒเบกเบฒเบ”เบฎเบนเป‰เบงเปˆเบฒเบเบฑเบเปเบกเปˆเบ™เบเบฝเบกเบžเป‰เบญเบก (Ready) เปเบฅเบฐเบชเบฒเบกเบฒเบ”เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบเบฒเบ™เบ›เบธเบ‡เปเบ•เปˆเบ‡เบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™. เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เบ™เบตเป‰เปเบกเปˆเบ™เบžเบฝเบ‡เปเบ•เปˆเบซเบ™เบถเปˆเบ‡เปƒเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ‚เบญเบ‡เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒ.

เบญเบตเบเบ›เบฐเบเบฒเบ™เบซเบ™เบถเปˆเบ‡เปเบกเปˆเบ™เบ„เบงเบฒเบกเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ‚เบญเบ‡เบเบฒเบ™เบ„เบปเป‰เบ™เบซเบฒเบงเปˆเบฒเบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™เปƒเบ™เบเบฑเบเปเบกเปˆเบ™เบซเบผเบฒเบเป€เบเบตเบ™เป„เบ›เปเบฅเบฐ overloads เบกเบฑเบ™ (เบซเบผเบทเบเบฑเบเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆเบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบซเบผเบฒเบ). เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ™เบตเป‰, เบเบฒเบ™เบเบงเบ”เบชเบญเบšเบ„เบงเบฒเบกเบžเป‰เบญเบกเบŠเปˆเบงเบ เบซเบผเบธเบ”เบœเปˆเบญเบ™เบเบฒเบ™เป‚เบซเบผเบ”เบขเบนเปˆเปƒเบ™เบเบฑเบเปเบฅเบฐ "เป€เบขเบฑเบ™" เบกเบฑเบ™. เบเบฒเบ™เบชเปเบฒเป€เบฅเบฑเบ”เบเบฒเบ™เบเบงเบ”เบชเบญเบšเบ„เบงเบฒเบกเบžเป‰เบญเบกเปƒเบ™เบญเบฐเบ™เบฒเบ„เบปเบ”เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบชเปเบฒเป€เบฅเบฑเบ” เป€เบžเบตเปˆเบกเบเบฒเบ™เป‚เบซเบผเบ”เปƒเบ™เบเบฑเบเบญเบตเบเป€เบ—เบทเปˆเบญเบซเบ™เบถเปˆเบ‡. เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ™เบตเป‰ (เบ–เป‰เบฒเบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบ„เบงเบฒเบกเบžเป‰เบญเบกเบฅเบปเป‰เบกเป€เบซเบฅเบง), เบ„เบงเบฒเบกเบฅเบปเป‰เบกเป€เบซเบผเบงเบ‚เบญเบ‡เบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบŠเบตเบงเบดเบ”เบˆเบฐเบเบปเบ‡เบเบฑเบ™เบ‚เป‰เบฒเบกเบซเบผเบฒเบ. เป€เบ›เบฑเบ™เบซเบเบฑเบ‡เบฃเบตเบชเบฐเบ•เบฒเบ”เบเบฑเบเบ—เบตเปˆเบกเบตเบชเบธเบ‚เบฐเบžเบฒเบšเบ”เบต เปเบฅเบฐเป€เบฎเบฑเบ”เบงเบฝเบเปœเบฑเบ?

เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เปƒเบ™เบšเบฒเบ‡เบเปเบฅเบฐเบ™เบต, เบšเปเปˆเบกเบตเบเบฒเบ™เบเบงเบ”เบชเบญเบšเปƒเบ”เป†เปเบกเปˆเบ™เบ”เบตเบเปˆเบงเบฒเบเบฒเบ™เป€เบฎเบฑเบ”เปƒเบซเป‰เบžเบงเบเบกเบฑเบ™เบกเบตเบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเบ—เบตเปˆเบ–เบทเบเบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡. เบ”เบฑเปˆเบ‡เบ—เบตเปˆเป„เบ”เป‰เบเปˆเบฒเบงเบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡, เบ–เป‰เบฒ เบเบฒเบ™เบเบงเบ”เบชเบญเบšเบเบฒเบ™เบกเบตเบŠเบตเบงเบดเบ” เบชเปเบฒเป€เบ™เบปเบฒเบเบฒเบ™เบเบงเบ”เบชเบญเบšเบ„เบงเบฒเบกเบžเป‰เบญเบก, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบ—เปˆเบฒเบ™เบขเบนเปˆเปƒเบ™เบšเบฑเบ™เบซเบฒเปƒเบซเบเปˆ. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เปเบกเปˆเบ™เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ เบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบ„เบงเบฒเบกเบžเป‰เบญเบกเป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™เปเบฅเบฐ เบŠเบตโ€‹เบงเบดเบ”โ€‹เบญเบฑเบ™โ€‹เบ•เบฐโ€‹เบฅเบฒเบโ€‹ เบญเบญเบเป„เบ›.

เบ—เบฑเบ‡เบชเบญเบ‡เบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เบเบฒเบ™เบเบงเบ”เบชเบญเบšเบšเปเปˆเบ„เบงเบ™เบฅเบปเป‰เบกเป€เบซเบฅเบงเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบเบฒเบ™เป€เบžเบดเปˆเบ‡เบžเบฒเบญเบฒเป„เบชเบ—เบปเปˆเบงเป„เบ›เบฅเบปเป‰เบกเป€เบซเบฅเบง, เบ–เป‰เบฒเบšเปเปˆเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบ™เบตเป‰เบˆเบฐเบ™เปเบฒเป„เบ›เบชเบนเปˆเบ„เบงเบฒเบกเบฅเบปเป‰เบกเป€เบซเบผเบง (เบ„เป‰เบฒเบเบ„เบท avalanche) เบ‚เบญเบ‡เบเบฑเบเบ—เบฑเบ‡เบซเบกเบปเบ”. เปƒเบ™เบ„เปเบฒเบชเบฑเบšเบ•เปˆเบฒเบ‡เป†เบญเบทเปˆเบ™เป†, เบขเปˆเบฒเบ—เบณเบฎเป‰เบฒเบเบ•เบปเบงเป€เบญเบ‡.

3. LoadBalancer เบชเปเบฒเบฅเบฑเบšเปเบ•เปˆเบฅเบฐเบšเปเบฅเบดเบเบฒเบ™ HTTP

เบชเปˆเบงเบ™เบซเบผเบฒเบเบญเบฒเบ”เบˆเบฐ, เบ—เปˆเบฒเบ™เบกเบตเบšเปเบฅเบดเบเบฒเบ™ HTTP เบขเบนเปˆเปƒเบ™เบเบธเปˆเบกเบ‚เบญเบ‡เบ—เปˆเบฒเบ™เบ—เบตเปˆเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เบชเบปเปˆเบ‡เบ•เปเปˆเป„เบ›เบชเบนเปˆเป‚เบฅเบเบžเบฒเบเบ™เบญเบ.

เบ–เป‰เบฒเบ—เปˆเบฒเบ™เป€เบ›เบตเบ”เบšเปเบฅเบดเบเบฒเบ™เป€เบ›เบฑเบ™ type: LoadBalancer, เบ•เบปเบงเบ„เบงเบšเบ„เบธเบกเบ‚เบญเบ‡เบกเบฑเบ™ (เบ‚เบถเป‰เบ™เบเบฑเบšเบœเบนเป‰เปƒเบซเป‰เบšเปเบฅเบดเบเบฒเบ™) เบˆเบฐเบชเบฐเบซเบ™เบญเบ‡เปเบฅเบฐเป€เบˆเบฅเบฐเบˆเบฒเบเบฑเบš LoadBalancer เบžเบฒเบเบ™เบญเบ (เบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เปเบฅเปˆเบ™เบขเบนเปˆเปƒเบ™ L7, เปเบ•เปˆเปเบ—เบ™เบ—เบตเปˆเบˆเบฐเบขเบนเปˆเปƒเบ™ L4), เปเบฅเบฐเบ™เบตเป‰เบญเบฒเบ”เบˆเบฐเบชเบปเปˆเบ‡เบœเบปเบ™เบเบฐเบ—เบปเบšเบ•เปเปˆเบ„เปˆเบฒเปƒเบŠเป‰เบˆเปˆเบฒเบ (เบ—เบตเปˆเบขเบนเปˆ IPv4 เบ„เบปเบ‡เบ—เบตเปˆเบžเบฒเบเบ™เบญเบ, เบžเบฐเบฅเบฑเบ‡เบ‡เบฒเบ™เบ„เบญเบกเบžเบดเบงเป€เบ•เบตเป‰, เบเบฒเบ™เป€เบญเบตเป‰เบ™เป€เบเบฑเบšเป€เบ‡เบดเบ™เบ•เปเปˆเบงเบดเบ™เบฒเบ—เบต. ) เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบ„เบงเบฒเบกเบ•เป‰เบญเบ‡เบเบฒเบ™เบ—เบตเปˆเบˆเบฐเบชเป‰เบฒเบ‡เบˆเปเบฒเบ™เบงเบ™เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเบ‚เบญเบ‡เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบ”เบฑเปˆเบ‡เบเปˆเบฒเบง.

เปƒเบ™โ€‹เบเปโ€‹เบฅเบฐโ€‹เบ™เบตโ€‹เบ™เบตเป‰โ€‹, เบกเบฑเบ™โ€‹เป€เบ›เบฑเบ™โ€‹เบซเบผเบฒเบโ€‹เบกเบตโ€‹เป€เบซเบ”โ€‹เบœเบปเบ™โ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบเบฒเบ™โ€‹เบ”เบธเปˆเบ™โ€‹เบ”เปˆเบฝเบ‡โ€‹เบเบฒเบ™โ€‹เป‚เบซเบผเบ”โ€‹เบžเบฒเบโ€‹เบ™เบญเบโ€‹เบซเบ™เบถเปˆเบ‡โ€‹, เบเบฒเบ™โ€‹เป€เบ›เบตเบ”โ€‹เบเบฒเบ™โ€‹เบšเปโ€‹เบฅเบดโ€‹เบเบฒเบ™โ€‹เป€เบ›เบฑเบ™โ€‹ type: NodePort. เบซเบผเบทเบ”เบตเบเบงเปˆเบฒ, เบ‚เบฐเบซเบเบฒเบเบšเบฒเบ‡เบชเบดเปˆเบ‡เบšเบฒเบ‡เบขเปˆเบฒเบ‡เป€เบŠเบฑเปˆเบ™: nginx-ingress-controller (เบซเบผเบท traefik), เบœเบนเป‰เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™เบœเบนเป‰เบ”เบฝเบง NodePort เบˆเบธเบ”เบชเบดเป‰เบ™เบชเบธเบ”เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเบ•เบปเบงเบ”เบธเปˆเบ™เบ”เปˆเบฝเบ‡เบเบฒเบ™เป‚เบซเบผเบ”เบžเบฒเบเบ™เบญเบ เปเบฅเบฐเบˆเบฐเบชเบปเปˆเบ‡เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เปƒเบ™เบเบธเปˆเบกเป‚เบ”เบเปƒเบŠเป‰ เป€เบ„เบทเปˆเบญเบ‡เบ”เบทเปˆเบก- เบŠเบฑเบšโ€‹เบžเบฐโ€‹เบเบฒโ€‹เบเบญเบ™ Kubernetesโ€‹.

เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบžเบฒเบเปƒเบ™เบเบธเปˆเบก (เบˆเบธเบฅเบฐเบžเบฒเบ) เบญเบทเปˆเบ™เป†เบ—เบตเปˆเบžเบปเบงเบžเบฑเบ™เบเบฑเบšเบเบฑเบ™เปเบฅเบฐเบเบฑเบ™เบชเบฒเบกเบฒเบ” "เบชเบทเปˆเบชเบฒเบ™" เป‚เบ”เบเปƒเบŠเป‰เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เป€เบŠเบฑเปˆเบ™: ClusterIP เปเบฅเบฐเบเบปเบ™เป„เบเบเบฒเบ™เบ„เบปเป‰เบ™เบžเบปเบšเบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เบœเปˆเบฒเบ™ DNS. เบžเบฝเบ‡เปเบ•เปˆเบขเปˆเบฒเปƒเบŠเป‰ DNS/IP เบชเบฒเบ—เบฒเบฅเบฐเบ™เบฐเบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒ, เบเป‰เบญเบ™เบงเปˆเบฒเบกเบฑเบ™เบชเบฒเบกเบฒเบ”เบชเบปเปˆเบ‡เบœเบปเบ™เบเบฐเบ—เบปเบšเบ•เปเปˆเบเบฒเบ™ latency เปเบฅเบฐเป€เบžเบตเปˆเบกเบ„เปˆเบฒเปƒเบŠเป‰เบˆเปˆเบฒเบเบ‚เบญเบ‡เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบ„เบฅเบฒเบง.

4. Autoscaling a cluster เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบ„เปเบฒเบ™เบถเบ‡เป€เบ–เบดเบ‡เบ„เบธเบ™เบ™เบฐเบชเบปเบกเบšเบฑเบ”เบ‚เบญเบ‡เบ•เบปเบ™

เป€เบกเบทเปˆเบญเป€เบžเบตเปˆเบก nodes เปเบฅเบฐเป€เบญเบปเบฒเบžเบงเบเบกเบฑเบ™เบญเบญเบเบˆเบฒเบเบเบธเปˆเบก, เบ—เปˆเบฒเบ™เบšเปเปˆเบ„เบงเบ™เบญเบตเบ‡เปƒเบชเปˆเบšเบฒเบ‡เบ•เบปเบงเบŠเบตเป‰เบงเบฑเบ”เบžเบทเป‰เบ™เบ–เบฒเบ™เป€เบŠเบฑเปˆเบ™เบเบฒเบ™เปƒเบŠเป‰ CPU เปƒเบ™ nodes เป€เบซเบผเบปเปˆเบฒเบ™เบฑเป‰เบ™. เบเบฒเบ™เบงเบฒเบ‡เปเบœเบ™ Pod เบ•เป‰เบญเบ‡เบ„เปเบฒเบ™เบถเบ‡เป€เบ–เบดเบ‡เบˆเปเบฒเบ™เบงเบ™เบซเบผเบฒเบ เบ‚เปเป‰เบˆเบณเบเบฑเบ”, เป€เบŠเบฑเปˆเบ™: เบ„เบงเบฒเบกเปƒเบเป‰เบŠเบดเบ”เบ‚เบญเบ‡เบเบญเบ”/เป‚เบ™เบ”, เบ„เบงเบฒเบกเบšเปเปˆเบžเปเปƒเบˆ เปเบฅเบฐ เบ„เบงเบฒเบกเบ—เบปเบ™เบ—เบฒเบ™, เบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™, QoS, เปเบฅเบฐเบญเบทเปˆเบ™เป†. เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ autoscaler เบžเบฒเบเบ™เบญเบเบ—เบตเปˆเบšเปเปˆเป€เบญเบปเบฒ nuances เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบšเบฑเบ™เบŠเบตเบชเบฒเบกเบฒเบ”เบ™เปเบฒเป„เบ›เบชเบนเปˆเบšเบฑเบ™เบซเบฒ.

เบˆเบดเบ™เบ•เบฐเบ™เบฒเบเบฒเบ™เบงเปˆเบฒเบเบฑเบเบ—เบตเปˆเปเบ™เปˆเบ™เบญเบ™เบ„เบงเบ™เบˆเบฐเบ–เบทเบเบเปเบฒเบ™เบปเบ”, เปเบ•เปˆเบžเบฐเบฅเบฑเบ‡เบ‡เบฒเบ™ CPU เบ—เบตเปˆเบกเบตเบขเบนเปˆเบ—เบฑเบ‡เบซเบกเบปเบ”เปเบกเปˆเบ™เบฎเป‰เบญเบ‡เบ‚เป / disassembled เปเบฅเบฐ pod. เป„เบ”เป‰โ€‹เบฎเบฑเบš stuck เปƒเบ™โ€‹เบฅเบฑเบ”โ€‹ Pending. autoscaler เบžเบฒเบเบ™เบญเบเป€เบซเบฑเบ™เบเบฒเบ™เป‚เบซเบผเบ” CPU เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เป‚เบ”เบเบชเบฐเป€เบฅเปˆเบ (เบšเปเปˆเปเบกเปˆเบ™เบญเบฑเบ™เบ—เบตเปˆเบฎเป‰เบญเบ‡เบ‚เป) เปเบฅเบฐเบšเปเปˆเป„เบ”เป‰เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบ•เบปเบง (เบญเบญเบเบ‚เบฐเปœเบฒเบ”) - เบšเปเปˆเป€เบžเบตเปˆเบก node เบญเบทเปˆเบ™. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบเบฑเบเบ™เบตเป‰เบˆเบฐเบšเปเปˆเบ–เบทเบเบเปเบฒเบ™เบปเบ”.

เปƒเบ™โ€‹เบเปโ€‹เบฅเบฐโ€‹เบ™เบตโ€‹เบ™เบตเป‰โ€‹, reverse scaleโ€‹ (เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบ™) โ€” เบเบฒเบ™เบ–เบญเบ™ node เบญเบญเบเบˆเบฒเบเบเบธเปˆเบกเปเบกเปˆเบ™เบเบฒเบเบเบงเปˆเบฒเบ—เบตเปˆเบˆเบฐเบ›เบฐเบ•เบดเบšเบฑเบ”เบชเบฐเป€เปเบต. เบˆเบดเบ™เบ•เบฐเบ™เบฒเบเบฒเบ™เบงเปˆเบฒเบ—เปˆเบฒเบ™เบกเบตเบเบฑเบเบ—เบตเปˆเบกเบตเบชเบฐเบ–เบฒเบ™เบฐ (เบกเบตเบšเปˆเบญเบ™เป€เบเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบขเปˆเบฒเบ‡เบ•เปเปˆเป€เบ™เบทเปˆเบญเบ‡เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ). เบ›เบฐเบฅเบดเบกเบฒเบ™เบขเปˆเบฒเบ‡เบ•เปเปˆเป€เบ™เบทเปˆเบญเบ‡ เบ›เบปเบเบเบฐเบ•เบดเปเบฅเป‰เบงเป€เบ›เบฑเบ™เบ‚เบญเบ‡ เป€เบ‚เบ”เบเบฒเบ™เบกเบตเปƒเบซเป‰เบชเบฐเป€เบžเบฒเบฐ เปเบฅเบฐเบšเปเปˆเป„เบ”เป‰เบˆเปเบฒเบฅเบญเบ‡เบขเบนเปˆเปƒเบ™เบžเบฒเบเบžเบทเป‰เบ™. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบ–เป‰เบฒเบ•เบปเบงเบ‚เบฐเบซเบเบฒเบเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เบžเบฒเบเบ™เบญเบเบฅเบถเบšเป‚เบซเบ™เบ”เบ—เบตเปˆเบกเบตเบžเบญเบ”เบ™เบตเป‰, เบ•เบปเบงเบเปเบฒเบ™เบปเบ”เป€เบงเบฅเบฒเบˆเบฐเบšเปเปˆเบชเบฒเบกเบฒเบ”เบˆเบฑเบ”เบ•เบฒเบ•เบฐเบฅเบฒเบ‡ pod เบ™เบตเป‰เบขเบนเปˆเปƒเบ™ node เบญเบทเปˆเบ™เป„เบ”เป‰, เป€เบžเบฒเบฐเบงเปˆเบฒเบ™เบตเป‰เบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เป„เบ”เป‰เบžเบฝเบ‡เปเบ•เปˆเปƒเบ™เป€เบ‚เบ”เบเบฒเบ™เบกเบตเบขเบนเปˆเบšเปˆเบญเบ™เบ—เบตเปˆเบšเปˆเบญเบ™เป€เบเบฑเบšเบกเป‰เบฝเบ™เบ„เบปเบ‡เบขเบนเปˆ. Pod เบˆเบฐเบ•เบดเบ”เบขเบนเปˆเปƒเบ™เบชเบฐเบ–เบฒเบ™เบฐ Pending.

เป€เบ›เบฑเบ™เบ—เบตเปˆเบ™เบดเบเบปเบกเบซเบผเบฒเบเปƒเบ™เบŠเบธเบกเบŠเบปเบ™ Kubernetes cluster-autoscaler. เบกเบฑเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบขเบนเปˆเปƒเบ™เบเบธเปˆเบก, เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ APIs เบˆเบฒเบเบœเบนเป‰เปƒเบซเป‰เบšเปเบฅเบดเบเบฒเบ™เบŸเบฑเบ‡เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™, เบ„เปเบฒเบ™เบถเบ‡เป€เบ–เบดเบ‡เบ‚เปเป‰เบˆเปเบฒเบเบฑเบ”เบ—เบฑเบ‡เบซเบกเบปเบ”เปเบฅเบฐเบชเบฒเบกเบฒเบ”เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡. เบกเบฑเบ™เบเบฑเบ‡เบชเบฒเบกเบฒเบ”เบ‚เบฐเบซเบเบฒเบเป„เบ”เป‰เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเบฎเบฑเบเบชเบฒเบ‚เบญเบšเป€เบ‚เบ”เบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เป„เบงเป‰เบ—เบฑเบ‡เบซเบกเบปเบ”, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบเบฒเบ™เบ›เบฐเบซเบเบฑเบ”เป€เบ‡เบดเบ™ (เป€เบŠเบดเปˆเบ‡เบ–เป‰เบฒเบšเปเปˆเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบˆเบฐเบ–เบทเบเปƒเบŠเป‰เบเบฑเบšเบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เปƒเบŠเป‰).

5. เบเบฒเบ™เบฅเบฐเป€เบฅเบตเบเบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ” IAM/RBAC

เบฅเบฐเบงเบฑเบ‡เบเบฒเบ™เปƒเบŠเป‰เบœเบนเป‰เปƒเบŠเป‰ IAM เบ—เบตเปˆเบกเบตเบ„เบงเบฒเบกเบฅเบฑเบšเบขเปˆเบฒเบ‡เบ•เปเปˆเป€เบ™เบทเปˆเบญเบ‡เบชเปเบฒเบฅเบฑเบš เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบเปเบฅเบฐเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ. เบˆเบฑเบ”เบฅเบฐเบšเบฝเบšเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบŠเบปเปˆเบงเบ„เบฒเบงเป‚เบ”เบเบ™เปเบฒเปƒเบŠเป‰เบžเบฒเบฅเบฐเบšเบปเบ”เบšเบฒเบ”เปเบฅเบฐเบšเบฑเบ™เบŠเบตเบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™ (เบšเบฑเบ™เบŠเบตเบšเปเบฅเบดเบเบฒเบ™).

เบžเบงเบเป€เบฎเบปเบฒเบกเบฑเบเบˆเบฐเบžเบปเบšเบเบฑเบšเบ„เบงเบฒเบกเบˆเบดเบ‡เบ—เบตเปˆเบงเปˆเบฒเบเบฐเปเบˆเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡ (เปเบฅเบฐเบ„เบงเบฒเบกเบฅเบฑเบš) เปเบกเปˆเบ™ hardcoded เปƒเบ™เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™, เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบเบฒเบ™เบฅเบฐเป€เบฅเบตเบเบเบฒเบ™เบซเบกเบธเบ™เบ‚เบญเบ‡เบ„เบงเบฒเบกเบฅเบฑเบšเป€เบ–เบดเบ‡เบงเปˆเบฒเบˆเบฐเบกเบตเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡ Cloud IAM. เปƒเบŠเป‰เบšเบปเบ”เบšเบฒเบ” IAM เปเบฅเบฐเบšเบฑเบ™เบŠเบตเบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เปเบ—เบ™เบœเบนเป‰เปƒเบŠเป‰เบ•เบฒเบกเบ„เบงเบฒเบกเป€เปเบฒเบฐเบชเบปเบก.

10 เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบ—เบปเปˆเบงเป„เบ›เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเปƒเบŠเป‰ Kubernetes

เบฅเบทเบกเบเปˆเบฝเบงเบเบฑเบš kube2iam เปเบฅเบฐเป„เบ›เบเบปเบ‡เบเบฑเบšเบšเบปเบ”เบšเบฒเบ” IAM เบชเปเบฒเบฅเบฑเบšเบšเบฑเบ™เบŠเบตเบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™ (เบ•เบฒเบกเบ—เบตเปˆเบญเบฐเบ—เบดเบšเบฒเบเป„เบงเป‰เปƒเบ™ เบซเบกเบฒเบเป€เบซเบ”เบ‚เบญเบ‡เบŠเบทเปˆเบ”เบฝเบงเบเบฑเบ™ ล tฤ›pรกn Vranรฝ):

apiVersion: v1
kind: ServiceAccount
metadata:
  annotations:
    eks.amazonaws.com/role-arn: arn:aws:iam::123456789012:role/my-app-role
  name: my-serviceaccount
  namespace: default

เบซเบ™เบถเปˆเบ‡เบ„เปเบฒเบšเบฑเบ™เบเบฒเบ. เบšเปเปˆเบเบฒเบ, เปเบกเปˆเบ™เบšเป?

เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เบšเปเปˆเปƒเบซเป‰เบšเบฑเบ™เบŠเบตเบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™ เปเบฅเบฐเบชเบดเบ”เบ—เบดเป‚เบ›เบฃเป„เบŸเบฅเปŒเบ•เบปเบงเบขเปˆเบฒเบ‡ admin ะธ cluster-adminเบ–เป‰เบฒเบžเบงเบเป€เบ‚เบปเบฒเบšเปเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™. เบ™เบตเป‰เปเบกเปˆเบ™เบ„เบงเบฒเบกเบซเบเบธเป‰เบ‡เบเบฒเบเป€เบฅเบฑเบเบ™เป‰เบญเบเปƒเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”, เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐเปƒเบ™ RBAC K8s, เปเบ•เปˆเปเบ™เปˆเบ™เบญเบ™เบเปเปˆเบ„เบธเป‰เบกเบ„เปˆเบฒ.

6. เบขเปˆเบฒเบญเบตเบ‡เปƒเบชเปˆเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เบ•เป‰เบฒเบ™เบเบฒเบ™เป€เบ›เบฑเบ™เบžเบตเปˆเบ™เป‰เบญเบ‡เบเบฑเบ™เบชเปเบฒเบฅเบฑเบšเบเบฑเบ

เบˆเบดเบ™เบ•เบฐเบ™เบฒเบเบฒเบ™เบงเปˆเบฒเบ—เปˆเบฒเบ™เบกเบตเบชเบฒเบก replicas เบ‚เบญเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบšเบฒเบ‡เบขเบนเปˆเปƒเบ™ node. node เบ•เบปเบ, เปเบฅเบฐเบžเป‰เบญเบกเบเบฑเบšเบกเบฑเบ™ replicas เบ—เบฑเบ‡เบซเบกเบปเบ”. เบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™เบ—เบตเปˆเบšเปเปˆเบžเปเปƒเบˆ, เปเบกเปˆเบ™เบšเป? เปเบ•เปˆเป€เบ›เบฑเบ™เบซเบเบฑเบ‡เบเบฒเบ™เบˆเปเบฒเบฅเบญเบ‡เบ—เบฑเบ‡เบซเบกเบปเบ”เบขเบนเปˆเปƒเบ™ node เบ”เบฝเบงเบเบฑเบ™? Kubernetes เบ„เบงเบ™เบˆเบฐเปƒเบซเป‰เบ„เบงเบฒเบกเบžเป‰เบญเบก (HA) เบชเบนเบ‡เบšเป?!

เปเบ•เปˆเบซเบ™เป‰เบฒเป€เบชเบเบ”เบฒเบ, เบ•เบปเบงเบเปเบฒเบ™เบปเบ”เป€เบงเบฅเบฒ Kubernetes, เบ”เป‰เบงเบเบเบฒเบ™เบฅเบดเป€เบฅเบตเปˆเบกเบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡, เบšเปเปˆเบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบฒเบกเบเบปเบ”เบฅเบฐเบšเบฝเบšเบ‚เบญเบ‡เบเบฒเบ™เบกเบตเบขเบนเปˆเปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ. (เบ•เป‰เบฒเบ™เบ„เบงเบฒเบกเบชเบณเบžเบฑเบ™) เบชเปเบฒเบฅเบฑเบšเบเบฑเบ. เบžเบงเบโ€‹เป€เบ‚เบปเบฒโ€‹เป€เบˆเบปเป‰เบฒโ€‹เบ•เป‰เบญเบ‡โ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบเบฒเบ™โ€‹เบฅเบฐโ€‹เบšเบธโ€‹เบขเปˆเบฒเบ‡โ€‹เบŠเบฑเบ”โ€‹เป€เบˆเบ™โ€‹:

// ะพะฟัƒั‰ะตะฝะพ ะดะปั ะบั€ะฐั‚ะบะพัั‚ะธ
      labels:
        app: zk
// ะพะฟัƒั‰ะตะฝะพ ะดะปั ะบั€ะฐั‚ะบะพัั‚ะธ
      affinity:
        podAntiAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            - labelSelector:
                matchExpressions:
                  - key: "app"
                    operator: In
                    values:
                    - zk
              topologyKey: "kubernetes.io/hostname"

เบซเบกเบปเบ”โ€‹เป€เบ—เบปเปˆเบฒโ€‹เบ™เบตเป‰. เบ•เบญเบ™เบ™เบตเป‰เบเบฑเบเบˆเบฐเบ–เบทเบเบเปเบฒเบ™เบปเบ”เปƒเบซเป‰ nodes เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™ (เป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เบ™เบตเป‰เบ–เบทเบเบเบงเบ”เบชเบญเบšเบžเบฝเบ‡เปเบ•เปˆเปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบเปเบฒเบ™เบปเบ”เป€เบงเบฅเบฒ, เปเบ•เปˆเบšเปเปˆเปเบกเปˆเบ™เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒ - เป€เบžเบฒเบฐเบชเบฐเบ™เบฑเป‰เบ™. requiredDuringSchedulingIgnoredDuringExecution).

เบ™เบตเป‰เบžเบงเบเป€เบฎเบปเบฒเบเปเบฒเบฅเบฑเบ‡เป€เบงเบปเป‰เบฒเบเปˆเบฝเบงเบเบฑเบš podAntiAffinity เปƒเบ™ nodes เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™: topologyKey: "kubernetes.io/hostname", - เปเบฅเบฐเบšเปเปˆเบเปˆเบฝเบงเบเบฑเบšเป€เบ‚เบ”เบ„เบงเบฒเบกเบžเป‰เบญเบกเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™. เป€เบžเบทเปˆเบญเบ›เบฐเบ•เบดเบšเบฑเบ” HA เบขเปˆเบฒเบ‡เป€เบ•เบฑเบกเบ—เบตเปˆ, เบ—เปˆเบฒเบ™เบˆเบฐเบ•เป‰เบญเบ‡เบ‚เบธเบ”เป€เบฅเบดเบเป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบซเบปเบงเบ‚เปเป‰เบ™เบตเป‰.

7. เบเบฒเบ™เบฅเบฐเป€เบฅเบตเบ PodDisruptionBudgets

เบˆเบดเบ™เบ•เบฐเบ™เบฒเบเบฒเบ™เบงเปˆเบฒเบ—เปˆเบฒเบ™เบกเบตเบ›เบฐเบฅเบดเบกเบฒเบ™เบเบฒเบ™เบœเบฐเบฅเบดเบ”เบขเบนเปˆเปƒเบ™เบเบธเปˆเบก Kubernetes. เปเบ•เปˆเบฅเบฐเป„เบฅเบเบฐ, nodes เปเบฅเบฐ cluster เบ•เบปเบงเบ‚เบญเบ‡เบกเบฑเบ™เป€เบญเบ‡เบ•เป‰เบญเบ‡เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡ (เบซเบผเบท decommissioned). PodDisruptionBudget (PDB) เปเบกเปˆเบ™เบšเบฒเบ‡เบชเบดเปˆเบ‡เบšเบฒเบ‡เบขเปˆเบฒเบ‡เป€เบŠเบฑเปˆเบ™: เบ‚เปเป‰เบ•เบปเบเบฅเบปเบ‡เบเบฒเบ™เบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบœเบนเป‰เบšเปเบฅเบดเบซเบฒเบ™เบเบธเปˆเบก เปเบฅเบฐเบœเบนเป‰เปƒเบŠเป‰.

PDB เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ—เปˆเบฒเบ™เป€เบžเบทเปˆเบญเบซเบผเบตเบเป€เบงเบฑเป‰เบ™เบเบฒเบ™เบ‚เบฑเบ”เบ‚เบงเบฒเบ‡เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบ—เบตเปˆเป€เบเบตเบ”เบˆเบฒเบเบเบฒเบ™เบ‚เบฒเบ”เปเบ„เบ™:

apiVersion: policy/v1beta1
kind: PodDisruptionBudget
metadata:
  name: zk-pdb
spec:
  minAvailable: 2
  selector:
    matchLabels:
      app: zookeeper

เปƒเบ™เบ•เบปเบงเบขเปˆเบฒเบ‡เบ™เบตเป‰, เบ—เปˆเบฒเบ™, เปƒเบ™เบ–เบฒเบ™เบฐเบœเบนเป‰เปƒเบŠเป‰เบ‚เบญเบ‡เบเบธเปˆเบก, เบเปˆเบฒเบงเบ•เปเปˆเบœเบนเป‰เป€เบšเบดเปˆเบ‡เปเบเบ‡: "Hey, เบ‚เป‰เบญเบเบกเบตเบšเปเบฅเบดเบเบฒเบ™เบฎเบฑเบเบชเบฒเบชเบงเบ™เบชเบฑเบ”, เปเบฅเบฐเบšเปเปˆเบงเปˆเบฒเป€เบˆเบปเป‰เบฒเบˆเบฐเป€เบฎเบฑเบ”เบซเบเบฑเบ‡, เบ‚เป‰เบญเบเบ•เป‰เบญเบ‡เบเบฒเบ™เบขเปˆเบฒเบ‡เบซเบ™เป‰เบญเบ 2 เปเบšเบšเบˆเปเบฒเบฅเบญเบ‡เบ‚เบญเบ‡เบšเปเบฅเบดเบเบฒเบ™เบ™เบตเป‰เบขเบนเปˆเบ•เบฐเบซเบผเบญเบ”เป€เบงเบฅเบฒ. .โ€

เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบญเปˆเบฒเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบเปˆเบฝเบงเบเบฑเบšเป€เบฅเบทเปˆเบญเบ‡เบ™เบตเป‰ เบ—เบตเปˆเบ™เบตเป‰.

8. เบœเบนเป‰เปƒเบŠเป‰เบซเบผเบฒเบ เบซเบผเบทเบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเปƒเบ™เบเบธเปˆเบกเบ—เบปเปˆเบงเป„เบ›

เบžเบทเป‰เบ™เบ—เบตเปˆเบŠเบทเปˆ Kubernetes (namespaces) เบšเปเปˆเปƒเบซเป‰ insulation เบ—เบตเปˆเป€เบ‚เบฑเป‰เบกเปเบ‚เบ‡.

เบ„เบงเบฒเบกเป€เบ‚เบปเป‰เบฒเปƒเบˆเบœเบดเบ”เบ—เบปเปˆเบงเป„เบ›เปเบกเปˆเบ™เบงเปˆเบฒเบ–เป‰เบฒเบ—เปˆเบฒเบ™เปƒเบŠเป‰เบเบฒเบ™เป‚เบซเบผเบ”เบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™เบœเบฐเบฅเบดเบ”เบ•เบฐเบžเบฑเบ™เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™ namespace เบซเบ™เบถเปˆเบ‡เปเบฅเบฐเบเบฒเบ™เป‚เบซเบผเบ”เบœเบฐเบฅเบดเบ”เบ•เบฐเบžเบฑเบ™เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบšเปˆเบญเบ™เบญเบทเปˆเบ™, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบžเบงเบเบกเบฑเบ™. เบˆเบฐเบšเปเปˆเบกเบตเบญเบดเบ”เบ—เบดเบžเบปเบ™เป€เบŠเบดเปˆเบ‡เบเบฑเบ™เปเบฅเบฐเบเบฑเบ™เปƒเบ™เบ—เบฒเบ‡เปƒเบ”เบเปเปˆเบ•เบฒเบก... เปเบ™เบงเปƒเบ”เบเปเปˆเบ•เบฒเบก, เบฅเบฐเบ”เบฑเบšเบเบฒเบ™เป‚เบ”เบ”เบ”เปˆเบฝเบงเบชเบฒเบกเบฒเบ”เบšเบฑเบ™เบฅเบธเป„เบ”เป‰เป‚เบ”เบเปƒเบŠเป‰เบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™/เบ‚เปเป‰เบˆเบณเบเบฑเบ”, เบเบณเบ™เบปเบ”เป‚เบ„เบ•เป‰เบฒ, เปเบฅเบฐเบเบณเบ™เบปเบ”เบŠเบฑเป‰เบ™เบšเบธเบฅเบดเบกเบฐเบชเบดเบ”. เบเบฒเบ™เป‚เบ”เบ”เบ”เปˆเบฝเบง "เบ—เบฒเบ‡เบ”เป‰เบฒเบ™เบฎเปˆเบฒเบ‡เบเบฒเบ" เบšเบฒเบ‡เบขเปˆเบฒเบ‡เปƒเบ™เบเบปเบ™เบ‚เปเป‰เบกเบนเบ™เปเบกเปˆเบ™เบชเบฐเบซเบ™เบญเบ‡เปƒเบซเป‰เป‚เบ”เบเบ„เบงเบฒเบกเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡, เบ„เบงเบฒเบกเบ—เบปเบ™เบ—เบฒเบ™, taints (เบซเบผเบท nodeselectors), เปเบ•เปˆเบเบฒเบ™เปเบเบเบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเปเบกเปˆเบ™เบ‚เป‰เบญเบ™เบ‚เป‰เบฒเบ‡. เบเบฒเบ เบ›เบฐเบ•เบดเบšเบฑเบ”.

เบœเบนเป‰เบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เบฅเบงเบกเป€เบญเบปเบฒเบ—เบฑเบ‡เบชเบญเบ‡เบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เบงเบฝเบเบขเบนเปˆเปƒเบ™เบเบธเปˆเบกเบ”เบฝเบงเบเบฑเบ™เบˆเบฐเบ•เป‰เบญเบ‡เบˆเบฑเบ”เบเบฒเบ™เบเบฑเบšเบ„เบงเบฒเบกเบชเบฑเบšเบชเบปเบ™. เบ–เป‰เบฒเบšเปเปˆเบกเบตเบ„เบงเบฒเบกเบ•เป‰เบญเบ‡เบเบฒเบ™เบ”เบฑเปˆเบ‡เบเปˆเบฒเบง, เปเบฅเบฐเบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ—เบตเปˆเบˆเบฐเบกเบตเบซเบ™เบถเปˆเบ‡ เบญเบตเบเปœเบถเปˆเบ‡เบเบธเปˆเบก (เป€เบงเบปเป‰เบฒ, เปƒเบ™เบŸเบฑเบ‡เบชเบฒเบ—เบฒเบฅเบฐเบ™เบฐ), เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบกเบฑเบ™เบ”เบตเบเบงเปˆเบฒเบ—เบตเปˆเบˆเบฐเป€เบฎเบฑเบ”เปเบ™เบงเบ™เบฑเป‰เบ™. เบ™เบตเป‰เบˆเบฐเบšเบฑเบ™เบฅเบธเบฅเบฐเบ”เบฑเบšเบชเบนเบ‡เบซเบผเบฒเบเบ‚เบญเบ‡ insulation.

9. เบ™เบฐเป‚เบเบšเบฒเบเบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™เบžเบฒเบเบ™เบญเบ: เบเบธเปˆเบก

เป€เบฅเบทเป‰เบญเบเป†เบžเบงเบเป€เบฎเบปเบฒเป€เบซเบฑเบ™เบงเปˆเบฒเบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เบžเบฒเบเปƒเบ™เบเบธเปˆเบกเปเบกเปˆเบ™เบกเบฒเบˆเบฒเบเบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เป€เบŠเบฑเปˆเบ™ NodePort, เป€เบŠเบดเปˆเบ‡เบ™เบฐเป‚เบเบšเบฒเบเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™เบ–เบทเบเบเปเบฒเบ™เบปเบ”. externalTrafficPolicy: Cluster... เบกเบฑเบ™ เปเบฒเบ เบ„เบงเบฒเบกเบงเปˆเบฒ NodePort เป€เบ›เบตเบ”เบขเบนเปˆเปƒเบ™เบ—เบธเบ node เปƒเบ™ cluster, เปเบฅเบฐเบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰เปƒเบ”เป†เบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒเป€เบžเบทเปˆเบญเบžเบปเบงเบžเบฑเบ™เบเบฑเบšเบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™ (เบŠเบธเบ”เบ‚เบญเบ‡เบเบฑเบ).

10 เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบ—เบปเปˆเบงเป„เบ›เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเปƒเบŠเป‰ Kubernetes

เปƒเบ™เป€เบงเบฅเบฒเบ”เบฝเบงเบเบฑเบ™, เบเบฑเบเบ—เบตเปˆเปเบ—เป‰เบˆเบดเบ‡เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™ NodePort เบ—เบตเปˆเบเปˆเบฒเบงเบกเบฒเบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡เปเบกเปˆเบ™เบ›เบปเบเบเบฐเบ•เบดเปเบฅเป‰เบงเบกเบตเบขเบนเปˆเปƒเบ™เบชเบฐเป€เบžเบฒเบฐเปƒเบ”เบซเบ™เบถเปˆเบ‡. subset เบ‚เบญเบ‡ nodes เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰. เปƒเบ™เบ„เปเบฒเบชเบฑเบšเบ•เปˆเบฒเบ‡เป†เบญเบทเปˆเบ™เป†, เบ–เป‰เบฒเบ‚เป‰เบญเบเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบš node เบ—เบตเปˆเบšเปเปˆเบกเบต pod เบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™, เบกเบฑเบ™เบˆเบฐเบชเบปเปˆเบ‡เบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™เป„เบ›เบซเบฒ node เบญเบทเปˆเบ™, เป€เบžเบตเปˆเบก hop เป„เบ”เป‰ เปเบฅเบฐเบเบฒเบ™เบฅเปˆเบฒเบชเบฑเบ”เบ—เบตเปˆเป€เบžเบตเปˆเบกเบ‚เบถเป‰เบ™ (เบ–เป‰เบฒ nodes เบขเบนเปˆเปƒเบ™เป€เบ‚เบ”เบ„เบงเบฒเบกเบžเป‰เบญเบก / เบชเบนเบ™เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™, เป€เบงเบฅเบฒ latency เบชเบฒเบกเบฒเบ”เบ‚เป‰เบญเบ™เบ‚เป‰เบฒเบ‡เบชเบนเบ‡; เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เบ„เปˆเบฒเปƒเบŠเป‰เบˆเปˆเบฒเบเบ‚เบญเบ‡เบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™ egress เบˆเบฐเป€เบžเบตเปˆเบกเบ‚เบถเป‰เบ™).

เปƒเบ™เบ—เบฒเบ‡เบเบปเบ‡เบเบฑเบ™เบ‚เป‰เบฒเบก, เบ–เป‰เบฒเบšเปเบฅเบดเบเบฒเบ™ Kubernetes เบ—เบตเปˆเปเบ™เปˆเบ™เบญเบ™เบกเบตเบ™เบฐเป‚เบเบšเบฒเบเบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เป„เบงเป‰ externalTrafficPolicy: Local, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™ NodePort เป€เบ›เบตเบ”เบžเบฝเบ‡เปเบ•เปˆเบขเบนเปˆเปƒเบ™ nodes เบ—เบตเปˆ pods เบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เปเบกเปˆเบ™เบ•เบปเบงเบˆเบดเบ‡เปเบฅเป‰เบงเปเบฅเปˆเบ™. เป€เบกเบทเปˆเบญเปƒเบŠเป‰เบ•เบปเบงเบ”เบธเปˆเบ™เบ”เปˆเบฝเบ‡เบเบฒเบ™เป‚เบซเบผเบ”เบžเบฒเบเบ™เบญเบเบ—เบตเปˆเบเบงเบ”เบชเบญเบšเบชเบฐเบ–เบฒเบ™เบฐ (เบเบงเบ”โ€‹เบชเบธโ€‹เบ‚เบฐโ€‹เบžเบฒเบšโ€‹) เบˆเบธเบ”เบชเบดเป‰เบ™เบชเบธเบ” (เบกเบฑเบ™เป€เบฎเบฑเบ”เปเบ™เบงเปƒเบ” AWS ELB), เบฅเบฒเบง เบˆเบฐเบชเบปเปˆเบ‡เบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™เบžเบฝเบ‡เปเบ•เปˆเป„เบ›เบซเบฒเบ‚เปเป‰เบ—เบตเปˆเบˆเปเบฒเป€เบ›เบฑเบ™, เป€เบŠเบดเปˆเบ‡เบˆเบฐเบกเบตเบœเบปเบ™เบเบฐเบ—เบปเบšเบ—เบตเปˆเป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เบ•เปเปˆเบเบฒเบ™เบŠเบฑเบเบŠเป‰เบฒ, เบ„เบงเบฒเบกเบ•เป‰เบญเบ‡เบเบฒเบ™เบ„เบญเบกเบžเบดเบงเป€เบ•เบต, เปƒเบšเบšเบดเบ™เบ„เปˆเบฒ egress (เปเบฅเบฐเบ„เบงเบฒเบกเบฎเบนเป‰เบชเบถเบเบ—เบปเปˆเบงเป„เบ› dictates เบ”เบฝเบงเบเบฑเบ™).

เบกเบตเป‚เบญเบเบฒเบ”เบชเบนเบ‡เบ—เบตเปˆเบ—เปˆเบฒเบ™เบเปเบฒเบฅเบฑเบ‡เปƒเบŠเป‰เบšเบฒเบ‡เบชเบดเปˆเบ‡เบšเบฒเบ‡เบขเปˆเบฒเบ‡เป€เบŠเบฑเปˆเบ™: traefik เบซเบผเบท nginx-ingress-controller เป€เบ›เบฑเบ™เบˆเบธเบ”เบชเบดเป‰เบ™เบชเบธเบ”เบ‚เบญเบ‡ NodePort (เบซเบผเบท LoadBalancer, เป€เบŠเบดเปˆเบ‡เบเบฑเบ‡เปƒเบŠเป‰ NodePort) เป€เบžเบทเปˆเบญเบชเบปเปˆเบ‡เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡ HTTP ingress, เปเบฅเบฐเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบชเบฒเบกเบฒเบ”เบซเบผเบธเบ”เบœเปˆเบญเบ™เบ„เบงเบฒเบกเบฅเปˆเบฒเบŠเป‰เบฒเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบขเปˆเบฒเบ‡เบซเบผเบงเบ‡เบซเบผเบฒเบ.

ะ’ เบชเบดเปˆเบ‡เบžเบดเบกเบ™เบตเป‰ เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบฎเบฝเบ™เบฎเบนเป‰เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบเปˆเบฝเบงเบเบฑเบš เบ™เบฐเป‚เบเบšเบฒเบเบเบฒเบ™เบ„เป‰เบฒเบžเบฒเบเบ™เบญเบ, เบ‚เปเป‰เบ”เบต เปเบฅเบฐ เบ‚เปเป‰เป€เบชเบเบ‚เบญเบ‡เบกเบฑเบ™.

10. เบšเปเปˆโ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบเบฒเบ™โ€‹เบœเบนเบโ€‹เบกเบฑเบ”โ€‹เบเบฑเบšโ€‹เบเบธเปˆเบกโ€‹เปเบฅเบฐโ€‹เบšเปเปˆโ€‹เป„เบ”เป‰โ€‹เบฅเปˆเบงเบ‡โ€‹เบฅเบฐโ€‹เป€เบกเบตเบ”โ€‹เบเบปเบ™โ€‹เบ„เบงเบšโ€‹เบ„เบธเบกโ€‹

เบเปˆเบญเบ™เบซเบ™เป‰เบฒเบ™เบตเป‰, เบกเบฑเบ™เป€เบ›เบฑเบ™เบ›เบฐเป€เบžเบ™เบตเบ—เบตเปˆเบˆเบฐเป‚เบ—เบซเบฒเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเป‚เบ”เบเบŠเบทเปˆเบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบก: Anton, HAL9000 เปเบฅเบฐ Colossus ... เบกเบทเป‰เบ™เบตเป‰เบžเบงเบเบกเบฑเบ™เป„เบ”เป‰เบ–เบทเบเบ›เปˆเบฝเบ™เปเบ—เบ™เบ”เป‰เบงเบเบ•เบปเบงเบฅเบฐเบšเบธเบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เปเบšเบšเบชเบธเปˆเบก. เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เบ™เบดเป„เบชเบเบฑเบ‡เบ„เบปเบ‡เบขเบนเปˆ, เปเบฅเบฐเปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบŠเบทเปˆเบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบกเป„เบ›เป€เบ›เบฑเบ™เบเบธเปˆเบก.

เป€เบฅเบทเปˆเบญเบ‡เบ—เบปเปˆเบงเป„เบ› (เบญเบตเบ‡เปƒเบชเปˆเป€เบซเบ”เบเบฒเบ™เบ—เบตเปˆเปเบ—เป‰เบˆเบดเบ‡): เบกเบฑเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ”เป‰เบงเบเบซเบผเบฑเบเบ–เบฒเบ™เบชเบฐเปเบ”เบ‡เปเบ™เบงเบ„เบงเบฒเบกเบ„เบดเบ”, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบเบธเปˆเบกเบˆเบถเปˆเบ‡เบกเบตเบŠเบทเปˆเบ—เบตเปˆเบžเบนเบกเปƒเบˆ. เบเบฒเบ™โ€‹เบ—เบปเบ”โ€‹เบชเบญเบšโ€ฆ เบซเบฅเบฒเบเบ›เบตเบœเปˆเบฒเบ™เป„เบ› เปเบฅเบฐเบกเบฑเบ™เบเบฑเบ‡เบ–เบทเบเปƒเบŠเป‰เปƒเบ™เบเบฒเบ™เบœเบฐเบฅเบดเบ”, เปเบฅเบฐเบ—เบธเบเบ„เบปเบ™เบขเป‰เบฒเบ™เบ—เบตเปˆเบˆเบฐเปเบ•เบฐเบ•เป‰เบญเบ‡เบกเบฑเบ™.

เบšเปเปˆเบกเบตเบซเบเบฑเบ‡เบกเปˆเบงเบ™เบเปˆเบฝเบงเบเบฑเบšเบเบธเปˆเบกเบ—เบตเปˆเบ›เปˆเบฝเบ™เป€เบ›เบฑเบ™เบชเบฑเบ”เบฅเป‰เบฝเบ‡, เบชเบฐเบ™เบฑเป‰เบ™เบžเบงเบเป€เบฎเบปเบฒเบ‚เปเปเบ™เบฐเบ™เบณเปƒเบซเป‰เป€เบญเบปเบฒเบžเบงเบเบกเบฑเบ™เบญเบญเบเป€เบ›เบฑเบ™เป„เบฅเบเบฐเป†เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเบเบถเบเบŠเป‰เบญเบก. เบเบฒเบ™โ€‹เบŸเบทเป‰เบ™โ€‹เบŸเบนโ€‹เป„เบžโ€‹เบžเบดโ€‹เบšเบฑเบ” (เบญเบฑเบ™เบ™เบตเป‰เบˆเบฐเบŠเปˆเบงเบเป„เบ”เป‰ เบงเบดเบชเบฐเบงเบฐเบเปเบฒ chaos โ€” เบ›เบฐโ€‹เบกเบฒเบ™โ€‹. เปเบ›.). เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เบกเบฑเบ™เบˆเบฐเบšเปเปˆเป€เบˆเบฑเบšเบ›เบงเบ”เบ—เบตเปˆเบˆเบฐเป€เบฎเบฑเบ”เบงเบฝเบเปƒเบ™เบŠเบฑเป‰เบ™เบ„เบงเบšเบ„เบธเบก (เบเบปเบ™โ€‹เบ„เบงเบšโ€‹เบ„เบธเบกโ€‹). เบเบฒเบ™เบขเป‰เบฒเบ™เบ—เบตเปˆเบˆเบฐเปเบ•เบฐเบ•เป‰เบญเบ‡เบฅเบฒเบงเบšเปเปˆเปเบกเปˆเบ™เบชเบฑเบ™เบเบฒเบ™เบ—เบตเปˆเบ”เบต. เป€เบ›เบฑเบ™เบ•เบปเป‰เบ™. เบ•เบฒเบ? Guys, เป€เบˆเบปเป‰เบฒเบขเบนเปˆเปƒเบ™เบšเบฑเบ™เบซเบฒเปเบ—เป‰เป†!

เปƒเบ™เบญเบตเบเบ”เป‰เบฒเบ™เบซเบ™เบถเปˆเบ‡, เบ—เปˆเบฒเบ™เบšเปเปˆเบ„เบงเบ™เบˆเบฐเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบเบฑเบš manipulating เบกเบฑเบ™. เบ”เป‰เบงเบเป€เบงเบฅเบฒ เบŠเบฑเป‰เบ™เบ„เบงเบšเบ„เบธเบกเบญเบฒเบ”เบˆเบฐเบŠเป‰เบฒ. เบชเปˆเบงเบ™เบซเบผเบฒเบเบญเบฒเบ”เบˆเบฐ, เบ™เบตเป‰เปเบกเปˆเบ™เบเป‰เบญเบ™เบงเบฑเบ”เบ–เบธเบˆเปเบฒเบ™เบงเบ™เบซเบฅเบฒเบเบ—เบตเปˆเบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบทเป‰เบ™เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบซเบกเบธเบ™เบ‚เบญเบ‡เบกเบฑเบ™ (เบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™เบ—เบปเปˆเบงเป„เบ›เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเปƒเบŠเป‰ Helm เบเบฑเบšเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, เบŠเบถเปˆเบ‡เป€เบ›เบฑเบ™เป€เบซเบ”เบœเบปเบ™เบ—เบตเปˆเบงเปˆเบฒเบชเบฐเบ–เบฒเบ™เบฐเบ‚เบญเบ‡เบกเบฑเบ™เบขเบนเปˆเปƒเบ™ configmaps / เบ„เบงเบฒเบกเบฅเบฑเบšเบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบ›เบฑเบšเบ›เบธเบ‡ - เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบงเบฑเบ”เบ–เบธเบžเบฑเบ™เป†เบชเบฐเบชเบปเบกเบขเบนเปˆเปƒเบ™. เบŠเบฑเป‰เบ™เบ„เบงเบšเบ„เบธเบก) เบซเบผเบทเบ”เป‰เบงเบเบเบฒเบ™เปเบเป‰เป„เบ‚เบงเบฑเบ”เบ–เบธ kube-api เบ„เบปเบ‡เบ—เบตเปˆ (เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ›เบฑเบšเบ‚เบฐเบซเบ™เบฒเบ”เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”, เบชเปเบฒเบฅเบฑเบš CI/CD, เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบก, เบšเบฑเบ™เบ—เบถเบเป€เบซเบ”เบเบฒเบ™, เบเบฒเบ™เบ„เบงเบšเบ„เบธเบก, เปเบฅเบฐเบญเบทเปˆเบ™เป†).

เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เบžเบงเบเป€เบฎเบปเบฒเปเบ™เบฐเบ™เบณเปƒเบซเป‰เบเบงเบ”เป€เบšเบดเปˆเบ‡เบ‚เปเป‰เบ•เบปเบเบฅเบปเบ‡ SLA/SLO เบเบฑเบšเบœเบนเป‰เปƒเบซเป‰เบšเปเบฅเบดเบเบฒเบ™ Kubernetes เบ—เบตเปˆเบกเบตเบเบฒเบ™เบ„เบธเป‰เบกเบ„เบญเบ‡ เปเบฅเบฐเปƒเบซเป‰เบ„เบงเบฒเบกเบชเบปเบ™เปƒเบˆเบ•เปเปˆเบเบฒเบ™เบฎเบฑเบšเบ›เบฐเบเบฑเบ™. เบœเบนเป‰เบ‚เบฒเบเบชเบฒเบกเบฒเบ”เบฎเบฑเบšเบ›เบฐเบเบฑเบ™ เบ„เบงเบšเบ„เบธเบกเบ„เบงเบฒเบกเบžเป‰เบญเบกเบ‚เบญเบ‡เบŠเบฑเป‰เบ™เบ‚เปเป‰เบกเบนเบ™ (เบซเบผเบทเบญเบปเบ‡เบ›เบฐเบเบญเบšเบเปˆเบญเบเบ‚เบญเบ‡เบกเบฑเบ™), เปเบ•เปˆเบšเปเปˆเปเบกเปˆเบ™เบเบฒเบ™เบŠเบฑเบเบŠเป‰เบฒ p99 เบ‚เบญเบ‡เบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเบ—เบตเปˆเบ—เปˆเบฒเบ™เบชเบปเปˆเบ‡เป„เบ›เบซเบฒเบกเบฑเบ™. เปƒเบ™เบ„เปเบฒเบชเบฑเบšเบ•เปˆเบฒเบ‡เป†เบญเบทเปˆเบ™เป†, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™ kubectl get nodes, เปเบฅเบฐเป„เบ”เป‰เบฎเบฑเบšเบ„เปเบฒเบ•เบญเบšเบžเบฝเบ‡เปเบ•เปˆเบซเบผเบฑเบ‡เบˆเบฒเบ 10 เบ™เบฒเบ—เบต, เปเบฅเบฐเบ™เบตเป‰เบˆเบฐเบšเปเปˆเป€เบ›เบฑเบ™เบเบฒเบ™เบฅเบฐเป€เบกเบตเบ”เบ‚เปเป‰เบเปเบฒเบ™เบปเบ”เบ‚เบญเบ‡เบชเบฑเบ™เบเบฒเบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™.

11. เป‚เบšเบ™เบฑเบ”: เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เปเบ—เบฑเบเบซเบผเป‰เบฒเบชเบธเบ”

เปเบ•เปˆเบ™เบตเป‰เปเบกเปˆเบ™เปเบฅเป‰เบงเบ„เบฅเบฒเบชเบชเบดเบ. เบšเปเปˆเบ”เบปเบ™เบกเบฒเบ™เบตเป‰เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบžเบปเบšเป€เบ•เบฑเบเบ™เบดเบเบ™เบตเป‰เบซเบ™เป‰เบญเบเบฅเบปเบ‡เป€เบฅเบทเป‰เบญเบเป†, เบ™เบฑเบšเบ•เบฑเป‰เบ‡เปเบ•เปˆเบซเบผเบฒเบเป†เบ„เบปเบ™, เป„เบ”เป‰เบฎเบฝเบ™เบฎเบนเป‰เบˆเบฒเบเบ›เบฐเบชเบปเบšเบเบฒเบ™เบ—เบตเปˆเบ‚เบปเบกเบ‚เบทเปˆเบ™, เป„เบ”เป‰เบขเบธเบ”เป€เบŠเบปเบฒเบเบฒเบ™เปƒเบŠเป‰เปเบ—เบฑเบ :latest เปเบฅเบฐเป€เบฅเบตเปˆเบกเบเบฒเบ™เบ›เบฑเบเปเบธเบ”เบชเบฐเบšเบฑเบš. เป‚เบซเป‰เบ!

ECR เบฎเบฑเบเบชเบฒ immutability เบ‚เบญเบ‡ tags เบฎเบนเบšเบžเบฒเบš; เบžเบงเบเป€เบฎเบปเบฒเปเบ™เบฐเบ™เปเบฒเปƒเบซเป‰เบ—เปˆเบฒเบ™เบ„เบธเป‰เบ™เป€เบ„เบตเบเบเบฑเบšเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ—เบตเปˆเป‚เบ”เบ”เป€เบ”เบฑเปˆเบ™เบ™เบตเป‰.

Summary

เบขเปˆเบฒเบ„เบฒเบ”เบซเบงเบฑเบ‡เบงเปˆเบฒเบ—เบธเบเบขเปˆเบฒเบ‡เบˆเบฐเป€เบฎเบฑเบ”เบงเบฝเบเบ‚เป‰เบฒเบกเบ„เบทเบ™: Kubernetes เบšเปเปˆเปเบกเปˆเบ™เบขเบฒ panacea. เปเบญเบฑเบšเบ—เบตเปˆเบšเปเปˆเบ”เบต เบˆเบฐเบเบฑเบ‡เบ„เบปเบ‡เป€เบ›เบฑเบ™เปเบšเบšเบ™เบตเป‰เปเบกเป‰เปเบ•เปˆเบขเบนเปˆเปƒเบ™ Kubernetes (เปเบฅเบฐเบกเบฑเบ™เบญเบฒเบ”เบˆเบฐเบฎเป‰เบฒเบเปเบฎเบ‡เบ‚เบถเป‰เบ™). เบ„เบงเบฒเบกเบšเปเปˆเบฅเบฐเบกเบฑเบ”เบฅเบฐเบงเบฑเบ‡เบˆเบฐเบ™เปเบฒเป„เบ›เบชเบนเปˆเบ„เบงเบฒเบกเบชเบฑเบšเบชเบปเบ™เบซเบผเบฒเบเป€เบเบตเบ™เป„เบ›, เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบŠเป‰เบฒเปเบฅเบฐเบ„เบงเบฒเบกเบเบปเบ”เบ”เบฑเบ™เบ‚เบญเบ‡เบŠเบฑเป‰เบ™เบ„เบงเบšเบ„เบธเบก. เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เบ—เปˆเบฒเบ™เบกเบตเบ„เบงเบฒเบกเบชเปˆเบฝเบ‡เบ–เบทเบเบ›เบฐเป„เบงเป‰เป‚เบ”เบเบšเปเปˆเบกเบตเบเบธเบ”เบ—เบฐเบชเบฒเบ”เบเบฒเบ™เบŸเบทเป‰เบ™เบŸเบนเป„เบžเบžเบดเบšเบฑเบ”. เบขเปˆเบฒเบ„เบฒเบ”เบซเบงเบฑเบ‡เบงเปˆเบฒ Kubernetes เบˆเบฐเปƒเบซเป‰เบ„เบงเบฒเบกเป‚เบ”เบ”เบ”เปˆเบฝเบงเปเบฅเบฐเบ„เบงเบฒเบกเบžเป‰เบญเบกเบชเบนเบ‡เบญเบญเบเบˆเบฒเบเบเปˆเบญเบ‡. เปƒเบŠเป‰โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เบšเบฒเบ‡โ€‹เบชเปˆเบงเบ™โ€‹เป€เบžเบทเปˆเบญโ€‹เป€เบฎเบฑเบ”โ€‹เปƒเบซเป‰โ€‹เบ„เปเบฒโ€‹เบฎเป‰เบญเบ‡โ€‹เบชเบฐโ€‹เบซเบกเบฑเบโ€‹เบ‚เบญเบ‡โ€‹เบ—เปˆเบฒเบ™โ€‹เป€เบ›เบฑเบ™โ€‹เบžเบทเป‰เบ™โ€‹เป€เบกเบทเบญเบ‡โ€‹เบ‚เบญเบ‡โ€‹เบ„โ€‹เบฅเบฒเบงโ€‹เปเบ—เป‰โ€‹เบˆเบดเบ‡โ€‹.

เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบฎเบนเป‰เบˆเบฑเบเบเบฑเบšเบ›เบฐเบชเบปเบšเบเบฒเบ™เบ—เบตเปˆเบšเปเปˆเบ›เบฐเบชเบปเบšเบœเบปเบ™เบชเปเบฒเป€เบฅเบฑเบ”เบ‚เบญเบ‡เบ—เบตเบกเบ‡เบฒเบ™เบ•เปˆเบฒเบ‡เป†เปƒเบ™ เบเบฒเบ™โ€‹เป€เบเบฑเบšโ€‹เบเปเบฒโ€‹เป€เบฅเบทเปˆเบญเบ‡โ€‹เบ™เบตเป‰โ€‹ เป‚เบ”เบ Henning Jacobs.

เบœเบนเป‰โ€‹เบ—เบตเปˆโ€‹เบ•เป‰เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹เป€เบžเบตเปˆเบกโ€‹เบšเบฑเบ™โ€‹เบŠเบตโ€‹เบฅเบฒเบโ€‹เบเบฒเบ™โ€‹เบ‚เบญเบ‡โ€‹เบ„เบงเบฒเบกโ€‹เบœเบดเบ”โ€‹เบžเบฒเบ”โ€‹เบ—เบตเปˆโ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เปƒเบ™โ€‹เบšเบปเบ”โ€‹เบ„เบงเบฒเบกโ€‹เบ™เบตเป‰โ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เบ•เบดเบ”โ€‹เบ•เปเปˆโ€‹เบซเบฒโ€‹เบžเบงเบโ€‹เป€เบฎเบปเบฒโ€‹เบเปˆเบฝเบงโ€‹เบเบฑเบš Twitter (@MarekBartik, @MstrsObserver).

PS เบˆเบฒเบเบ™เบฑเบเปเบ›

เบญเปˆเบฒเบ™เบเบฑเบ‡เบขเบนเปˆเปƒเบ™ blog เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ:

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: www.habr.com

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™