เบเบฑเบšเป„เบ›เบซเบฒเบšเปเบฅเบดเบเบฒเบ™เบˆเบธเบฅเบฐเบžเบฒเบเบเบฑเบš Istio. เบžเบฒเบเบ—เบต 1

เบเบฑเบšเป„เบ›เบซเบฒเบšเปเบฅเบดเบเบฒเบ™เบˆเบธเบฅเบฐเบžเบฒเบเบเบฑเบš Istio. เบžเบฒเบเบ—เบต 1

เบซเบกเบฒเบโ€‹เป€เบซเบ”โ€‹. เปเบ›.: เบ•เบฒเบซเบ™เปˆเบฒเบ‡เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เป„เบ”เป‰เบเบฒเบเป€เบ›เบฑเบ™เบเบฒเบ™เปเบเป‰เป„เบ‚เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เปƒเบ™เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบžเบทเป‰เบ™เบ–เบฒเบ™เบ—เบตเปˆเบ—เบฑเบ™เบชเบฐเป„เบซเบกเบชเปเบฒเบฅเบฑเบšเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ—เบตเปˆเบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบฒเบกเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเบˆเบธเบฅเบฐเบžเบฒเบ. เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆ Istio เบญเบฒเบ”เบˆเบฐเบขเบนเปˆเปƒเบ™เบ›เบฒเบเบ‚เบญเบ‡เบ™เบฑเบเบงเบดเบชเบฐเบงเบฐเบเบญเบ™ DevOps เบซเบผเบฒเบเบ„เบปเบ™, เบกเบฑเบ™เป€เบ›เบฑเบ™เบœเบฐเบฅเบดเบ”เบ•เบฐเบžเบฑเบ™เปƒเบซเบกเปˆเบ—เบตเปˆเบ‚เป‰เบญเบ™เบ‚เป‰เบฒเบ‡เบ—เบตเปˆ, เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเบกเบตเบ„เบงเบฒเบกเบชเบปเบกเบšเบนเบ™เปเบšเบšเบเปˆเบฝเบงเบเบฑเบšเบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เบ—เบตเปˆเบกเบฑเบ™เบชเบฐเบซเบ™เบญเบ‡, เบญเบฒเบ”เบˆเบฐเบ•เป‰เบญเบ‡เปƒเบŠเป‰เป€เบงเบฅเบฒเบซเบผเบฒเบเป€เบžเบทเปˆเบญเปƒเบซเป‰เบ„เบธเป‰เบ™เป€เบ„เบตเบเบเบฑเบš. เบงเบดเบชเบฐเบงเบฐเบเบญเบ™เป€เบเบเบฅเบฐเบกเบฑเบ™ Rinor Maloku, เบœเบนเป‰เบ—เบตเปˆเบฎเบฑเบšเบœเบดเบ”เบŠเบญเบšเบ„เบญเบกเบžเบดเบงเป€เบ•เบตเป‰เบŸเบฑเบ‡เบชเปเบฒเบฅเบฑเบšเบฅเบนเบเบ„เป‰เบฒเบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเบ‚เบญเบ‡เบšเปเบฅเบดเบชเบฑเบ”เป‚เบ—เบฅเบฐเบ„เบปเบก Orange Networks, เป„เบ”เป‰เบ‚เบฝเบ™เบŠเบธเบ”เบญเบธเบ›เบฐเบเบญเบ™เบ—เบตเปˆเบ”เบตเป€เบฅเบตเบ”เบ—เบตเปˆเบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™ Istio เป„เบ”เป‰เป„เบงเปเบฅเบฐเป€เบฅเบดเบเป€เบŠเบดเปˆเบ‡. เบฅเบฒเบงเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบฅเบทเปˆเบญเบ‡เบฅเบฒเบงเบเบฑเบšเบชเบดเปˆเบ‡เบ—เบตเปˆ Istio เบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เป„เบ”เป‰เป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›เปเบฅเบฐเบงเบดเบ—เบตเบ—เบตเปˆเป€เบˆเบปเป‰เบฒเบชเบฒเบกเบฒเบ”เป€เบซเบฑเบ™เป„เบ”เป‰เบขเปˆเบฒเบ‡เป„เบงเบงเบฒเบ”เป‰เบงเบเบ•เบฒเบ‚เบญเบ‡เป€เบˆเบปเป‰เบฒเป€เบญเบ‡.

เบญเบดเบŠเบดเป‚เบญ โ€” เป‚เบ„เบ‡เบเบฒเบ™ Open Source เบžเบฑเบ”เบ—เบฐเบ™เบฒเป‚เบ”เบเบเบฒเบ™เบฎเปˆเบงเบกเบกเบทเบเบฑเบšเบ—เบตเบกเบ‡เบฒเบ™เบˆเบฒเบ Google, IBM เปเบฅเบฐ Lyft. เบกเบฑเบ™เปเบเป‰เป„เบ‚เบ„เบงเบฒเบกเบชเบฑเบšเบชเบปเบ™เบ—เบตเปˆเป€เบเบตเบ”เบ‚เบทเป‰เบ™เปƒเบ™เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ—เบตเปˆเบญเบตเบ‡เปƒเบชเปˆ microservices, เป€เบŠเบฑเปˆเบ™:

  • เบเบฒเบ™เบ„เบธเป‰เบกเบ„เบญเบ‡เบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™: timeouts, retries, load balancing;
  • เบ„เบงเบฒเบกเบ›เบญเบ”เป„เบž: เบเบฒเบ™เบเบงเบ”เบชเบญเบšเบœเบนเป‰เปƒเบŠเป‰เบชเบธเบ”เบ—เป‰เบฒเบเปเบฅเบฐเบเบฒเบ™เบญเบฐเบ™เบธเบเบฒเบ”;
  • เบเบฒเบ™เบชเบฑเบ‡เป€เบเบ”เบเบฒเบ™: เบ•เบดเบ”เบ•เบฒเบก, เบ•เบดเบ”เบ•เบฒเบก, เบšเบฑเบ™เบ—เบถเบ.

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

เบœเบนเป‰เบˆเบฑเบ”เบเบฒเบ™เป‚เบ„เบ‡เบเบฒเบ™: เบกเบฑเบ™เปƒเบŠเป‰เป€เบงเบฅเบฒเบ”เบปเบ™เบ›เบฒเบ™เปƒเบ”เป€เบžเบทเปˆเบญเป€เบžเบตเปˆเบกเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ„เปเบฒเบ„เบถเบ”เบ„เปเบฒเป€เบซเบฑเบ™?
เบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒ: เบชเบญเบ‡ sprints.

MP: เบซเบเบฑเบ‡?.. เบกเบฑเบ™เป€เบ›เบฑเบ™เบžเบฝเบ‡เปเบ•เปˆ CRUD!
R: เบเบฒเบ™เป€เบฎเบฑเบ” CRUD เปเบกเปˆเบ™เบชเปˆเบงเบ™เบซเบ™เบถเปˆเบ‡เบ—เบตเปˆเบ‡เปˆเบฒเบ, เปเบ•เปˆเบžเบงเบเป€เบฎเบปเบฒเบเบฑเบ‡เบ•เป‰เบญเบ‡เบเบฒเบ™เบเบงเบ”เบชเบญเบšเปเบฅเบฐเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบœเบนเป‰เปƒเบŠเป‰เปเบฅเบฐเบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™. เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเป€เบ„เบทเบญเบ‚เปˆเบฒเบเบšเปเปˆเบซเบ™เป‰เบฒเป€เบŠเบทเปˆเบญเบ–เบท, เบ—เปˆเบฒเบ™เบˆเบฐเบ•เป‰เบญเบ‡เบ›เบฐเบ•เบดเบšเบฑเบ”เบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เปเบŠเป‰เปเบฒเบญเบตเบ, เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบš เบฎเบนเบšเปเบšเบšเบ•เบปเบงเบ•เบฑเบ”เบงเบปเบ‡เบˆเบญเบ™ เปƒเบ™โ€‹เบฅเบนเบโ€‹เบ„เป‰เบฒโ€‹. เบ™เบญเบเบˆเบฒเบเบ™เบตเป‰, เป€เบžเบทเปˆเบญเปƒเบซเป‰เปเบ™เปˆเปƒเบˆเบงเปˆเบฒเบฅเบฐเบšเบปเบšเบ—เบฑเบ‡เบซเบกเบปเบ”เบšเปเปˆ crash, เบ—เปˆเบฒเบ™เบˆเบฐเบ•เป‰เบญเบ‡เบเบฒเบ™เบซเบกเบปเบ”เป€เบงเบฅเบฒเปเบฅเบฐ เบ›เบฐเบฅเบดเบกเบฒเบ™ (เบชเปเบฒเบฅเบฑเบšเบฅเบฒเบเบฅเบฐเบญเบฝเบ”เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบเปˆเบฝเบงเบเบฑเบšเบฎเบนเบšเปเบšเบšเบ—เบตเปˆเป„เบ”เป‰เบเปˆเบฒเบงเบกเบฒเบ—เบฑเบ‡เบชเบญเบ‡, เป€เบšเบดเปˆเบ‡เบ•เปเปˆเบกเบฒเปƒเบ™เบšเบปเบ”เบ„เบงเบฒเบก - เบ›เบฐเบกเบฒเบ™., เปเบฅเบฐโ€‹เป€เบžเบทเปˆเบญโ€‹เบเบงเบ”โ€‹เบชเบญเบšโ€‹เบšเบฑเบ™โ€‹เบซเบฒโ€‹, เบเบฒเบ™โ€‹เบ•เบดเบ”โ€‹เบ•เบฒเบกโ€‹เบเบงเบ”โ€‹เบเบฒโ€‹, เบเบฒเบ™โ€‹เบ•เบดเบ”โ€‹เบ•เบฒเบกโ€‹, [โ€ฆ]

MP: เป‚เบญเป‰เบ, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เปƒเบซเป‰เบžเบฝเบ‡เปเบ•เปˆเปƒเบชเปˆเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ™เบตเป‰เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบœเบฐเบฅเบดเบ”เบ•เบฐเบžเบฑเบ™.

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

เบเบฑเบšเป„เบ›เบซเบฒเบšเปเบฅเบดเบเบฒเบ™เบˆเบธเบฅเบฐเบžเบฒเบเบเบฑเบš Istio. เบžเบฒเบเบ—เบต 1

ะŸั€ะธะผะตั‡ะฐะฝะธะต: เบšเบปเบ”เบ„เบงเบฒเบกเบ™เบตเป‰เบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบ—เปˆเบฒเบ™เบกเบตเบ„เบงเบฒเบกเบฎเบนเป‰เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ‚เบญเบ‡ Kubernetes. เบ–เป‰เบฒเบšเปเปˆเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเปเบ™เบฐเบ™เปเบฒเปƒเบซเป‰เบญเปˆเบฒเบ™ เบเบฒเบ™เปเบ™เบฐเบ™เปเบฒเบ‚เบญเบ‡เบ‚เป‰เบญเบเบเบฑเบš Kubernetes เปเบฅเบฐเบžเบฝเบ‡เปเบ•เปˆเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบชเบทเบšเบ•เปเปˆเบญเปˆเบฒเบ™เป€เบญเบเบฐเบชเบฒเบ™เบ™เบตเป‰.

เบ„เบงเบฒเบกเบ„เบดเบ”

เปƒเบ™เป‚เบฅเบเบ—เบตเปˆเบšเปเปˆเบกเบต Istio, เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบซเบ™เบถเปˆเบ‡เป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเป‚เบ”เบเบเบปเบ‡เบเบฑเบšเบ„เบปเบ™เบญเบทเปˆเบ™, เปเบฅเบฐเปƒเบ™เบเปเบฅเบฐเบ™เบตเบ‚เบญเบ‡เบ„เบงเบฒเบกเบฅเบปเป‰เบกเป€เบซเบผเบง, เบšเปเบฅเบดเบเบฒเบ™เบ•เป‰เบญเบ‡เบˆเบฑเบ”เบเบฒเบ™เบเบฑเบšเบกเบฑเบ™เป€เบญเบ‡: เบžเบฐเบเบฒเบเบฒเบกเปƒเบซเบกเปˆ, เบชเบฐเบซเบ™เบญเบ‡เบเบฒเบ™เบซเบกเบปเบ”เป€เบงเบฅเบฒ, เป€เบ›เบตเบ” breaker เบงเบปเบ‡เบˆเบญเบ™, เปเบฅเบฐเบญเบทเปˆเบ™เป†.

เบเบฑเบšเป„เบ›เบซเบฒเบšเปเบฅเบดเบเบฒเบ™เบˆเบธเบฅเบฐเบžเบฒเบเบเบฑเบš Istio. เบžเบฒเบเบ—เบต 1
เบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™เป€เบ„เบทเบญเบ‚เปˆเบฒเบเปƒเบ™ Kubernetes

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

  • เบ„เบงเบฒเบกโ€‹เบ—เบปเบ™โ€‹เบ—เบฒเบ™โ€‹เบ„เบงเบฒเบกโ€‹เบœเบดเบ”โ€‹เบžเบฒเบ”โ€‹: เบญเบตเบ‡เบ•เบฒเบกเบฅเบฐเบซเบฑเบ”เบชเบฐเบ–เบฒเบ™เบฐเปƒเบ™เบเบฒเบ™เบ•เบญเบšเบชเบฐเบซเบ™เบญเบ‡, เบกเบฑเบ™เป€เบ‚เบปเป‰เบฒเปƒเบˆเบงเปˆเบฒเบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเบฅเบปเป‰เบกเป€เบซเบฅเบงเปเบฅเบฐเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ„เบทเบ™เปƒเบซเบกเปˆ.
  • Canary rollouts: redirects เบžเบฝเบ‡เปเบ•เปˆเบญเบฑเบ”เบ•เบฒเบชเปˆเบงเบ™เบ„เบปเบ‡เบ—เบตเปˆเบ‚เบญเบ‡เบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเบเบฑเบšเบชเบฐเบšเบฑเบšเปƒเบซเบกเปˆเบ‚เบญเบ‡เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™.
  • เบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบกเปเบฅเบฐเบเบฒเบ™เบงเบฑเบ”เปเบ—เบ: เบกเบฑเบ™เปƒเบŠเป‰เป€เบงเบฅเบฒเบ”เบปเบ™เบ›เบฒเบ™เปƒเบ”เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เป€เบžเบทเปˆเบญเบ•เบญเบšเบชเบฐเบซเบ™เบญเบ‡?
  • เบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบกเปเบฅเบฐเบเบฒเบ™เบชเบฑเบ‡เป€เบเบ”เบเบฒเบ™: เป€เบžเบตเปˆเบกเบชเปˆเบงเบ™เบซเบปเบงเบžเบดเป€เบชเบ”เปƒเบชเปˆเปเบ•เปˆเบฅเบฐเบ„เบณเบฎเป‰เบญเบ‡เบ‚เป เปเบฅเบฐเบ•เบดเบ”เบ•เบฒเบกเบžเบงเบเบกเบฑเบ™เปƒเบ™เบ—เบปเปˆเบงเบเบธเปˆเบก.
  • เบ„เบงเบฒเบกเบ›เบญเบ”เป„เบž: เบ”เบถเบ‡เบ‚เปเป‰เบกเบนเบ™ JWT token, เบขเบทเบ™เบขเบฑเบ™ เปเบฅเบฐเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบœเบนเป‰เปƒเบŠเป‰.

เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™เบžเบฝเบ‡เปเบ•เปˆเบ„เบงเบฒเบกเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบˆเปเบฒเบ™เบงเบ™เบซเบ™เป‰เบญเบ (เบžเบฝเบ‡เปเบ•เปˆเบˆเปเบฒเบ™เบงเบ™เบซเบ™เป‰เบญเบเบซเบ™เบถเปˆเบ‡!) เป€เบžเบทเปˆเบญ intrigue เบ—เปˆเบฒเบ™. เบ•เบญเบ™เบ™เบตเป‰เปƒเบซเป‰เบžเบงเบเป€เบฎเบปเบฒเป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบฅเบฒเบเบฅเบฐเบญเบฝเบ”เบ”เป‰เบฒเบ™เบงเบดเบŠเบฒเบเบฒเบ™!

เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒ

Istio เบ‚เบฑเบ”เบ‚เบงเบฒเบ‡เบเบฒเบ™เบชเบฑเบ™เบˆเบญเบ™เปƒเบ™เป€เบ„เบทเบญเบ‚เปˆเบฒเบเบ—เบฑเบ‡เบซเบกเบปเบ”เปเบฅเบฐเบ™เปเบฒเปƒเบŠเป‰เบเบปเบ”เบฅเบฐเบšเบฝเบšเบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เป„เบงเป‰เบเบฑเบšเบกเบฑเบ™, เปƒเบชเปˆเบ•เบปเบงเปเบ—เบ™ smart เปƒเบ™เบฎเบนเบšเปเบšเบšเบ‚เบญเบ‡เบ–เบฑเบ‡ sidecar เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เปเบ•เปˆเบฅเบฐเบเบฑเบ. เบ•เบปเบงเปเบ—เบ™เบ—เบตเปˆเป€เบ›เบตเบ”เปƒเบŠเป‰เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เบ—เบฑเบ‡เปเบปเบ”เบ›เบฐเบเบญเบšเป€เบ›เบฑเบ™ a เบเบปเบ™เบ‚เปเป‰เบกเบนเบ™, เปเบฅเบฐเบžเบงเบเป€เบ‚เบปเบฒเบชเบฒเบกเบฒเบ”เบ–เบทเบเบ•เบฑเป‰เบ‡เบ„เปˆเบฒเปเบšเบšเป€เบ„เบทเปˆเบญเบ™เป„เบซเบงเป‚เบ”เบเปƒเบŠเป‰ เบเบปเบ™เบ„เบงเบšเบ„เบธเบก.

เบเบปเบ™เบ‚เปเป‰เบกเบนเบ™

เบ•เบปเบงเปเบ—เบ™เบ—เบตเปˆเปƒเบชเปˆเป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบเบฑเบเป€เบฎเบฑเบ”เปƒเบซเป‰ Istio เบชเบฒเบกเบฒเบ”เบ•เบญเบšเบชเบฐเบซเบ™เบญเบ‡เบ„เบงเบฒเบกเบ•เป‰เบญเบ‡เบเบฒเบ™เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™เป„เบ”เป‰เบขเปˆเบฒเบ‡เบ‡เปˆเบฒเบเบ”เบฒเบ. เบ•เบปเบงเบขเปˆเบฒเบ‡, เปƒเบซเป‰เบเบงเบ”เป€เบšเบดเปˆเบ‡เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ‚เบญเบ‡ breaker เปเบฅเบฐเบงเบปเบ‡เบˆเบญเบ™ retry.

เบเบฑเบšเป„เบ›เบซเบฒเบšเปเบฅเบดเบเบฒเบ™เบˆเบธเบฅเบฐเบžเบฒเบเบเบฑเบš Istio. เบžเบฒเบเบ—เบต 1
เบงเบดเบ—เบต retry เปเบฅเบฐ breaking circuit เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เบขเบนเปˆเปƒเบ™ Envoy

เป€เบžเบทเปˆเบญเบชเบฐเบซเบผเบธเบš:

  1. เบ—เบนเบ”เบžเบดเป€เบชเบ” (เบžเบงเบเป€เบฎเบปเบฒเบเปเบฒเบฅเบฑเบ‡เป€เบงเบปเป‰เบฒเบเปˆเบฝเบงเบเบฑเบšเบ•เบปเบงเปเบ—เบ™เบ—เบตเปˆเบ•เบฑเป‰เบ‡เบขเบนเปˆเปƒเบ™เบ–เบฑเบ‡ sidecar, เป€เบŠเบดเปˆเบ‡เบ–เบทเบเปเบˆเบเบขเบฒเบเป€เบ›เบฑเบ™ เบœเบฐโ€‹เบฅเบดเบ”โ€‹เบ•เบฐโ€‹เบžเบฑเบ™โ€‹เปเบเบโ€‹เบ•เปˆเบฒเบ‡โ€‹เบซเบฒเบโ€‹ โ€” เบ›เบฐโ€‹เบกเบฒเบ™โ€‹. เปเบ›.) เบชเบปเปˆเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เปเป„เบ›เบซเบฒเบ•เบปเบงเบขเปˆเบฒเบ‡เบ—เปเบฒเบญเบดเบ”เบ‚เบญเบ‡เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™ B เปเบฅเบฐเบฅเบปเป‰เบกเป€เบซเบฅเบง.
  2. Envoy Sidecar เบžเบฐเบเบฒเบเบฒเบกเบญเบตเบเป€เบ—เบทเปˆเบญเบซเบ™เบถเปˆเบ‡ (เบฅเบญเบ‡เปƒเปเปˆ). (1โ€‹)
  3. เบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเบฅเบปเป‰เบกเป€เบซเบฅเบงเปเบฅเบฐเบ–เบทเบเบชเบปเปˆเบ‡เบ„เบทเบ™เป„เบ›เบซเบฒเบ•เบปเบงเปเบ—เบ™เบ—เบตเปˆเป€เบญเบตเป‰เบ™เบกเบฑเบ™.
  4. เบ™เบตเป‰เป€เบ›เบตเบ” Circuit Breaker เปเบฅเบฐเป‚เบ—เบซเบฒเบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบ•เปเปˆเป„เบ›เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเบ•เปเปˆเป„เบ›. (2โ€‹)

เบ™เบตเป‰เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเบ—เปˆเบฒเบ™เบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เปƒเบŠเป‰เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ” Retry เบญเบทเปˆเบ™, เบ—เปˆเบฒเบ™เบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบปเบงเบ‚เบญเบ‡เบ—เปˆเบฒเบ™เป€เบญเบ‡เบ‚เบญเบ‡ Circuit Breaking เปเบฅเบฐ Service Discovery เปƒเบ™เบžเบฒเบชเบฒเบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบก X, Y เบซเบผเบท Z. เบ—เบฑเบ‡เบซเบกเบปเบ”เบ™เบตเป‰เปเบฅเบฐเบซเบผเบฒเบเบกเบตเบขเบนเปˆเปƒเบ™เบเปˆเบญเบ‡. เปƒเบ™ Istio เปเบฅเบฐเบšเปเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™ เบซเบ™เบฑเบ‡เบชเบท เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เปƒเบ™เบฅเบฐเบซเบฑเบ”.

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

เปเบฅเบฐเบชเบธเบ”เบ—เป‰เบฒเบเบ—เปˆเบฒเบ™เบ–เบฒเบกเบงเปˆเบฒ: "เบกเบฑเบ™เบชเบฒเบกเบฒเบ”เบ›เบฑเบšเปเบ•เปˆเบ‡เป„เบ”เป‰เบšเป?"

เบ”เบฝเบงเบ™เบตเป‰เป€เบˆเบปเป‰เบฒเบžเป‰เบญเบกเปเบฅเป‰เบงเบชเบณเบฅเบฑเบšเบเบฒเบ™เป€เบ”เบตเบ™เบ—เบฒเบ‡เบ—เบฐเป€เบฅ, เปƒเบซเป‰เป€เบฎเบปเบฒเบฎเบนเป‰เบˆเบฑเบเบเบฑเบšเบเบปเบ™เบ„เบงเบšเบ„เบธเบก.

เบเบปเบ™เบ„เบงเบšเบ„เบธเบก

เบกเบฑเบ™โ€‹เบ›เบฐโ€‹เบเบญเบšโ€‹เบ”เป‰เบงเบโ€‹เบชเบฒเบกโ€‹เบญเบปเบ‡โ€‹เบ›เบฐโ€‹เบเบญเบšโ€‹: เบเบฒเบ™เบ—เบปเบ”เบฅเบญเบ‡, mixer ะธ Citadel, เป€เบŠเบดเปˆเบ‡เป€เบฎเบฑเบ”เบงเบฝเบเบฎเปˆเบงเบกเบเบฑเบ™เป€เบžเบทเปˆเบญเบเปเบฒเบซเบ™เบปเบ”เบ„เปˆเบฒ Envoys เปƒเบ™เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™, เบšเบฑเบ‡เบ„เบฑเบšเปƒเบŠเป‰เบ™เบฐเป‚เบเบšเบฒเบ, เปเบฅเบฐเป€เบเบฑเบšเบเปเบฒเบ‚เปเป‰เบกเบนเบ™ telemetry. เป‚เบ”เบโ€‹เบชเบฐโ€‹เบ–เบดโ€‹เบ•เบดโ€‹เบกเบฑเบ™โ€‹เบ—เบฑเบ‡โ€‹เบซเบกเบปเบ”โ€‹เบ„เป‰เบฒเบโ€‹เบ„เบทโ€‹เบ™เบตเป‰โ€‹:

เบเบฑเบšเป„เบ›เบซเบฒเบšเปเบฅเบดเบเบฒเบ™เบˆเบธเบฅเบฐเบžเบฒเบเบเบฑเบš Istio. เบžเบฒเบเบ—เบต 1
เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเบ‚เบญเบ‡เบเบปเบ™เบ„เบงเบšเบ„เบธเบกเบเบฑเบšเบเบปเบ™เบ‚เปเป‰เบกเบนเบ™

เบ—เบนเบ” (เป€เบŠเบฑเปˆเบ™: เบเบปเบ™เบ‚เปเป‰เบกเบนเบ™) เบ–เบทเบเบ•เบฑเป‰เบ‡เบ„เปˆเบฒเป‚เบ”เบเปƒเบŠเป‰ Kubernetes CRD (เบ„เปเบฒเบ™เบดเบเบฒเบกเบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบ—เบตเปˆเบเปเบฒเบซเบ™เบปเบ”เป€เบญเบ‡) เบเปเบฒเบ™เบปเบ”เป‚เบ”เบ Istio เปเบฅเบฐเบกเบตเบˆเบธเบ”เบ›เบฐเบชเบปเบ‡เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐเบชเปเบฒเบฅเบฑเบšเบˆเบธเบ”เบ›เบฐเบชเบปเบ‡เบ™เบตเป‰. เบ™เบตเป‰เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเปเบ™เบงเปƒเบ”เบชเปเบฒเบฅเบฑเบšเบ—เปˆเบฒเบ™เปเบกเปˆเบ™เบงเปˆเบฒเบžเบงเบเป€เบ‚เบปเบฒเป€เบšเบดเปˆเบ‡เบ„เบทเบงเปˆเบฒเป€เบ›เบฑเบ™เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบญเบทเปˆเบ™เปƒเบ™ Kubernetes เบ—เบตเปˆเบกเบต syntax เบ—เบตเปˆเบ„เบธเป‰เบ™เป€เบ„เบตเบ. เป€เบกเบทเปˆเบญเบชเป‰เบฒเบ‡เปเบฅเป‰เบง, เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบ™เบตเป‰เบˆเบฐเบ–เบทเบเป€เบเบฑเบšเบ‚เบถเป‰เบ™เป‚เบ”เบเบเบปเบ™เบ„เบงเบšเบ„เบธเบกเปเบฅเบฐเบ™เปเบฒเปƒเบŠเป‰เบเบฑเบš Envoys.

เบ„เบงเบฒเบกเบชเปเบฒเบžเบฑเบ™เบ‚เบญเบ‡เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบเบฑเบš Istio

เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบญเบฐเบ—เบดเบšเบฒเบเบ„เบงเบฒเบกเบชเปเบฒเบžเบฑเบ™เบ‚เบญเบ‡ Istio เบเบฑเบšเบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™, เปเบ•เปˆเบšเปเปˆเปเบกเปˆเบ™เบชเบดเปˆเบ‡เบเบปเบ‡เบเบฑเบ™เบ‚เป‰เบฒเบก: เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบš Istio เปเบ™เบงเปƒเบ”?

เบ”เป‰เบงเบเบ„เบงเบฒเบกเบŠเบทเปˆเบชเบฑเบ”, เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบฎเบฑเบšเบฎเบนเป‰เป€เบ–เบดเบ‡เบเบฒเบ™เบ›เบฐเบเบปเบ”เบ•เบปเบงเบ‚เบญเบ‡ Istio เบเป‰เบญเบ™เบงเปˆเบฒเบ›เบฒเบกเบตเบ™เป‰เปเบฒเป€เบกเบทเปˆเบญเบžเบงเบเป€เบ‚เบปเบฒเบ–เบฒเบกเบ•เบปเบงเป€เบญเบ‡เบงเปˆเบฒ "เบ™เป‰เปเบฒเปเบกเปˆเบ™เบซเบเบฑเบ‡?"

เบเบฑเบšเป„เบ›เบซเบฒเบšเปเบฅเบดเบเบฒเบ™เบˆเบธเบฅเบฐเบžเบฒเบเบเบฑเบš Istio. เบžเบฒเบเบ—เบต 1
เบžเบฒเบšเบ›เบฐเบเบญเบš Victoria Dimitrakopoulos:- เป€เบˆเบปเป‰เบฒเบกเบฑเบเบ™เป‰เปเบฒเปเบ™เบงเปƒเบ”? - เบ™เป‰เปเบฒเปเบกเปˆเบ™เบซเบเบฑเบ‡?

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

เบ—เบดเบ”เบชเบฐเบ”เบตเบžเบฝเบ‡เบžเป - เปƒเบซเป‰เบžเบงเบเป€เบฎเบปเบฒเป€เบญเบปเบฒเบ„เบงเบฒเบกเบฎเบนเป‰เบ™เบตเป‰เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”!

เบกเบฑเบ™เบขเบนเปˆเปƒเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”

Istio เบ•เป‰เบญเบ‡เบเบฒเบ™เบเบธเปˆเบก Kubernetes เบ—เบตเปˆเบกเบตเบขเปˆเบฒเบ‡เปœเป‰เบญเบ 4 vCPUs เปเบฅเบฐ RAM 8 GB. เป€เบžเบทเปˆเบญเบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบเบธเปˆเบกเบขเปˆเบฒเบ‡เบงเปˆเบญเบ‡เป„เบงเปเบฅเบฐเบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบฒเบกเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบˆเบฒเบเบšเบปเบ”เบ„เบงเบฒเบก, เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเปเบ™เบฐเบ™เปเบฒเปƒเบซเป‰เปƒเบŠเป‰ Google Cloud Platform, เป€เบŠเบดเปˆเบ‡เบชเบฐเป€เบซเบ™เบตเปƒเบซเป‰เบœเบนเป‰เปƒเบŠเป‰เปƒเบซเบกเปˆ. เบŸเบฃเบต $300.

เบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เบชเป‰เบฒเบ‡เบเบธเปˆเบก เปเบฅเบฐเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡ Kubernetes เบœเปˆเบฒเบ™ console utility, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ•เบดเบ”เบ•เบฑเป‰เบ‡ Istio เบœเปˆเบฒเบ™ Helm package manager.

เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡เบซเบกเบงเบเบเบฑเบ™เบเบฐเบ—เบปเบš

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

เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡ Istio

เบ”เบฒเบงเป‚เบซเบฅเบ”เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™ Istio เบˆเบฒเบ เบเบฒเบ™เบ›เปˆเบญเบเบซเบฅเป‰เบฒเบชเบธเบ” (เบฅเบดเป‰เบ‡เบ‚เบญเบ‡เบœเบนเป‰เบ‚เบฝเบ™เบ•เบปเป‰เบ™เบชเบฐเบšเบฑเบšเบเบฑเบšเป€เบงเบตเบŠเบฑเบ™ 1.0.5 เป„เบ”เป‰เบ–เบทเบเบ›เปˆเบฝเบ™เป€เบ›เบฑเบ™เบญเบฑเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™, เป€เบŠเบฑเปˆเบ™: 1.0.6 - เบ›เบฐเบกเบฒเบ™ transl.), เบชเบฐเบเบฑเบ”เป€เบ™เบทเป‰เบญเปƒเบ™เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบซเบ™เบถเปˆเบ‡เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบต, เบ—เบตเปˆเบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบˆเบฐเป‚เบ—เบซเบฒเบ•เปเปˆเป„เบ› [istio-resources].

เป€เบžเบทเปˆเบญเบเปเบฒเบ™เบปเบ”เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™ Istio เป„เบ”เป‰เบขเปˆเบฒเบ‡เบ‡เปˆเบฒเบเบ”เบฒเบ, เบชเป‰เบฒเบ‡ namespace เปƒเบ™เบเบธเปˆเบก K8s istio-system:

$ kubectl create namespace istio-system

เบชเปเบฒเป€เบฅเบฑเบ”เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡เป‚เบ”เบเบเบฒเบ™เป„เบ›เบ—เบตเปˆเป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบต [istio-resources] เปเบฅเบฐเปเบฅเปˆเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡:

$ helm template install/kubernetes/helm/istio 
  --set global.mtls.enabled=false 
  --set tracing.enabled=true 
  --set kiali.enabled=true 
  --set grafana.enabled=true 
  --namespace istio-system > istio.yaml

เบ„เปเบฒเบชเบฑเปˆเบ‡เบ™เบตเป‰เบˆเบฐเบชเบปเปˆเบ‡เบญเบญเบเบญเบปเบ‡เบ›เบฐเบเบญเบšเบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เบ‚เบญเบ‡ Istio เป„เบ›เบซเบฒเป„เบŸเบฅเปŒ istio.yaml. เบžเบงเบเป€เบฎเบปเบฒเบ”เบฑเบ”เปเบ›เบ‡เปเบกเปˆเปเบšเบšเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เปƒเบซเป‰เป€เบซเบกเบฒเบฐเบชเบปเบกเบเบฑเบšเบ•เบปเบงเป€เบฎเบปเบฒเป€เบญเบ‡, เป‚เบ”เบเบฅเบฐเบšเบธเบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบ”เบฑเปˆเบ‡เบ•เปเปˆเป„เบ›เบ™เบตเป‰:

  • global.mtls.enabled เบ•เบดเบ”โ€‹เบ•เบฑเป‰เบ‡โ€‹เปƒเบ™ false (เป€เบŠเบฑเปˆเบ™: เบเบฒเบ™เบžเบดเบชเบนเบ”เบขเบทเบ™เบขเบฑเบ™ mTLS เบ–เบทเบเบ›เบดเบ”เปƒเบŠเป‰เบ‡เบฒเบ™ - เบ›เบฐเบกเบฒเบ™)เป€เบžเบทเปˆเบญเบ‡เปˆเบฒเบเบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบ™เบฑเบ”เบžเบปเบšเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ;
  • tracing.enabled เบ›เบฐเบเบญเบšเบกเบตเบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบกเบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเป‚เบ”เบเปƒเบŠเป‰ Jaeger;
  • kiali.enabled เบ•เบดเบ”เบ•เบฑเป‰เบ‡ Kiali เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบเบธเปˆเบกเป€เบžเบทเปˆเบญเป€เบšเบดเปˆเบ‡เป€เบซเบฑเบ™เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™ เปเบฅเบฐเบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™;
  • grafana.enabled เบ•เบดเบ”เบ•เบฑเป‰เบ‡ Grafana เป€เบžเบทเปˆเบญเป€เบšเบดเปˆเบ‡เบžเบฒเบšเบงเบฑเบ”เปเบ—เบเบ—เบตเปˆเป€เบเบฑเบšเบเปเบฒ.

เปƒเบซเป‰เปƒเบŠเป‰เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เบ”เป‰เบงเบเบ„เปเบฒเบชเบฑเปˆเบ‡:

$ kubectl apply -f istio.yaml

เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡ Istio เปƒเบ™เบเบธเปˆเบกเปเบกเปˆเบ™เบชเปเบฒเป€เบฅเบฑเบ”! เบฅเปเบ–เป‰เบฒเบˆเบปเบ™เบเปˆเบงเบฒเบเบฑเบเบ—เบฑเบ‡เบซเบกเบปเบ”เบขเบนเปˆเปƒเบ™ namespace istio-system เบˆเบฐเบชเบฒเบกเบฒเบ” Running เบซเบผเบท Completedเป‚เบ”เบเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡เบ‚เป‰เบฒเบ‡เบฅเบธเปˆเบกเบ™เบตเป‰:

$ kubectl get pods -n istio-system

เบ•เบญเบ™เบ™เบตเป‰เบžเบงเบเป€เบฎเบปเบฒเบžเป‰เบญเบกเบ—เบตเปˆเบˆเบฐเบชเบทเบšเบ•เปเปˆเปƒเบ™เบžเบฒเบเบ•เปเปˆเป„เบ›, เบšเปˆเบญเบ™เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเป„เบ”เป‰เบฎเบฑเบšเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเปเบฅเบฐเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™.

เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเบ‚เบญเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐเบ„เบงเบฒเบกเบฎเบนเป‰เบชเบถเบ

เปƒเบซเป‰เปƒเบŠเป‰เบ•เบปเบงเบขเปˆเบฒเบ‡เบ‚เบญเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ microservice เบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐเบ„เบงเบฒเบกเบฎเบนเป‰เบชเบถเบเบ—เบตเปˆเปƒเบŠเป‰เปƒเบ™เบ—เบตเปˆเป„เบ”เป‰เบเปˆเบฒเบงเบกเบฒเปเบฅเป‰เบง เบšเบปเบ”เปเบ™เบฐเบ™เปเบฒเบเปˆเบฝเบงเบเบฑเบš Kubernetes. เบกเบฑเบ™เบชเบฐเบฅเบฑเบšเบชเบฑเบšเบŠเป‰เบญเบ™เบžเบฝเบ‡เบžเปเบ—เบตเปˆเบˆเบฐเบชเบฐเปเบ”เบ‡เปƒเบซเป‰เป€เบซเบฑเบ™เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เบ‚เบญเบ‡ Istio เปƒเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”.

เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ›เบฐเบเบญเบšเบ”เป‰เบงเบเบชเบตเปˆ microservices:

  1. เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™ SA-Fronten, เป€เบŠเบดเปˆเบ‡เปƒเบซเป‰เบšเปเบฅเบดเบเบฒเบ™เบ”เป‰เบฒเบ™เบซเบ™เป‰เบฒเบ‚เบญเบ‡เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™ Reactjs;
  2. เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™ SA-WebApp, เป€เบŠเบดเปˆเบ‡เปƒเบซเป‰เบšเปเบฅเบดเบเบฒเบ™เบ„เปเบฒเบ–เบฒเบกเบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐเบ„เบงเบฒเบกเบฎเบนเป‰เบชเบถเบ;
  3. เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™ SA-Logic, เป€เบŠเบดเปˆเบ‡เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบปเบงเบ‚เบญเบ‡เบกเบฑเบ™เป€เบญเบ‡ เบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐเบ„เบงเบฒเบกเบฎเบนเป‰เบชเบถเบ;
  4. เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™ SA-เบ„เปเบฒเบ•เบดเบŠเบปเบก, เป€เบŠเบดเปˆเบ‡เป„เบ”เป‰เบฎเบฑเบšเบ„เปเบฒเบ„เบถเบ”เบ„เปเบฒเป€เบซเบฑเบ™เบˆเบฒเบเบœเบนเป‰เปƒเบŠเป‰เบเปˆเบฝเบงเบเบฑเบšเบ„เบงเบฒเบกเบ–เบทเบเบ•เป‰เบญเบ‡เบ‚เบญเบ‡เบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐ.

เบเบฑเบšเป„เบ›เบซเบฒเบšเปเบฅเบดเบเบฒเบ™เบˆเบธเบฅเบฐเบžเบฒเบเบเบฑเบš Istio. เบžเบฒเบเบ—เบต 1

เปƒเบ™เปเบœเบ™เบงเบฒเบ”เบ™เบตเป‰, เบ™เบญเบเป€เบซเบ™เบทเบญเบˆเบฒเบเบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™, เบžเบงเบเป€เบฎเบปเบฒเบเบฑเบ‡เป€เบซเบฑเบ™ Ingress Controller, เป€เบŠเบดเปˆเบ‡เปƒเบ™ Kubernetes เบชเบปเปˆเบ‡เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเป€เบ‚เบปเป‰เบฒเบกเบฒเป„เบ›เบซเบฒเบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบก. Istio เปƒเบŠเป‰เปเบ™เบงเบ„เบงเบฒเบกเบ„เบดเบ”เบ—เบตเปˆเบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™เบžเบฒเบเปƒเบ™ Ingress Gateway เบ‚เบญเบ‡เบกเบฑเบ™, เบฅเบฒเบเบฅเบฐเบญเบฝเบ”เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบˆเบฐเบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบฒเบก.

เปเบฅเปˆเบ™เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เบ”เป‰เบงเบเบ•เบปเบงเปเบ—เบ™เบˆเบฒเบ Istio

เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบ—เบตเปˆเป„เบ”เป‰เบเปˆเบฒเบงเบกเบฒเปƒเบ™เบšเบปเบ”เบ„เบงเบฒเบก, clone repository เบ‚เบญเบ‡เบ—เปˆเบฒเบ™ เบงเบดเบŠเบฒเบชเบฐเป€เบžเบฒเบฐ. เบกเบฑเบ™เบ›เบฐเบเบญเบšเบ”เป‰เบงเบเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเปเบฅเบฐ manifests เบชเปเบฒเบฅเบฑเบš Kubernetes เปเบฅเบฐ Istio.

เปƒเบชเปˆเบฅเบปเบ”เบ‚เป‰เบฒเบ‡

เบเบฒเบ™เปเบŠเบเปเบกเปˆเบ™เบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เป„เบ”เป‰ เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ” เบซเบผเบท เบ”เป‰เบงเบเบ•เบปเบ™เป€เบญเบ‡. เป€เบžเบทเปˆเบญเปƒเบชเปˆเบ•เบนเป‰เบ„เบญเบ™เป€เบ—เบ™เป€เบ™เบต sidecar เป‚เบ”เบเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”, เบ—เปˆเบฒเบ™เบˆเบฐเบ•เป‰เบญเบ‡เบ•เบฑเป‰เบ‡เบ›เป‰เบฒเบเบŠเบทเปˆเปƒเบชเปˆเบŠเบทเปˆ istio-injection=enabled, เป€เบŠเบดเปˆเบ‡เป€เบฎเบฑเบ”เบ”เป‰เบงเบเบ„เปเบฒเบชเบฑเปˆเบ‡เบ•เปเปˆเป„เบ›เบ™เบตเป‰:

$ kubectl label namespace default istio-injection=enabled
namespace/default labeled

เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เปเบ•เปˆเบฅเบฐเบเบฑเบเบ—เบตเปˆเบˆเบฐเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เปƒเบ™ namespace เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™ (default) เบˆเบฐโ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบžเบฒโ€‹เบŠเบฐโ€‹เบ™เบฐ sidecar เบ‚เบญเบ‡โ€‹เบ•เบปเบ™โ€‹. เป€เบžเบทเปˆเบญเบเบงเบ”เบชเบญเบšเบ™เบตเป‰, เปƒเบซเป‰เปƒเบŠเป‰เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเป‚เบ”เบเบเบฒเบ™เป„เบ›เบ—เบตเปˆเป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบฎเบฒเบเบ‚เบญเบ‡ repository [istio-mastery] เปเบฅเบฐเปเบฅเปˆเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡เบ•เปเปˆเป„เบ›เบ™เบตเป‰:

$ kubectl apply -f resource-manifests/kube
persistentvolumeclaim/sqlite-pvc created
deployment.extensions/sa-feedback created
service/sa-feedback created
deployment.extensions/sa-frontend created
service/sa-frontend created
deployment.extensions/sa-logic created
service/sa-logic created
deployment.extensions/sa-web-app created
service/sa-web-app created

เป‚เบ”เบเป„เบ”เป‰เบ™เบณเปƒเบŠเป‰เบšเปเบฅเบดเบเบฒเบ™, เปƒเบซเป‰เบเบงเบ”เป€เบšเบดเปˆเบ‡เบงเปˆเบฒเบเบฑเบเบกเบตเบชเบญเบ‡เบ–เบฑเบ‡ (เบกเบตเบšเปเบฅเบดเบเบฒเบ™เป€เบญเบ‡ เปเบฅเบฐเบฅเบปเบ”เบ‚เป‰เบฒเบ‡) เป‚เบ”เบเบเบฒเบ™เปเบฅเปˆเบ™เบ„เบณเบชเบฑเปˆเบ‡. kubectl get pods เปเบฅเบฐเปƒเบซเป‰เปเบ™เปˆเปƒเบˆเบงเปˆเบฒเบžเบฒเบเปƒเบ•เป‰เบ„เปเบฅเปเบฒ READY เบ„เปˆเบฒเบ—เบตเปˆเบฅเบฐเบšเบธ 2/2, เป€เบ›เบฑเบ™เบชเบฑเบ™เบเบฒเบฅเบฑเบเบงเปˆเบฒเบ–เบฑเบ‡เบ—เบฑเบ‡เบชเบญเบ‡เบเปเบฒเบฅเบฑเบ‡เปเบฅเปˆเบ™:

$ kubectl get pods
NAME                           READY     STATUS    RESTARTS   AGE
sa-feedback-55f5dc4d9c-c9wfv   2/2       Running   0          12m
sa-frontend-558f8986-hhkj9     2/2       Running   0          12m
sa-logic-568498cb4d-2sjwj      2/2       Running   0          12m
sa-logic-568498cb4d-p4f8c      2/2       Running   0          12m
sa-web-app-599cf47c7c-s7cvd    2/2       Running   0          12m

เบชเบฒเบเบ•เบฒเบกเบฑเบ™เป€เบšเบดเปˆเบ‡เบ„เบทเบงเปˆเบฒเบ™เบตเป‰:

เบเบฑเบšเป„เบ›เบซเบฒเบšเปเบฅเบดเบเบฒเบ™เบˆเบธเบฅเบฐเบžเบฒเบเบเบฑเบš Istio. เบžเบฒเบเบ—เบต 1
เบ•เบปเบงเปเบ—เบ™เบ•เบปเบงเปเบ—เบ™เปƒเบ™เปœเบถเปˆเบ‡เปƒเบ™เบเบฑเบ

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

เบ›เบฐเบ•เบนเบ—เบฒเบ‡เป€เบ‚เบปเป‰เบฒ

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

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

$ kubectl get svc -n istio-system -l istio=ingressgateway
NAME                   TYPE           CLUSTER-IP     EXTERNAL-IP
istio-ingressgateway   LoadBalancer   10.0.132.127   13.93.30.120

เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบชเบทเบšเบ•เปเปˆเป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเป‚เบ”เบเปƒเบŠเป‰ IP เบ™เบตเป‰ (เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบˆเบฐเบญเป‰เบฒเบ‡เป€เบ–เบดเบ‡เบกเบฑเบ™เป€เบ›เบฑเบ™ EXTERNAL-IP), เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เป€เบžเบทเปˆเบญเบ„เบงเบฒเบกเบชเบฐเบ”เบงเบเบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบ‚เบฝเบ™เบ„เปˆเบฒเป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบ•เบปเบงเปเบ›:

$ EXTERNAL_IP=$(kubectl get svc -n istio-system 
  -l app=istio-ingressgateway 
  -o jsonpath='{.items[0].status.loadBalancer.ingress[0].ip}')

เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบžเบฐเบเบฒเบเบฒเบกเป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡ IP เบ™เบตเป‰เบœเปˆเบฒเบ™เบ•เบปเบงเบ—เปˆเบญเบ‡เป€เบงเบฑเบšเปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™, เบ—เปˆเบฒเบ™เบˆเบฐเป„เบ”เป‰เบฎเบฑเบšเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบ—เบตเปˆเบšเปเปˆเบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป„เบ”เป‰, เป€เบžเบฒเบฐเบงเปˆเบฒ เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™ Istio เบ‚เบฑเบ”เบ‚เบงเบฒเบ‡เบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™เบ‚เบฒเป€เบ‚เบปเป‰เบฒเบ—เบฑเบ‡เบซเบกเบปเบ”, Gateway เบเบฑเบ‡เบšเปเปˆเบ—เบฑเบ™เป„เบ”เป‰เบเปเบฒเบ™เบปเบ”.

เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบ›เบฐเบ•เบน

Gateway เป€เบ›เบฑเบ™ CRD (Custom Resource Definition) เปƒเบ™ Kubernetes, เบเปเบฒเบ™เบปเบ”เบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡ Istio เปƒเบ™ cluster เปเบฅเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เบฅเบฐเบšเบธเบžเบญเบ”, เป‚เบ›เป‚เบ•เบ„เบญเบ™เปเบฅเบฐเป‚เบฎเบ”เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™เป€เบ‚เบปเป‰เบฒเบกเบฒ.

เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ, เบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™ HTTP เปƒเบ™เบžเบญเบ” 80 เบชเปเบฒเบฅเบฑเบšเป€เบˆเบปเป‰เบฒเบžเบฒเบšเบ—เบฑเบ‡เบซเบกเบปเบ”. เบงเบฝเบเบ‡เบฒเบ™เป„เบ”เป‰เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เป‚เบ”เบเบ„เปเบฒเบ™เบดเบเบฒเบกเบ”เบฑเปˆเบ‡เบ•เปเปˆเป„เบ›เบ™เบตเป‰ (http-gateway.yaml):

apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
  name: http-gateway
spec:
  selector:
    istio: ingressgateway
  servers:
  - port:
      number: 80
      name: http
      protocol: HTTP
    hosts:
- "*"

เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ™เบตเป‰เบšเปเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เบ„เปเบฒเบญเบฐเบ—เบดเบšเบฒเบเบเบปเบเป€เบงเบฑเป‰เบ™เบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเป€เบฅเบทเบญเบ istio: ingressgateway. เบ”เป‰เบงเบเบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰, เบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เบฅเบฐเบšเบธเบงเปˆเบฒ Ingress Gateway เปƒเบ”เบ—เบตเปˆเบˆเบฐเปƒเบŠเป‰เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ. เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ, เบ™เบตเป‰เปเบกเปˆเบ™เบ•เบปเบงเบ„เบงเบšเบ„เบธเบก Ingress Gateway, เป€เบŠเบดเปˆเบ‡เบ–เบทเบเบ•เบดเบ”เบ•เบฑเป‰เบ‡เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปƒเบ™ Istio.

เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ–เบทเบเบ™เบณเปƒเบŠเป‰เป‚เบ”เบเบเบฒเบ™เป€เบญเบตเป‰เบ™เบ„เบณเบชเบฑเปˆเบ‡เบ•เปเปˆเป„เบ›เบ™เบตเป‰:

$ kubectl apply -f resource-manifests/istio/http-gateway.yaml gateway.networking.istio.io/http-gateway created

เบ•เบญเบ™เบ™เบตเป‰เบ›เบฐเบ•เบนเบ—เบฒเบ‡เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบžเบญเบ” 80, เปเบ•เปˆเบšเปเปˆเบฎเบนเป‰เบงเปˆเบฒเบˆเบฐเบชเบปเปˆเบ‡เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเป„เบ›เปƒเบช. เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ™เบตเป‰เบ—เปˆเบฒเบ™เบˆเบฐเบ•เป‰เบญเบ‡เบเบฒเบ™ เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบชเบฐเป€เบทเบญเบ™เบˆเบดเบ‡.

เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™ VirtualService

VirtualService เบšเบญเบ Ingress Gateway เบงเบดเบ—เบตเบเบฒเบ™เบชเบปเปˆเบ‡เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเบ—เบตเปˆเป„เบ”เป‰เบฎเบฑเบšเบญเบฐเบ™เบธเบเบฒเบ”เบžเบฒเบเปƒเบ™เบเบธเปˆเบก.

เบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเบ•เปเปˆเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเบ—เบตเปˆเป€เบ‚เบปเป‰เบฒเบกเบฒเป‚เบ”เบเบœเปˆเบฒเบ™ http-gateway เบ•เป‰เบญเบ‡เบ–เบทเบเบชเบปเปˆเบ‡เป„เบ›เบซเบฒเบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™ sa-frontend, sa-web-app เปเบฅเบฐ sa-feedback:

เบเบฑเบšเป„เบ›เบซเบฒเบšเปเบฅเบดเบเบฒเบ™เบˆเบธเบฅเบฐเบžเบฒเบเบเบฑเบš Istio. เบžเบฒเบเบ—เบต 1
เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบ—เบตเปˆเบ•เป‰เบญเบ‡เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ”เป‰เบงเบ VirtualServices

เปƒเบซเป‰เป€เบšเบดเปˆเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เปเบ—เบตเปˆเบ„เบงเบ™เบˆเบฐเบ–เบทเบเบชเบปเปˆเบ‡เป„เบ›เบซเบฒ SA-Frontend:

  • เบเบปเบ‡เบเบฑเบ™เปเบ—เป‰เบ•เบฒเบกเบ—เบฒเบ‡ / เบ„เบงเบ™เบˆเบฐเบ–เบทเบเบชเบปเปˆเบ‡เป„เบ›เบซเบฒ SA-Frontend เป€เบžเบทเปˆเบญเปƒเบซเป‰เป„เบ”เป‰เบฎเบฑเบš index.html;
  • เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบฅเปˆเบงเบ‡เปœเป‰เบฒ /static/* เบ•เป‰เบญเบ‡เบ–เบทเบเบชเบปเปˆเบ‡เป„เบ›เบซเบฒ SA-Frontend เป€เบžเบทเปˆเบญเบฎเบฑเบšเป„เบŸเบฅเปŒเบชเบฐเบ–เบดเบ”เบ—เบตเปˆเปƒเบŠเป‰เปƒเบ™ frontend เป€เบŠเบฑเปˆเบ™ CSS เปเบฅเบฐ JavaScript;
  • เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบ–เบทเบเบˆเบฑเบšเบ„เบนเปˆเป‚เบ”เบเบเบฒเบ™เบชเบฐเปเบ”เบ‡เบญเบญเบเบ›เบปเบเบเบฐเบ•เบด '^.*.(ico|png|jpg)$', เบ•เป‰เบญเบ‡เบ–เบทเบเบชเบปเปˆเบ‡เป„เบ›เบซเบฒ SA-Frontend, เป€เบžเบฒเบฐเบงเปˆเบฒ เบ™เบตเป‰เปเบกเปˆเบ™เบฎเบนเบšเบžเบฒเบšเบ—เบตเปˆเบชเบฐเปเบ”เบ‡เบขเบนเปˆเปƒเบ™เบซเบ™เป‰เบฒ.

เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เปเบกเปˆเบ™เบšเบฑเบ™เบฅเบธเป„เบ”เป‰เป‚เบ”เบเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ•เปเปˆเป„เบ›เบ™เบตเป‰ (sa-virtualservice-external.yaml):

kind: VirtualService
metadata:
  name: sa-external-services
spec:
  hosts:
  - "*"
  gateways:
  - http-gateway                      # 1
  http:
  - match:
    - uri:
        exact: /
    - uri:
        exact: /callback
    - uri:
        prefix: /static
    - uri:
        regex: '^.*.(ico|png|jpg)

ะ’ะฐะถะฝั‹ะต ะผะพะผะตะฝั‚ั‹:

  1. ะญั‚ะพั‚ VirtualService ะพั‚ะฝะพัะธั‚ัั ะบ ะทะฐะฟั€ะพัะฐะผ, ะฟั€ะธั…ะพะดัั‰ะธะผ ั‡ะตั€ะตะท http-gateway;
  2. ะ’ destination ะพะฟั€ะตะดะตะปัะตั‚ัั ัะตั€ะฒะธั, ะบัƒะดะฐ ะพั‚ะฟั€ะฐะฒะปััŽั‚ัั ะทะฐะฟั€ะพัั‹.
ะŸั€ะธะผะตั‡ะฐะฝะธะต: ะšะพะฝั„ะธะณัƒั€ะฐั†ะธั ะฒั‹ัˆะต ั…ั€ะฐะฝะธั‚ัั ะฒ ั„ะฐะนะปะต sa-virtualservice-external.yaml, ะบะพั‚ะพั€ั‹ะน ั‚ะฐะบะถะต ัะพะดะตั€ะถะธั‚ ะฝะฐัั‚ั€ะพะนะบะธ ะดะปั ะผะฐั€ัˆั€ัƒั‚ะธะทะฐั†ะธะธ ะฒ SA-WebApp ะธ SA-Feedback, ะฝะพ ะฑั‹ะป ัะพะบั€ะฐั‰ั‘ะฝ ะทะดะตััŒ ะฒ ัั‚ะฐั‚ัŒะต ะดะปั ะปะฐะบะพะฝะธั‡ะฝะพัั‚ะธ. ะŸั€ะธะผะตะฝะธะผ VirtualService ะฒั‹ะทะพะฒะพะผ:
$ kubectl apply -f resource-manifests/istio/sa-virtualservice-external.yaml
virtualservice.networking.istio.io/sa-external-services created

ะŸั€ะธะผะตั‡ะฐะฝะธะต: ะšะพะณะดะฐ ะผั‹ ะฟั€ะธะผะตะฝัะตะผ ั€ะตััƒั€ัั‹ Istio, Kubernetes API Server ัะพะทะดะฐั‘ั‚ ัะพะฑั‹ั‚ะธะต, ะบะพั‚ะพั€ะพะต ะฟะพะปัƒั‡ะฐะตั‚ Istio Control Plane, ะธ ัƒะถะต ะฟะพัะปะต ัั‚ะพะณะพ ะฝะพะฒะฐั ะบะพะฝั„ะธะณัƒั€ะฐั†ะธั ะฟั€ะธะผะตะฝัะตั‚ัั ะบ ะฟั€ะพะบัะธ-ัะตั€ะฒะตั€ะฐะผ Envoy ะบะฐะถะดะพะณะพ pod'ะฐ. ะ ะบะพะฝั‚ั€ะพะปะปะตั€ Ingress Gateway ะฟั€ะตะดัั‚ะฐะฒะปัะตั‚ัั ะพั‡ะตั€ะตะดะฝั‹ะผ Envoy, ัะบะพะฝั„ะธะณัƒั€ะธั€ะพะฒะฐะฝะฝั‹ะผ ะฒ Control Plane. ะ’ัั‘ ัั‚ะพ ะฝะฐ ัั…ะตะผะต ะฒั‹ะณะปัะดะธั‚ ั‚ะฐะบ:

ะะฐะทะฐะด ะบ ะผะธะบั€ะพัะตั€ะฒะธัะฐะผ ะฒะผะตัั‚ะต ั Istio. ะงะฐัั‚ัŒ 1
ะšะพะฝั„ะธะณัƒั€ะฐั†ะธั Istio-IngressGateway ะดะปั ะผะฐั€ัˆั€ัƒั‚ะธะทะฐั†ะธะธ ะทะฐะฟั€ะพัะพะฒ

ะŸั€ะธะปะพะถะตะฝะธะต Sentiment Analysis ัั‚ะฐะปะพ ะดะพัั‚ัƒะฟะฝั‹ะผ ะฟะพ http://{EXTERNAL-IP}/. ะะต ะฟะตั€ะตะถะธะฒะฐะนั‚ะต, ะตัะปะธ ะฒั‹ ะฟะพะปัƒั‡ะฐะตั‚ะต ัั‚ะฐั‚ัƒั Not Found: ะธะฝะพะณะดะฐ ั‚ั€ะตะฑัƒะตั‚ัั ั‡ัƒั‚ัŒ ะฑะพะปัŒัˆะต ะฒั€ะตะผะตะฝะธ ะดะปั ั‚ะพะณะพ, ั‡ั‚ะพะฑั‹ ะบะพะฝั„ะธะณัƒั€ะฐั†ะธั ะฒัั‚ัƒะฟะธะปะฐ ะฒ ัะธะปัƒ ะธ ะบััˆะธ Envoy ะพะฑะฝะพะฒะธะปะธััŒ.

ะŸะตั€ะตะด ั‚ะตะผ, ะบะฐะบ ะฟั€ะพะดะพะปะถะธั‚ัŒ, ะฟะพั€ะฐะฑะพั‚ะฐะนั‚ะต ะฝะตะผะฝะพะณะพ ั ะฟั€ะธะปะพะถะตะฝะธะตะผ, ั‡ั‚ะพะฑั‹ ัะณะตะฝะตั€ะธั€ะพะฒะฐั‚ัŒ ั‚ั€ะฐั„ะธะบ (ะตะณะพ ะฝะฐะปะธั‡ะธะต ะฝะตะพะฑั…ะพะดะธะผะพ ะดะปั ะฝะฐะณะปัะดะฝะพัั‚ะธ ะฒ ะฟะพัะปะตะดัƒัŽั‰ะธั… ะดะตะนัั‚ะฒะธัั… โ€” ะฟั€ะธะผ. ะฟะตั€ะตะฒ.).

Kialiโ€Š: ะฝะฐะฑะปัŽะดะฐะตะผะพัั‚ัŒ

ะงั‚ะพะฑั‹ ะฟะพะฟะฐัั‚ัŒ ะฒ ะฐะดะผะธะฝะธัั‚ั€ะฐั‚ะธะฒะฝั‹ะน ะธะฝั‚ะตั€ั„ะตะนั Kiali, ะฒั‹ะฟะพะปะฝะธั‚ะต ัะปะตะดัƒัŽั‰ัƒัŽ ะบะพะผะฐะฝะดัƒ:

$ kubectl port-forward 
    $(kubectl get pod -n istio-system -l app=kiali 
    -o jsonpath='{.items[0].metadata.name}') 
    -n istio-system 20001

โ€ฆ ะธ ะพั‚ะบั€ะพะนั‚ะต http://localhost:20001/, ะทะฐะปะพะณะธะฝะธะฒัˆะธััŒ ะฟะพะด admin/admin. ะ—ะดะตััŒ ะฒั‹ ะฝะฐะนะดะตั‚ะต ะผะฝะพะถะตัั‚ะฒะพ ะฟะพะปะตะทะฝั‹ั… ะฒะพะทะผะพะถะฝะพัั‚ะตะน, ะฝะฐะฟั€ะธะผะตั€, ะดะปั ะฟั€ะพะฒะตั€ะบะธ ะบะพะฝั„ะธะณัƒั€ะฐั†ะธะธ ะบะพะผะฟะพะฝะตะฝั‚ะพะฒ Istio, ะฒะธะทัƒะฐะปะธะทะฐั†ะธะธ ัะตั€ะฒะธัะพะฒ ะฟะพ ะธะฝั„ะพั€ะผะฐั†ะธะธ, ัะพะฑั€ะฐะฝะฝะพะน ะฟั€ะธ ะฟะตั€ะตั…ะฒะฐั‚ะต ัะตั‚ะตะฒั‹ั… ะทะฐะฟั€ะพัะพะฒ, ะฟะพะปัƒั‡ะตะฝะธั ะพั‚ะฒะตั‚ะพะฒ ะฝะฐ ะฒะพะฟั€ะพัั‹ ยซะšั‚ะพ ะบ ะบะพะผัƒ ะพะฑั€ะฐั‰ะฐะตั‚ัั?ยป, ยซะฃ ะบะฐะบะพะน ะฒะตั€ัะธะธ ัะตั€ะฒะธัะฐ ะฒะพะทะฝะธะบะฐัŽั‚ ัะฑะพะธ?ยป ะธ ั‚.ะฟ. ะ’ ะพะฑั‰ะตะผ, ะธะทัƒั‡ะธั‚ะต ะฒะพะทะผะพะถะฝะพัั‚ะธ Kiali ะฟะตั€ะตะด ั‚ะตะผ, ะบะฐะบ ะดะฒะธะณะฐั‚ัŒัั ะดะฐะปัŒัˆะต โ€” ะบ ะฒะธะทัƒะฐะปะธะทะฐั†ะธะธ ะผะตั‚ั€ะธะบ ั Grafana.

ะะฐะทะฐะด ะบ ะผะธะบั€ะพัะตั€ะฒะธัะฐะผ ะฒะผะตัั‚ะต ั Istio. ะงะฐัั‚ัŒ 1

Grafana: ะฒะธะทัƒะฐะปะธะทะฐั†ะธั ะผะตั‚ั€ะธะบ

ะกะพะฑั€ะฐะฝะฝั‹ะต ะฒ Istio ะผะตั‚ั€ะธะบะธ ะฟะพะฟะฐะดะฐัŽั‚ ะฒ Prometheus ะธ ะฒะธะทัƒะฐะปะธะทะธั€ัƒัŽั‚ัั ั Grafana. ะงั‚ะพะฑั‹ ะฟะพะฟะฐัั‚ัŒ ะฒ ะฐะดะผะธะฝะธัั‚ั€ะฐั‚ะธะฒะฝั‹ะน ะธะฝั‚ะตั€ั„ะตะนั Grafana, ะฒั‹ะฟะพะปะฝะธั‚ะต ะบะพะผะฐะฝะดัƒ ะฝะธะถะต, ะฟะพัะปะต ั‡ะตะณะพ ะพั‚ะบั€ะพะนั‚ะต http://localhost:3000/:

$ kubectl -n istio-system port-forward 
    $(kubectl -n istio-system get pod -l app=grafana 
    -o jsonpath={.items[0].metadata.name}) 3000

ะšะปะธะบะฝัƒะฒ ะฝะฐ ะผะตะฝัŽ Home ัะปะตะฒะฐ ัะฒะตั€ั…ัƒ ะธ ะฒั‹ะฑั€ะฐะฒ Istio Service Dashboard ะฒ ะปะตะฒะพะผ ะฒะตั€ั…ะฝะตะผ ัƒะณะปัƒ, ะฝะฐั‡ะฝะธั‚ะต ั ัะตั€ะฒะธัะฐ sa-web-app, ั‡ั‚ะพะฑั‹ ะฟะพัะผะพั‚ั€ะตั‚ัŒ ะฝะฐ ัะพะฑั€ะฐะฝะฝั‹ะต ะผะตั‚ั€ะธะบะธ:

ะะฐะทะฐะด ะบ ะผะธะบั€ะพัะตั€ะฒะธัะฐะผ ะฒะผะตัั‚ะต ั Istio. ะงะฐัั‚ัŒ 1

ะ—ะดะตััŒ ะฝะฐั ะถะดั‘ั‚ ะฟัƒัั‚ะพะต ะธ ัะพะฒะตั€ัˆะตะฝะฝะพ ัะบัƒั‡ะฝะพะต ะฟั€ะตะดัั‚ะฐะฒะปะตะฝะธะต โ€” ั€ัƒะบะพะฒะพะดัั‚ะฒะพ ะฝะธะบะพะณะดะฐ ั‚ะฐะบะพะต ะฝะต ะพะดะพะฑั€ะธั‚. ะ”ะฐะฒะฐะนั‚ะต ะถะต ัะพะทะดะฐะดะธะผ ะฝะตะฑะพะปัŒัˆัƒัŽ ะฝะฐะณั€ัƒะทะบัƒ ัะปะตะดัƒัŽั‰ะตะน ะบะพะผะฐะฝะดะพะน:

$ while true; do 
    curl -i http://$EXTERNAL_IP/sentiment 
    -H "Content-type: application/json" 
    -d '{"sentence": "I love yogobella"}'; 
    sleep .8; done

ะ’ะพั‚ ั‚ะตะฟะตั€ัŒ ัƒ ะฝะฐั ะณะพั€ะฐะทะดะพ ะฑะพะปะตะต ัะธะผะฟะฐั‚ะธั‡ะฝั‹ะต ะณั€ะฐั„ะธะบะธ, ะฐ ะฒ ะดะพะฟะพะปะฝะตะฝะธะต ะบ ะฝะธะผ โ€” ะทะฐะผะตั‡ะฐั‚ะตะปัŒะฝั‹ะต ะธะฝัั‚ั€ัƒะผะตะฝั‚ั‹ Prometheus ะดะปั ะผะพะฝะธั‚ะพั€ะธะฝะณะฐ ะธ Grafana ะดะปั ะฒะธะทัƒะฐะปะธะทะฐั†ะธะธ ะผะตั‚ั€ะธะบ, ั‡ั‚ะพ ะฟะพะทะฒะพะปัั‚ ะฝะฐะผ ัƒะทะฝะฐั‚ัŒ ะพ ะฟั€ะพะธะทะฒะพะดะธั‚ะตะปัŒะฝะพัั‚ะธ, ัะพัั‚ะพัะฝะธะธ ะทะดะพั€ะพะฒัŒั, ัƒะปัƒั‡ัˆะตะฝะธัั…/ะดะตะณั€ะฐะดะฐั†ะธะธ ะฒ ั€ะฐะฑะพั‚ะต ัะตั€ะฒะธัะพะฒ ะฝะฐ ะฟั€ะพั‚ัะถะตะฝะธะธ ะฒั€ะตะผะตะฝะธ.

ะะฐะบะพะฝะตั†, ะฟะพัะผะพั‚ั€ะธะผ ะฝะฐ ั‚ั€ะฐััะธั€ะพะฒะบัƒ ะทะฐะฟั€ะพัะพะฒ ะฒ ัะตั€ะฒะธัะฐั….

Jaegerโ€Š: ั‚ั€ะฐััะธั€ะพะฒะบะฐ

ะขั€ะฐััะธั€ะพะฒะบะฐ ะฝะฐะผ ะฟะพั‚ั€ะตะฑัƒะตั‚ัั, ะฟะพั‚ะพะผัƒ ั‡ั‚ะพ ั‡ะตะผ ะฑะพะปัŒัˆะต ัƒ ะฝะฐั ัะตั€ะฒะธัะพะฒ, ั‚ะตะผ ัะปะพะถะฝะตะต ะดะพะฑั€ะฐั‚ัŒัั ะดะพ ะฟั€ะธั‡ะธะฝั‹ ัะฑะพั. ะŸะพัะผะพั‚ั€ะธะผ ะฝะฐ ะฟั€ะพัั‚ะพะน ัะปัƒั‡ะฐะน ะธะท ะบะฐั€ั‚ะธะฝะบะธ ะฝะธะถะต:

ะะฐะทะฐะด ะบ ะผะธะบั€ะพัะตั€ะฒะธัะฐะผ ะฒะผะตัั‚ะต ั Istio. ะงะฐัั‚ัŒ 1
ะขะธะฟะพะฒะพะน ะฟั€ะธะผะตั€ ัะปัƒั‡ะฐะนะฝะพะณะพ ะฝะตัƒะดะฐั‡ะฝะพะณะพ ะทะฐะฟั€ะพัะฐ

ะ—ะฐะฟั€ะพั ะฟั€ะธั…ะพะดะธั‚, ะฟะฐะดะฐะตั‚ โ€” ะฒ ั‡ั‘ะผ ะถะต ะฟั€ะธั‡ะธะฝะฐ? ะŸะตั€ะฒั‹ะน ัะตั€ะฒะธั? ะ˜ะปะธ ะฒั‚ะพั€ะพะน? ะ˜ัะบะปัŽั‡ะตะฝะธั ะตัั‚ัŒ ะฒ ะพะฑะพะธั… โ€” ะดะฐะฒะฐะนั‚ะต ะฟะพัะผะพั‚ั€ะธะผ ะฝะฐ ะปะพะณะธ ะบะฐะถะดะพะณะพ. ะšะฐะบ ั‡ะฐัั‚ะพ ะฒั‹ ะปะพะฒะธะปะธ ัะตะฑั ะทะฐ ั‚ะฐะบะธะผ ะทะฐะฝัั‚ะธะตะผ? ะะฐัˆะฐ ั€ะฐะฑะพั‚ะฐ ะฑะพะปัŒัˆะต ะฟะพั…ะพะถะฐ ะฝะฐ ะดะตั‚ะตะบั‚ะธะฒะพะฒ ะฟั€ะพะณั€ะฐะผะผะฝะพะณะพ ะพะฑะตัะฟะตั‡ะตะฝะธั, ะฐ ะฝะต ั€ะฐะทั€ะฐะฑะพั‚ั‡ะธะบะพะฒโ€ฆ

ะญั‚ะพ ัˆะธั€ะพะบะพ ั€ะฐัะฟั€ะพัั‚ั€ะฐะฝั‘ะฝะฝะฐั ะฟั€ะพะฑะปะตะผะฐ ะฒ ะผะธะบั€ะพัะตั€ะฒะธัะฐั… ะธ ั€ะตัˆะฐะตั‚ัั ะพะฝะฐ ั€ะฐัะฟั€ะตะดะตะปั‘ะฝะฝั‹ะผะธ ัะธัั‚ะตะผะฐะผะธ ั‚ั€ะฐััะธั€ะพะฒะบะธ, ะฒ ะบะพั‚ะพั€ั‹ั… ัะตั€ะฒะธัั‹ ะฟะตั€ะตะดะฐัŽั‚ ะดั€ัƒะณ ะดั€ัƒะณัƒ ัƒะฝะธะบะฐะปัŒะฝั‹ะน ะทะฐะณะพะปะพะฒะพะบ, ะฟะพัะปะต ั‡ะตะณะพ ัั‚ะฐ ะธะฝั„ะพั€ะผะฐั†ะธั ะฟะตั€ะตะฝะฐะฟั€ะฐะฒะปัะตั‚ัั ะฒ ัะธัั‚ะตะผัƒ ั‚ั€ะฐััะธั€ะพะฒะบะธ, ะณะดะต ะพะฝะฐ ัะพะฟะพัั‚ะฐะฒะปัะตั‚ัั ั ะดะฐะฝะฝั‹ะผะธ ะทะฐะฟั€ะพัะฐ. ะ’ะพั‚ ะธะปะปัŽัั‚ั€ะฐั†ะธั:

ะะฐะทะฐะด ะบ ะผะธะบั€ะพัะตั€ะฒะธัะฐะผ ะฒะผะตัั‚ะต ั Istio. ะงะฐัั‚ัŒ 1
ะ”ะปั ะธะดะตะฝั‚ะธั„ะธะบะฐั†ะธะธ ะทะฐะฟั€ะพัะฐ ะธัะฟะพะปัŒะทัƒะตั‚ัั TraceId

ะ’ Istio ะธัะฟะพะปัŒะทัƒะตั‚ัั Jaeger Tracer, ะบะพั‚ะพั€ั‹ะน ั€ะตะฐะปะธะทัƒะตั‚ ะฝะตะทะฐะฒะธัะธะผั‹ะน ะพั‚ ะฒะตะฝะดะพั€ะพะฒ ั„ั€ะตะนะผะฒะพั€ะบ OpenTracing API. ะŸะพะปัƒั‡ะธั‚ัŒ ะดะพัั‚ัƒะฟ ะบ ะฟะพะปัŒะทะพะฒะฐั‚ะตะปัŒัะบะพะณะพ ะธะฝั‚ะตั€ั„ะตะนััƒ Jaeger ะผะพะถะฝะพ ัะปะตะดัƒัŽั‰ะตะน ะบะพะผะฐะฝะดะพะน:

$ kubectl port-forward -n istio-system 
    $(kubectl get pod -n istio-system -l app=jaeger 
    -o jsonpath='{.items[0].metadata.name}') 16686

ะขะตะฟะตั€ัŒ ะทะฐะนะดะธั‚ะต ะฝะฐ http://localhost:16686/ ะธ ะฒั‹ะฑะตั€ะธั‚ะต ัะตั€ะฒะธั sa-web-app. ะ•ัะปะธ ัะตั€ะฒะธั ะฝะต ะฟะพะบะฐะทะฐะฝ ะฒ ะฒั‹ะฟะฐะดะฐัŽั‰ะตะผ ะผะตะฝัŽ โ€” ะฟั€ะพัะฒะธั‚ะต/ัะณะตะฝะตั€ะธั€ัƒะนั‚ะต ะฐะบั‚ะธะฒะฝะพัั‚ัŒ ะฝะฐ ัั‚ั€ะฐะฝะธั†ะต ะธ ะพะฑะฝะพะฒะธั‚ะต ะธะฝั‚ะตั€ั„ะตะนั. ะŸะพัะปะต ัั‚ะพะณะพ ะฝะฐะถะผะธั‚ะต ะฝะฐ ะบะฝะพะฟะบัƒ Find Traces, ะบะพั‚ะพั€ะฐั ะฟะพะบะฐะถะตั‚ ัะฐะผั‹ะต ะฟะพัะปะตะดะฝะธะต ั‚ั€ะตะนัั‹ โ€” ะฒั‹ะฑะตั€ะธั‚ะต ะปัŽะฑะพะน โ€” ะฟะพะบะฐะถะตั‚ัั ะดะตั‚ะฐะปะธะทะธั€ะพะฒะฐะฝะฝะฐั ะธะฝั„ะพั€ะผะฐั†ะธั ะฟะพ ะฒัะตะผ ั‚ั€ะตะนัะฐะผ:

ะะฐะทะฐะด ะบ ะผะธะบั€ะพัะตั€ะฒะธัะฐะผ ะฒะผะตัั‚ะต ั Istio. ะงะฐัั‚ัŒ 1

ะญั‚ะพั‚ ั‚ั€ะตะนั ะฟะพะบะฐะทั‹ะฒะฐะตั‚:

  1. ะ—ะฐะฟั€ะพั ะฟั€ะธั…ะพะดะธั‚ ะฒ istio-ingressgateway (ัั‚ะพ ะฟะตั€ะฒะพะต ะฒะทะฐะธะผะพะดะตะนัั‚ะฒะธะต ั ะพะดะฝะธะผ ะธะท ัะตั€ะฒะธัะพะฒ, ะธ ะดะปั ะทะฐะฟั€ะพัะฐ ะณะตะฝะตั€ะธั€ัƒะตั‚ัั Trace ID), ะฟะพัะปะต ั‡ะตะณะพ ัˆะปัŽะท ะฝะฐะฟั€ะฐะฒะปัะตั‚ ะทะฐะฟั€ะพั ะฒ ัะตั€ะฒะธั sa-web-app.
  2. ะ’ ัะตั€ะฒะธัะต sa-web-app ะทะฐะฟั€ะพั ะฟะพะดั…ะฒะฐั‚ั‹ะฒะฐะตั‚ัั Envoy sidecar'ะพะผ, ัะพะทะดะฐั‘ั‚ัั ยซั€ะตะฑั‘ะฝะพะบยป ะฒ span'ะต (ะฟะพัั‚ะพะผัƒ ะผั‹ ะฒะธะดะธะผ ะตะณะพ ะฒ ั‚ั€ะตะนัะฐั…) ะธ ะฟะตั€ะตะฝะฐะฟั€ะฐะฒะปัะตั‚ัั ะฒ ะบะพะฝั‚ะตะนะฝะตั€ sa-web-app. (Span โ€” ะปะพะณะธั‡ะตัะบะฐั ะตะดะธะฝะธั†ะฐ ั€ะฐะฑะพั‚ั‹ ะฒ Jaeger, ะธะผะตัŽั‰ะฐั ะฝะฐะทะฒะฐะฝะธะต, ะฒั€ะตะผั ะฝะฐั‡ะฐะปะพ ะพะฟะตั€ะฐั†ะธะธ ะธ ะตั‘ ะฟั€ะพะดะพะปะถะธั‚ะตะปัŒะฝะพัั‚ัŒ. Span'ั‹ ะผะพะณัƒั‚ ะฑั‹ั‚ัŒ ะฒะปะพะถะตะฝะฝั‹ะผะธ ะธ ัƒะฟะพั€ัะดะพั‡ะตะฝะฝั‹ะผะธ. ะžั€ะธะตะฝั‚ะธั€ะพะฒะฐะฝะฝั‹ะน ะฐั†ะธะบะปะธั‡ะตัะบะธะน ะณั€ะฐั„ ะธะท span'ะพะฒ ะพะฑั€ะฐะทัƒะตั‚ trace. โ€” ะฟั€ะธะผ. ะฟะตั€ะตะฒ.)
  3. ะ—ะดะตััŒ ะทะฐะฟั€ะพั ะพะฑั€ะฐะฑะฐั‚ั‹ะฒะฐะตั‚ัั ะผะตั‚ะพะดะพะผ sentimentAnalysis. ะญั‚ะธ ั‚ั€ะตะนัั‹ ัƒะถะต ัะณะตะฝะตั€ะธั€ะพะฒะฐะฝั‹ ะฟั€ะธะปะพะถะตะฝะธะตะผ, ั‚.ะต. ะดะปั ะฝะธั… ะฟะพั‚ั€ะตะฑะพะฒะฐะปะธััŒ ะธะทะผะตะฝะตะฝะธั ะฒ ะบะพะดะต.
  4. ะก ัั‚ะพะณะพ ะผะพะผะตะฝั‚ะฐ ะธะฝะธั†ะธะธั€ัƒะตั‚ัั POST-ะทะฐะฟั€ะพั ะฒ sa-logic. Trace ID ะดะพะปะถะตะฝ ะฑั‹ั‚ัŒ ะฟั€ะพะฑั€ะพัˆะตะฝ ะธะท sa-web-app.
  5. โ€ฆ

ะŸั€ะธะผะตั‡ะฐะฝะธะต: ะะฐ 4 ัˆะฐะณะต ะฟั€ะธะปะพะถะตะฝะธะต ะดะพะปะถะฝะพ ัƒะฒะธะดะตั‚ัŒ ะทะฐะณะพะปะพะฒะบะธ, ัะณะตะฝะตั€ะธั€ะพะฒะฐะฝะฝั‹ะต Istio, ะธ ะฟะตั€ะตะดะฐั‚ัŒ ะธั… ะฒ ะฟะพัะปะตะดัƒัŽั‰ะธะต ะทะฐะฟั€ะพัั‹, ะบะฐะบ ะฟะพะบะฐะทะฐะฝะพ ะฝะฐ ะธะทะพะฑั€ะฐะถะตะฝะธะธ ะฝะธะถะต:

ะะฐะทะฐะด ะบ ะผะธะบั€ะพัะตั€ะฒะธัะฐะผ ะฒะผะตัั‚ะต ั Istio. ะงะฐัั‚ัŒ 1
(A) ะ—ะฐ ะฟั€ะพะฑั€ะพั ะทะฐะณะพะปะพะฒะบะพะฒ ะพั‚ะฒะตั‡ะฐะตั‚ Istio; (B) ะ—ะฐ ะทะฐะณะพะปะพะฒะบะธ ะพั‚ะฒะตั‡ะฐัŽั‚ ัะตั€ะฒะธัั‹

Istio ะดะตะปะฐะตั‚ ะพัะฝะพะฒะฝัƒัŽ ั€ะฐะฑะพั‚ัƒ, ั‚.ะบ. ะณะตะฝะตั€ะธั€ัƒะตั‚ ะทะฐะณะพะปะพะฒะบะธ ะดะปั ะฒั…ะพะดัั‰ะธั… ะทะฐะฟั€ะพัะพะฒ, ัะพะทะดะฐั‘ั‚ ะฝะพะฒั‹ะต span'ั‹ ะฒ ะบะฐะถะดะพะผ sidecare'ะต ะธ ะฟั€ะพะฑั€ะฐัั‹ะฒะฐะตั‚ ะธั…. ะžะดะฝะฐะบะพ ะฑะตะท ั€ะฐะฑะพั‚ั‹ ั ะทะฐะณะพะปะพะฒะบะฐะผะธ ะฒะฝัƒั‚ั€ะธ ัะตั€ะฒะธัะพะฒ ะฟะพะปะฝั‹ะน ะฟัƒั‚ัŒ ั‚ั€ะฐััะธั€ะพะฒะบะธ ะทะฐะฟั€ะพัะฐ ะฑัƒะดะตั‚ ัƒั‚ะตั€ัะฝ.

ะะตะพะฑั…ะพะดะธะผะพ ัƒั‡ะธั‚ั‹ะฒะฐั‚ัŒ (ะฟั€ะพะฑั€ะฐัั‹ะฒะฐั‚ัŒ) ัะปะตะดัƒัŽั‰ะธะต ะทะฐะณะพะปะพะฒะบะธ:

x-request-id
x-b3-traceid
x-b3-spanid
x-b3-parentspanid
x-b3-sampled
x-b3-flags
x-ot-span-context

ะญั‚ะพ ะฝะตัะปะพะถะฝะฐั ะทะฐะดะฐั‡ะฐ, ะพะดะฝะฐะบะพ ะดะปั ัƒะฟั€ะพั‰ะตะฝะธั ะตั‘ ั€ะตะฐะปะธะทะฐั†ะธะธ ัƒะถะต ััƒั‰ะตัั‚ะฒัƒะตั‚ ะผะฝะพะถะตัั‚ะฒะพ ะฑะธะฑะปะธะพั‚ะตะบ โ€” ะฝะฐะฟั€ะธะผะตั€, ะฒ ัะตั€ะฒะธัะต sa-web-app ะบะปะธะตะฝั‚ RestTemplate ะฟั€ะพะฑั€ะฐัั‹ะฒะฐะตั‚ ัั‚ะธ ะทะฐะณะพะปะพะฒะบะธ, ะตัะปะธ ะฟั€ะพัั‚ะพ ะดะพะฑะฐะฒะธั‚ัŒ ะฑะธะฑะปะธะพั‚ะตะบะธ Jaeger ะธ OpenTracing ะฒ ะตะณะพ ะทะฐะฒะธัะธะผะพัั‚ะธ.

ะ—ะฐะผะตั‚ัŒั‚ะต, ั‡ั‚ะพ ะฟั€ะธะปะพะถะตะฝะธะต Sentiment Analysis ะดะตะผะพะฝัั‚ั€ะธั€ัƒะตั‚ ั€ะตะฐะปะธะทะฐั†ะธะธ ะฝะฐ Flask, Spring ะธ ASP.NET Core.

ะขะตะฟะตั€ัŒ, ะบะพะณะดะฐ ัั‚ะฐะปะพ ััะฝะพ, ั‡ั‚ะพ ะผั‹ ะฟะพะปัƒั‡ะฐะตะผ ะธะท ะบะพั€ะพะฑะบะธ (ะธะปะธ ะฟะพั‡ั‚ะธ ยซะธะท ะบะพั€ะพะฑะบะธยป), ั€ะฐััะผะพั‚ั€ะธะผ ะฒะพะฟั€ะพัั‹ ั‚ะพะฝะบะพ ะฝะฐัั‚ั€ะฐะธะฒะฐะตะผะพะน ะผะฐั€ัˆั€ัƒั‚ะธะทะฐั†ะธะธ, ัƒะฟั€ะฐะฒะปะตะฝะธั ัะตั‚ะตะฒั‹ะผ ั‚ั€ะฐั„ะธะบะพะผ, ะฑะตะทะพะฟะฐัะฝะพัั‚ะธ ะธ ั‚.ะฟ.!

ะŸั€ะธะผ. ะฟะตั€ะตะฒ.: ะพะฑ ัั‚ะพะผ ั‡ะธั‚ะฐะนั‚ะต ะฒ ัะปะตะดัƒัŽั‰ะตะน ั‡ะฐัั‚ะธ ะผะฐั‚ะตั€ะธะฐะปะพะฒ ะฟะพ Istio ะพั‚ Rinor Maloku, ะฟะตั€ะตะฒะพะดั‹ ะบะพั‚ะพั€ั‹ั… ะฟะพัะปะตะดัƒัŽั‚ ะฒ ะฝะฐัˆะตะผ ะฑะปะพะณะต ะฒ ะฑะปะธะถะฐะนัˆะตะต ะฒั€ะตะผั. UPDATE (14 ะผะฐั€ั‚ะฐ): ะ’ั‚ะพั€ะฐั ั‡ะฐัั‚ัŒ ัƒะถะต ะพะฟัƒะฑะปะธะบะพะฒะฐะฝะฐ.

P.S. ะพั‚ ะฟะตั€ะตะฒะพะดั‡ะธะบะฐ

ะงะธั‚ะฐะนั‚ะต ั‚ะฐะบะถะต ะฒ ะฝะฐัˆะตะผ ะฑะปะพะณะต:

ะ˜ัั‚ะพั‡ะฝะธะบ: habr.com

route:
- destination:
host: sa-frontend # 2
port:
number: 80

เบˆเบธเบ” เบชเบณ เบ„เบฑเบ™:

  1. VirtualService เบ™เบตเป‰เบซเบกเบฒเบเป€เบ–เบดเบ‡เบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเบ—เบตเปˆเป€เบ‚เบปเป‰เบฒเบกเบฒ http-gateway;
  2. ะ’ destination เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบ—เบตเปˆเบˆเบฐเบชเบปเปˆเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เปเปเบกเปˆเบ™เบ–เบทเบเบเปเบฒเบ™เบปเบ”.

ะŸั€ะธะผะตั‡ะฐะฝะธะต: เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡เปเบกเปˆเบ™เป€เบเบฑเบšเป„เบงเป‰เปƒเบ™เป„เบŸเบฅเปŒ sa-virtualservice-external.yaml, เป€เบŠเบดเปˆเบ‡เบเบฑเบ‡เบกเบตเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบชเปเบฒเบฅเบฑเบšเป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เปƒเบ™ SA-WebApp เปเบฅเบฐ SA-Feedback, เปเบ•เปˆเป„เบ”เป‰เบ–เบทเบเบซเบเปเป‰เบขเบนเปˆเบ—เบตเปˆเบ™เบตเป‰เปƒเบ™เบšเบปเบ”เบ„เบงเบฒเบกเบชเปเบฒเบฅเบฑเบšเบ„เบงเบฒเบกเบซเบเปเป‰.

เบกเบฒเบชเบฐเปเบฑเบ VirtualService เป‚เบ”เบเบเบฒเบ™เป‚เบ—เบซเบฒ:


ะŸั€ะธะผะตั‡ะฐะฝะธะต: เป€เบกเบทเปˆเบญเบžเบงเบเป€เบฎเบปเบฒเบšเปเบฅเบดเป‚เบžเบเบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™ Istio, Kubernetes API Server เบชเป‰เบฒเบ‡เป€เบซเบ”เบเบฒเบ™เบ—เบตเปˆเป„เบ”เป‰เบฎเบฑเบšเป‚เบ”เบ Istio Control Plane, เปเบฅเบฐเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเปƒเบซเบกเปˆเปเบกเปˆเบ™เปƒเบŠเป‰เบเบฑเบšเบ•เบปเบงเปเบ—เบ™เบ‚เบญเบ‡เปเบ•เปˆเบฅเบฐ pod's Envoy proxies. เปเบฅเบฐเบ•เบปเบงเบ„เบงเบšเบ„เบธเบก Ingress Gateway เบ›เบฐเบเบปเบ”เบงเปˆเบฒเป€เบ›เบฑเบ™ Envoy เบญเบทเปˆเบ™เบ—เบตเปˆเบ–เบทเบเบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบขเบนเปˆเปƒเบ™เบเบปเบ™เบ„เบงเบšเบ„เบธเบก. เบ—เบฑเบ‡เปเบปเบ”เบ™เบตเป‰เป€เบšเบดเปˆเบ‡เบ„เบทเปƒเบ™เปเบœเบ™เบงเบฒเบ”:

เบเบฑเบšเป„เบ›เบซเบฒเบšเปเบฅเบดเบเบฒเบ™เบˆเบธเบฅเบฐเบžเบฒเบเบเบฑเบš Istio. เบžเบฒเบเบ—เบต 1
เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ Istio-IngressGateway เบชเปเบฒเบฅเบฑเบšเป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เป

เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐเบ„เบงเบฒเบกเบฎเบนเป‰เบชเบถเบเปเบกเปˆเบ™เบกเบตเบขเบนเปˆเปƒเบ™ http://{EXTERNAL-IP}/. เบขเปˆเบฒเบเบฑเบ‡เบงเบปเบ™เบ–เป‰เบฒเบ—เปˆเบฒเบ™เป„เบ”เป‰เบฎเบฑเบšเบชเบฐเบ–เบฒเบ™เบฐเบšเปเปˆเบžเบปเบš: เบšเบฒเบ‡เบ„เบฑเป‰เบ‡เบกเบฑเบ™เปƒเบŠเป‰เป€เบงเบฅเบฒเบ”เบปเบ™เบเบงเปˆเบฒเป€เบฅเบฑเบเบ™เป‰เบญเบเป€เบžเบทเปˆเบญเปƒเบซเป‰เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบกเบตเบœเบปเบ™ เปเบฅเบฐ Envoy cache เป€เบžเบทเปˆเบญเบญเบฑเบšเป€เบ”เบ”.

เบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™, เบซเบผเบดเป‰เบ™เบเบฑเบš app เป€เบฅเบฑเบเบ™เป‰เบญเบเป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡เบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™. (เบเบฒเบ™เบ›เบฐเบเบปเบ”เบ•เบปเบงเบ‚เบญเบ‡เบกเบฑเบ™เป€เบ›เบฑเบ™เบชเบดเปˆเบ‡เบˆเปเบฒเป€เบ›เบฑเบ™เป€เบžเบทเปˆเบญเบ„เบงเบฒเบกเบŠเบฑเบ”เป€เบˆเบ™เปƒเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เปเปˆเป„เบ› - เบ›เบฐเบกเบฒเบ™ transl.).

Kiali: เบเบฒเบ™เบชเบฑเบ‡เป€เบเบ”เบเบฒเบ™

เป€เบžเบทเปˆเบญเป€เบ‚เบปเป‰เบฒเบซเบฒเบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเบเบฒเบ™เบšเปเบฅเบดเบซเบฒเบ™ Kiali, เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡เบ•เปเปˆเป„เบ›เบ™เบตเป‰:


... เปเบฅเบฐเป€เบ›เบตเบ” http://localhost:20001/, เป€เบ‚เบปเป‰เบฒเบชเบนเปˆเบฅเบฐเบšเบปเบšเป€เบ›เบฑเบ™ admin/admin. เบ—เบตเปˆเบ™เบตเป‰เป€เบˆเบปเป‰เบฒเบˆเบฐเบžเบปเบšเป€เบซเบฑเบ™เบซเบผเบฒเบเบฅเบฑเบเบชเบฐเบ™เบฐเบ—เบตเปˆเป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”, เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบเบปเบเบ•เบปเบงเบขเปˆเบฒเบ‡, เบเบฒเบ™เบเบงเบ”เบชเบญเบšเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ‚เบญเบ‡เบญเบปเบ‡เบ›เบฐเบเบญเบš Istio, เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบžเบฒเบšเบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เป‚เบ”เบเบ™เปเบฒเปƒเบŠเป‰เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเป€เบเบฑเบšเบเปเบฒเบˆเบฒเบเบเบฒเบ™เบ‚เบฑเบ”เบ‚เบงเบฒเบ‡เบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเป€เบ„เบทเบญเบ‚เปˆเบฒเบ, เป„เบ”เป‰เบฎเบฑเบšเบ„เปเบฒเบ•เบญเบšเบ•เปเปˆเบ„เปเบฒเบ–เบฒเบก "เบœเบนเป‰เบ—เบตเปˆเบเปเบฒเบฅเบฑเบ‡เบ•เบดเบ”เบ•เปเปˆเบเบฑเบšเปƒเบœ?", "เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบชเบฐเบšเบฑเบšเปƒเบ”เบเปเบฒเบฅเบฑเบ‡เบ›เบฐเบชเบปเบš. เบ„เบงเบฒเบกเบฅเบปเป‰เบกเป€เบซเบผเบง?โ€ เปเบฅเบฐเบญเบทเปˆเบ™เป†. เป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›เปเบฅเป‰เบง, เบชเบณเบซเบผเบงเบ”เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เบ‚เบญเบ‡ Kiali เบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเบเป‰เบฒเบงเป„เบ›เบชเบนเปˆเบเบฒเบ™เป€เบšเบดเปˆเบ‡เป€เบซเบฑเบ™เบ•เบปเบงเบŠเบตเป‰เบงเบฑเบ”เบ”เป‰เบงเบ Grafana.

เบเบฑเบšเป„เบ›เบซเบฒเบšเปเบฅเบดเบเบฒเบ™เบˆเบธเบฅเบฐเบžเบฒเบเบเบฑเบš Istio. เบžเบฒเบเบ—เบต 1

Grafana: เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบžเบฒเบšเปเบšเบšเบงเบฑเบ”เปเบ—เบ

เบเบฒเบ™เบงเบฑเบ”เปเบ—เบเบ—เบตเปˆเป€เบเบฑเบšเบเปเบฒเปƒเบ™ Istio เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™ Prometheus เปเบฅเบฐเบ–เบทเบเป€เบšเบดเปˆเบ‡เป€เบซเบฑเบ™เบ”เป‰เบงเบ Grafana. เป€เบžเบทเปˆเบญเป€เบ‚เบปเป‰เบฒเบซเบฒเบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเบเบฒเบ™เบšเปเบฅเบดเบซเบฒเบ™ Grafana, เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡เบ‚เป‰เบฒเบ‡เบฅเบธเปˆเบกเบ™เบตเป‰เปเบฅเบฐเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เป€เบ›เบตเบ” http://localhost:3000/:


เบเบฒเบ™เบ„เบฅเบดเบเปƒเบชเปˆเป€เบกเบ™เบน เบซเบ™เป‰เบฒเบ—เปเบฒเบญเบดเบ” เป€เบ—เบดเบ‡เบŠเป‰เบฒเบเปเบฅเบฐเป€เบฅเบทเบญเบ Istio เบšเปเบฅเบดเบเบฒเบ™ Dashboard เปƒเบ™เบกเบธเบกเบŠเป‰เบฒเบเป€เบ—เบดเบ‡, เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ”เป‰เบงเบเบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™ sa-web-appเป€เบžเบทเปˆเบญเป€เบšเบดเปˆเบ‡เบเบฒเบ™เบงเบฑเบ”เปเบ—เบเบ—เบตเปˆเป€เบเบฑเบšเบเปเบฒ:

เบเบฑเบšเป„เบ›เบซเบฒเบšเปเบฅเบดเบเบฒเบ™เบˆเบธเบฅเบฐเบžเบฒเบเบเบฑเบš Istio. เบžเบฒเบเบ—เบต 1

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


เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบžเบงเบเป€เบฎเบปเบฒเบกเบตเบเบฒเบŸเบ—เบตเปˆเบ‡เบฒเบกเบเบงเปˆเบฒเบซเบผเบฒเบ, เปเบฅเบฐเบ™เบญเบเป€เบซเบ™เบทเบญเบˆเบฒเบเบžเบงเบเบกเบฑเบ™, เป€เบ„เบทเปˆเบญเบ‡เบกเบท Prometheus เบ—เบตเปˆเบ”เบตเป€เบฅเบตเบ”เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบกเบเบงเบ”เบเบฒเปเบฅเบฐ Grafana เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบšเบดเปˆเบ‡เป€เบซเบฑเบ™ metrics เบ—เบตเปˆเบˆเบฐเบŠเปˆเบงเบเปƒเบซเป‰เบžเบงเบเป€เบฎเบปเบฒเบฎเบฝเบ™เบฎเบนเป‰เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”, เบชเบธเบ‚เบฐเบžเบฒเบš, เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡ / เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบŠเบกเปƒเบ™เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เปƒเบ™เป„เบฅเบเบฐเป€เบงเบฅเบฒ.

เบชเบธเบ”เบ—เป‰เบฒเบ, เปƒเบซเป‰เป€เบšเบดเปˆเบ‡เบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบกเปƒเบ™เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™.

Jaeger: เบ•เบดเบ”เบ•เบฒเบก

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

เบเบฑเบšเป„เบ›เบซเบฒเบšเปเบฅเบดเบเบฒเบ™เบˆเบธเบฅเบฐเบžเบฒเบเบเบฑเบš Istio. เบžเบฒเบเบ—เบต 1
เบ•เบปเบงเบขเปˆเบฒเบ‡เบ—เบปเปˆเบงเป„เบ›เบ‚เบญเบ‡เบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเบ—เบตเปˆเบฅเบปเป‰เบกเป€เบซเบฅเบงเปเบšเบšเบชเบธเปˆเบก

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

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

เบเบฑเบšเป„เบ›เบซเบฒเบšเปเบฅเบดเบเบฒเบ™เบˆเบธเบฅเบฐเบžเบฒเบเบเบฑเบš Istio. เบžเบฒเบเบ—เบต 1
TraceId เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เป

Istio เปƒเบŠเป‰ Jaeger Tracer, เป€เบŠเบดเปˆเบ‡เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบญเบš OpenTracing API เบ‚เบญเบ‡เบœเบนเป‰เบ‚เบฒเบเป€เบญเบเบฐเบฅเบฒเบ”. เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบชเปˆเบงเบ™เบ•เบดเบ”เบ•เปเปˆเบœเบนเป‰เปƒเบŠเป‰ Jaeger เบ”เป‰เบงเบเบ„เปเบฒเบชเบฑเปˆเบ‡เบ•เปเปˆเป„เบ›เบ™เบตเป‰:


เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เป„เบ› http://localhost:16686/ เปเบฅเบฐเป€เบฅเบทเบญเบเบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™ sa-web-app. เบ–เป‰เบฒเบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบšเปเปˆเบชเบฐเปเบ”เบ‡เบขเบนเปˆเปƒเบ™เป€เบกเบ™เบนเป€เบฅเบทเปˆเบญเบ™เบฅเบปเบ‡, เบชเบฐเปเบ”เบ‡ / เบชเป‰เบฒเบ‡เบเบดเบ”เบˆเบฐเบเปเบฒเปƒเบ™เบซเบ™เป‰เบฒเปเบฅเบฐเบ›เบฑเบšเบ›เบธเบ‡เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบš. เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™, เปƒเบซเป‰เบ„เบฅเบดเบเปƒเบชเปˆเบ›เบธเปˆเบก เบŠเบญเบเบซเบฒเบฎเปˆเบญเบ‡เบฎเบญเบ, เป€เบŠเบดเปˆเบ‡เบˆเบฐเบชเบฐเปเบ”เบ‡เบฎเปˆเบญเบ‡เบฎเบญเบเบซเบฅเป‰เบฒเบชเบธเบ” - เป€เบฅเบทเบญเบเปƒเบ”เป† - เบ‚เปเป‰เบกเบนเบ™เบฅเบฒเบเบฅเบฐเบญเบฝเบ”เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบกเบ—เบฑเบ‡เบซเบกเบปเบ”เบˆเบฐเบ›เบฒเบเบปเบ”:

เบเบฑเบšเป„เบ›เบซเบฒเบšเปเบฅเบดเบเบฒเบ™เบˆเบธเบฅเบฐเบžเบฒเบเบเบฑเบš Istio. เบžเบฒเบเบ—เบต 1

เบฎเปˆเบญเบ‡เบฎเบญเบเบ™เบตเป‰เบชเบฐเปเบ”เบ‡เปƒเบซเป‰เป€เบซเบฑเบ™:

  1. เบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเป€เบ‚เบปเป‰เบฒเบกเบฒ istio-ingressgateway (เบ™เบตเป‰โ€‹เปเบกเปˆเบ™โ€‹เบเบฒเบ™โ€‹เป‚เบ•เป‰โ€‹เบ•เบญเบšโ€‹เบ„เบฑเป‰เบ‡โ€‹เบ—เปเบฒโ€‹เบญเบดเบ”โ€‹เบเบฑเบšโ€‹เบซเบ™เบถเปˆเบ‡โ€‹เบ‚เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบšเปโ€‹เบฅเบดโ€‹เบเบฒเบ™โ€‹, เปเบฅเบฐ ID เบเบฒเบ™โ€‹เบ•เบดเบ”โ€‹เบ•เบฒเบกโ€‹เบ–เบทเบโ€‹เบชเป‰เบฒเบ‡โ€‹เบ‚เบถเป‰เบ™โ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบ„เปเบฒโ€‹เบฎเป‰เบญเบ‡โ€‹เบชเบฐโ€‹เบซเบกเบฑเบโ€‹)โ€‹, เบซเบผเบฑเบ‡โ€‹เบˆเบฒเบโ€‹เบ™เบฑเป‰เบ™โ€‹เบ›เบฐโ€‹เบ•เบนโ€‹เบชเบปเปˆเบ‡โ€‹เบ„เปเบฒโ€‹เบฎเป‰เบญเบ‡โ€‹เบชเบฐโ€‹เบซเบกเบฑเบโ€‹เบเบฑเบšโ€‹เบเบฒเบ™โ€‹เบšเปโ€‹เบฅเบดโ€‹เบเบฒเบ™ sa-web-app.
  2. เปƒเบ™เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™ sa-web-app เบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเปเบกเปˆเบ™เป„เบ”เป‰เบฎเบฑเบšเป‚เบ”เบ Envoy sidecar, "เป€เบ”เบฑเบเบ™เป‰เบญเบ" เป„เบ”เป‰เบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบทเป‰เบ™เปƒเบ™เป„เบฅเบเบฐ (เบ™เบฑเป‰เบ™เปเบกเปˆเบ™เป€เบซเบ”เบœเบปเบ™เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเป€เบซเบฑเบ™เบกเบฑเบ™เบขเบนเปˆเปƒเบ™เบฎเปˆเบญเบ‡เบฎเบญเบ) เปเบฅเบฐเบ›เปˆเบฝเบ™เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เป„เบ›เบซเบฒเบ•เบนเป‰เบ„เบญเบ™เป€เบ—เบ™เป€เบ™เบต. sa-web-app. (span - เบซเบ™เปˆเบงเบเบ‡เบฒเบ™เบ—เบตเปˆเบกเบตเป€เบซเบ”เบœเบปเบ™เปƒเบ™ Jaeger, เป€เบŠเบดเปˆเบ‡เบกเบตเบŠเบทเปˆ, เป€เบงเบฅเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เปเบฅเบฐเป„เบฅเบเบฐเป€เบงเบฅเบฒเบ‚เบญเบ‡เบกเบฑเบ™. Spans เบชเบฒเบกเบฒเบ”เบ–เบทเบเบฎเบฑเบ‡เปเบฅเบฐเบชเบฑเปˆเบ‡. เป€เบชเบฑเป‰เบ™เบเบฃเบฒเบš acyclic เบŠเบตเป‰เบšเบญเบเบ‚เบญเบ‡ spans เบ›เบฐเบเบญเบšเป€เบ›เบฑเบ™เบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบก. โ€” เบ›เบฐโ€‹เบกเบฒเบ™โ€‹. เปเบ›.)
  3. เบ—เบตเปˆเบ™เบตเป‰เบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เปเบ–เบทเบเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เป‚เบ”เบเบงเบดเบ—เบตเบเบฒเบ™ เบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐเบ„เบงเบฒเบกเบฎเบนเป‰เบชเบถเบ. เบฎเปˆเบญเบ‡เบฎเบญเบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบทเป‰เบ™เปเบฅเป‰เบงเป‚เบ”เบเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™, i.e. เบžเบงเบเป€เบ‚เบปเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบฅเบฐเบซเบฑเบ”.
  4. เบ•เบฑเป‰เบ‡เปเบ•เปˆเบ™เบตเป‰เป€เบ›เบฑเบ™เบ•เบปเป‰เบ™เป„เบ›, เบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เป POST เปเบกเปˆเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปƒเบ™ เป€เบซเบ”เบœเบปเบ™. ID เบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบกเบ•เป‰เบญเบ‡เบ–เบทเบเบชเบปเปˆเบ‡เบ•เปเปˆเบˆเบฒเบ sa-web-app.
  5. ...

ะŸั€ะธะผะตั‡ะฐะฝะธะต: เปƒเบ™เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ—เบต 4, เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เบ„เบงเบ™เป€เบšเบดเปˆเบ‡ headers เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เป‚เบ”เบ Istio เปเบฅเบฐเบชเบปเปˆเบ‡เปƒเบซเป‰เบžเบงเบเป€เบ‚เบปเบฒเป„เบ›เบซเบฒเบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เปเบ•เปเปˆเป„เบ›เบ”เบฑเปˆเบ‡เบ—เบตเปˆเบชเบฐเปเบ”เบ‡เบขเบนเปˆเปƒเบ™เบฎเบนเบšเบ‚เป‰เบฒเบ‡เบฅเบธเปˆเบกเบ™เบตเป‰:

เบเบฑเบšเป„เบ›เบซเบฒเบšเปเบฅเบดเบเบฒเบ™เบˆเบธเบฅเบฐเบžเบฒเบเบเบฑเบš Istio. เบžเบฒเบเบ—เบต 1
(A) Istio เบฎเบฑเบšเบœเบดเบ”เบŠเบญเบšเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบชเบปเปˆเบ‡เบ•เปเปˆ headers; (B) เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เปเบกเปˆเบ™เบฎเบฑเบšเบœเบดเบ”เบŠเบญเบšเบชเปเบฒเบฅเบฑเบšเบซเบปเบง

Istio เป€เบฎเบฑเบ”เบงเบฝเบเบชเปˆเบงเบ™เปƒเบซเบเปˆเป€เบžเบฒเบฐเบงเปˆเบฒ ... เบชเป‰เบฒเบ‡เบชเปˆเบงเบ™เบซเบปเบงเบชเปเบฒเบฅเบฑเบšเบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เปเบ—เบตเปˆเป€เบ‚เบปเป‰เบฒเบกเบฒ, เบชเป‰เบฒเบ‡ spans เปƒเบซเบกเปˆเปƒเบ™เปเบ•เปˆเบฅเบฐ sidecare เปเบฅเบฐเบชเบปเปˆเบ‡เบ•เปเปˆเปƒเบซเป‰เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒ. เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบš headers เบžเบฒเบเปƒเบ™เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™, เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบกเบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เปเบขเปˆเบฒเบ‡เป€เบ•เบฑเบกเบ—เบตเปˆเบˆเบฐเบชเบนเบ™เป€เบชเบเป„เบ›.

เบซเบปเบงเบ‚เปเป‰เบ•เปเปˆเป„เบ›เบ™เบตเป‰เบ•เป‰เบญเบ‡เบ–เบทเบเบžเบดเบˆเบฒเบฅเบฐเบ™เบฒ:


เบ™เบตเป‰โ€‹เบšเปเปˆโ€‹เปเบกเปˆเบ™โ€‹เป€เบ›เบฑเบ™โ€‹เบงเบฝเบโ€‹เบ‡เบฒเบ™โ€‹เบ—เบตเปˆโ€‹เบกเบตโ€‹เบ„เบงเบฒเบกโ€‹เบซเบเบธเป‰เบ‡โ€‹เบเบฒเบโ€‹, เปเบ•เปˆโ€‹เป€เบžเบทเปˆเบญโ€‹เบ‡เปˆเบฒเบโ€‹เบเบฒเบ™โ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹เบ‚เบญเบ‡โ€‹เบ•เบปเบ™โ€‹เบกเบตโ€‹เบขเบนเปˆโ€‹เปเบฅเป‰เบงโ€‹ เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบˆเปเบฒเบ™เบงเบ™เบซเบผเบฒเบ - เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบเบปเบเบ•เบปเบงเบขเปˆเบฒเบ‡, เปƒเบ™เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™ sa-web-app, เบฅเบนเบเบ„เป‰เบฒ RestTemplate เบชเบปเปˆเบ‡เบ•เปเปˆเบซเบปเบงเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒเบ—เปˆเบฒเบ™เบžเบฝเบ‡เปเบ•เปˆเป€เบžเบตเปˆเบกเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ” Jaeger เปเบฅเบฐ OpenTracing เบเบฑเบš เบชเบดเปˆเบ‡เป€เบชเบšเบ•เบดเบ”เบ‚เบญเบ‡เบฅเบฒเบง.

เปƒเบซเป‰เบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐเบ„เบงเบฒเบกเบฎเบนเป‰เบชเบถเบเบชเบฐเปเบ”เบ‡เปƒเบซเป‰เป€เบซเบฑเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เปƒเบ™ Flask, Spring, เปเบฅเบฐ ASP.NET Core.

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

เบซเบกเบฒเบโ€‹เป€เบซเบ”โ€‹. เปเบ›.: เบญเปˆเบฒเบ™เบเปˆเบฝเบงเบเบฑเบšเป€เบฅเบทเปˆเบญเบ‡เบ™เบตเป‰เปƒเบ™เบชเปˆเบงเบ™เบ•เปเปˆเป„เบ›เบ‚เบญเบ‡เป€เบญเบเบฐเบชเบฒเบ™เบเปˆเบฝเบงเบเบฑเบš Istio เบˆเบฒเบ Rinor Maloku, เบเบฒเบ™เปเบ›เบžเบฒเบชเบฒเบ—เบตเปˆเบˆเบฐเบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบฒเบกเปƒเบ™ blog เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเปƒเบ™เบญเบฐเบ™เบฒเบ„เบปเบ”เบญเบฑเบ™เปƒเบเป‰เบ™เบตเป‰. UPDATE (เบงเบฑเบ™เบ—เบต 14 เบกเบตเบ™เบฒ): เบชเปˆเบงเบ™เบ—เบตเบชเบญเบ‡ เป„เบ”เป‰เบ–เบทเบเป€เบœเบตเบเปเบœเปˆเปเบฅเป‰เบง.

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

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

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