Istio เปเบฅเบฐ Kubernetes เปƒเบ™เบเบฒเบ™เบœเบฐเบฅเบดเบ”. เบชเปˆเบงเบ™เบ—เบต 2. เบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบก

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

Istio เปเบฅเบฐ Kubernetes เปƒเบ™เบเบฒเบ™เบœเบฐเบฅเบดเบ”. เบชเปˆเบงเบ™เบ—เบต 2. เบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบก

เบชเบดเปˆเบ‡เบ—เปเบฒเบญเบดเบ”เบ—เบตเปˆเป€เบเบตเบ”เบ‚เบทเป‰เบ™เปƒเบ™เปƒเบˆเบชเปเบฒเบฅเบฑเบšเบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเปเบฅเบฐเบœเบนเป‰เบšเปเบฅเบดเบซเบฒเบ™เบฅเบฐเบšเบปเบšเบˆเปเบฒเบ™เบงเบ™เบซเบผเบฒเบเป€เบกเบทเปˆเบญเบžเบงเบเป€เบ‚เบปเบฒเป„เบ”เป‰เบเบดเบ™เบ„เปเบฒเบงเปˆเบฒ Service Mesh เปเบกเปˆเบ™เบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบก. เปเบ—เป‰เบˆเบดเบ‡เปเบฅเป‰เบง, เบžเบงเบเป€เบฎเบปเบฒเป€เบžเบตเปˆเบกเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ•เบปเบงเปเบ—เบ™เบžเบดเป€เบชเบ”เปƒเบซเป‰เบเบฑเบšเปเบ•เปˆเบฅเบฐ node เป€เบ„เบทเบญเบ‚เปˆเบฒเบเบ—เบตเปˆเบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™ TCP เบ—เบฑเบ‡เบซเบกเบปเบ”เบœเปˆเบฒเบ™. เบกเบฑเบ™เป€เบšเบดเปˆเบ‡เบ„เบทเบงเปˆเบฒเปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเบชเบปเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเบ‚เบญเบ‡เป€เบ„เบทเบญเบ‚เปˆเบฒเบเบ—เบฑเบ‡เบซเบกเบปเบ”เปƒเบ™เป€เบ„เบทเบญเบ‚เปˆเบฒเบเป„เบ”เป‰เบขเปˆเบฒเบ‡เบ‡เปˆเบฒเบเบ”เบฒเบ. เปเบ•เปˆเบซเบ™เป‰เบฒเป€เบชเบเบ”เบฒเบ, เปƒเบ™เบ„เบงเบฒเบกเป€เบ›เบฑเบ™เบˆเบดเบ‡, เบกเบตเบซเบผเบฒเบ nuances เบ—เบตเปˆเบ•เป‰เบญเบ‡เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบžเบดเบˆเบฒเบฅเบฐเบ™เบฒ. เบ‚เปเปƒเบซเป‰เป€เบšเบดเปˆเบ‡เบžเบงเบเป€เบ‚เบปเบฒ.

เบ„เบงเบฒเบกเป€เบ‚เบปเป‰เบฒเปƒเบˆเบœเบดเบ”เบญเบฑเบ™เบ”เบฑเบšเบซเบ™เบถเปˆเบ‡: เบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เป„เบ”เป‰เบฎเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบเบฒเบ™เบเปˆเบฒเบ‡เบ›เปˆเบฒเบญเบญเบ™เป„เบฅเบ™เปŒเป„เบ”เป‰เบŸเบฃเบต.

เปƒเบ™เบ„เบงเบฒเบกเป€เบ›เบฑเบ™เบˆเบดเบ‡, เบชเปเบฒเบฅเบฑเบšเบ‚เป‰เบญเบ™เบ‚เป‰เบฒเบ‡เบšเปเปˆเป€เบชเบเบ„เปˆเบฒ, เบžเบงเบเป€เบฎเบปเบฒเบžเบฝเบ‡เปเบ•เปˆเบชเบฒเบกเบฒเบ”เป„เบ”เป‰เบฎเบฑเบš nodes เบ‚เบญเบ‡เบฅเบฐเบšเบปเบšเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเป‚เบ”เบเบฅเบนเบเบชเบญเบ™เปเบฅเบฐเบญเบฑเบ”เบ•เบฒเบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบœเปˆเบฒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™ (เปƒเบ™เบ„เบงเบฒเบกเป€เบ›เบฑเบ™เบˆเบดเบ‡, เบžเบฝเบ‡เปเบ•เปˆเบˆเปเบฒเบ™เบงเบ™เบ‚เบญเบ‡ bytes เบ•เปเปˆเบซเบ™เปˆเบงเบเบ‚เบญเบ‡เป€เบงเบฅเบฒ). เบขเปˆเบฒเบ‡เปƒเบ”เบเปเปˆเบ•เบฒเบก, เปƒเบ™เบเปเบฅเบฐเบ™เบตเบซเบผเบฒเบเบ—เบตเปˆเบชเบธเบ”, เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเบ•เบดเบ”เบ•เปเปˆเบชเบทเปˆเบชเบฒเบ™เบœเปˆเบฒเบ™เบšเบฒเบ‡เบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เป‚เบ›เป‚เบ•เบ„เบญเบ™เบŠเบฑเป‰เบ™เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ, เป€เบŠเบฑเปˆเบ™ HTTP, gRPC, Redis, เปเบฅเบฐเบญเบทเปˆเบ™เป†. เปเบฅเบฐ, เปเบ™เปˆเบ™เบญเบ™, เบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™เป€เบšเบดเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™เบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบกเป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐเบชเปเบฒเบฅเบฑเบšเป‚เบ›เป‚เบ•เบ„เบญเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰; เบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™เป€เบšเบดเปˆเบ‡เบญเบฑเบ”เบ•เบฒเบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เป, เบšเปเปˆเปเบกเปˆเบ™เบญเบฑเบ”เบ•เบฒเบ‚เปเป‰เบกเบนเบ™. เบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเปƒเบˆเบ„เบงเบฒเบกเบฅเปˆเบฒเบŠเป‰เบฒเบ‚เบญเบ‡เบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเป‚เบ”เบเปƒเบŠเป‰เป‚เบ›เป‚เบ•เบ„เบญเบ™เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ. เบชเบธเบ”เบ—เป‰เบฒเบ, เบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™เป€เบšเบดเปˆเบ‡เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เป€เบ•เบฑเบกเบ—เบตเปˆเบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เปเปƒเบŠเป‰เป€เบงเบฅเบฒเบˆเบฒเบเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบชเบนเปˆเบฅเบฐเบšเบปเบšเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเป€เบžเบทเปˆเบญเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบ•เบญเบšเบชเบฐเบซเบ™เบญเบ‡เบˆเบฒเบเบœเบนเป‰เปƒเบŠเป‰. เบšเบฑเบ™เบซเบฒเบ™เบตเป‰เปเบกเปˆเบ™เบšเปเปˆเบ‡เปˆเบฒเบเบซเบผเบฒเบเบ—เบตเปˆเบˆเบฐเปเบเป‰เป„เบ‚.

เบ—เปเบฒเบญเบดเบ”, เปƒเบซเป‰เป€เบšเบดเปˆเบ‡เบชเบดเปˆเบ‡เบ—เบตเปˆเบเบฒเบ™เบชเบปเปˆเบ‡ tracing spans เป€เบšเบดเปˆเบ‡เบ„เบทเบงเปˆเบฒเบˆเบฒเบเบกเบธเบกเป€เบšเบดเปˆเบ‡เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเปƒเบ™ Istio. เบ”เบฑเปˆเบ‡เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบˆเบทเปˆเบˆเบฒเบเบžเบฒเบเบชเปˆเบงเบ™เบ—เปเบฒเบญเบดเบ”, Istio เบกเบตเบญเบปเบ‡เบ›เบฐเบเบญเบšเปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบเบ—เบตเปˆเป€เบญเบตเป‰เบ™เบงเปˆเบฒ Mixer เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบเบฑเบšเบเปเบฒ telemetry. เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เปƒเบ™เบชเบฐเบšเบฑเบšเบ›เบฐเบˆเบธเบšเบฑเบ™ 1.0.*, เบเบฒเบ™เบชเบปเปˆเบ‡เปเบกเปˆเบ™เป€เบฎเบฑเบ”เป„เบ”เป‰เป‚เบ”เบเบเบปเบ‡เบˆเบฒเบเป€เบŠเบตเบšเป€เบงเบตเบžเบฃเบฑเบญเบเบŠเบต, เบ„เบท, เบˆเบฒเบเบ•เบปเบงเปเบ—เบ™เบ•เบปเบงเปเบ—เบ™. Envoy proxy เบฎเบญเบ‡เบฎเบฑเบšเบเบฒเบ™เบชเบปเปˆเบ‡ tracing spans เป‚เบ”เบเปƒเบŠเป‰ zipkin protocol เบญเบญเบเบˆเบฒเบเบเปˆเบญเบ‡. เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเป‚เบ›เป‚เบ•เบ„เบญเบ™เบญเบทเปˆเบ™เป†, เปเบ•เปˆเบœเปˆเบฒเบ™ plugin เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™. เบ”เป‰เบงเบ Istio เบžเบงเบเป€เบฎเบปเบฒเบ—เบฑเบ™เบ—เบตเป„เบ”เป‰เบฎเบฑเบšเบ•เบปเบงเปเบ—เบ™เบ—เบนเบ”เบ—เบตเปˆเบ›เบฐเบเบญเบšเปเบฅเบฐเบเปเบฒเบซเบ™เบปเบ”เบ„เปˆเบฒ, เป€เบŠเบดเปˆเบ‡เบžเบฝเบ‡เปเบ•เปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบญเบฐเบ™เบธเบชเบฑเบ™เบเบฒ zipkin. เบ–เป‰เบฒเบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™เปƒเบŠเป‰, เบ•เบปเบงเบขเปˆเบฒเบ‡, เป‚เบ›เป‚เบ•เบ„เบญเบ™ Jaeger เปเบฅเบฐเบชเบปเปˆเบ‡ tracing spans เบœเปˆเบฒเบ™ UDP, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบ•เป‰เบญเบ‡เบชเป‰เบฒเบ‡เบฎเบนเบšเบžเบฒเบš istio-proxy เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเป€เบญเบ‡. เบกเบตเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ plugins เบ—เบตเปˆเบเปเบฒเบซเบ™เบปเบ”เป€เบญเบ‡เบชเปเบฒเบฅเบฑเบš istio-proxy, เปเบ•เปˆเบงเปˆเบฒเบกเบฑเบ™เบเบฑเบ‡เบขเบนเปˆเปƒเบ™เบชเบฐเบšเบฑเบš alpha. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบ–เป‰เบฒเบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™เป€เบฎเบฑเบ”เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ—เบตเปˆเบเปเบฒเบซเบ™เบปเบ”เป€เบญเบ‡เบˆเปเบฒเบ™เบงเบ™เบซเบฅเบฒเบ, เบ‚เบญเบšเป€เบ‚เบ”เบ‚เบญเบ‡เป€เบ•เบฑเบเป‚เบ™เป‚เบฅเบขเบตเบ—เบตเปˆเปƒเบŠเป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเปเบฅเบฐเบเบฒเบ™เบฎเบฑเบš tracing spans เบซเบผเบธเบ”เบฅเบปเบ‡. เบ‚เบญเบ‡เบฅเบฐเบšเบปเบšเบ•เบปเป‰เบ™เบ•เป, เปƒเบ™เบ„เบงเบฒเบกเป€เบ›เบฑเบ™เบˆเบดเบ‡, เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰ Zipkin เบ•เบปเบงเบ‚เบญเบ‡เบกเบฑเบ™เป€เบญเบ‡, เบซเบผเบท Jaeger, เปเบ•เปˆเบชเบปเปˆเบ‡เบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เบขเบนเปˆเบ—เบตเปˆเบ™เบฑเป‰เบ™เป‚เบ”เบเปƒเบŠเป‰ zipkin compatible protocol (เป€เบŠเบดเปˆเบ‡เบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบซเบ™เป‰เบญเบเบซเบผเบฒเบ). เป‚เบ›เป‚เบ•เบ„เบญเบ™ zipkin เบ•เบปเบงเบ‚เบญเบ‡เบกเบฑเบ™เป€เบญเบ‡เบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเบเบฒเบ™เบชเบปเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™เบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบกเบ—เบฑเบ‡เบซเบกเบปเบ”เป„เบ›เบซเบฒเบœเบนเป‰เบฅเบงเบšเบฅเบงเบกเบ‚เปเป‰เบกเบนเบ™เบœเปˆเบฒเบ™เป‚เบ›เป‚เบ•เบ„เบญเบ™ HTTP, เป€เบŠเบดเปˆเบ‡เบกเบตเบฅเบฒเบ„เบฒเปเบžเบ‡เบซเบผเบฒเบ.

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

apiVersion: v1
kind: Service
metadata:
  name: nginx
spec:
  ports:
  - port: 80
    targetPort: 80
    name: http
  selector:
    app: nginx

เบ—เปˆเบฒเบ™เบเบฑเบ‡เบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เบŠเบทเปˆเบ›เบฐเบชเบปเบกเป€เบŠเบฑเปˆเบ™ http-magic (Istio เบˆเบฐเป€เบซเบฑเบ™ http เปเบฅเบฐเบฎเบฑเบšเบฎเบนเป‰เบžเบญเบ”เบ™เบฑเป‰เบ™เป€เบ›เบฑเบ™ http endpoint). เบฎเบนเบšเปเบšเบšเปเบกเปˆเบ™: proto-extra.

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

เป€เบžเบทเปˆเบญเป€เบ‚เบปเป‰เบฒเปƒเบˆเบงเปˆเบฒเป‚เบ›เป‚เบ•เบ„เบญเบ™เบ–เบทเบ เบเบณ เบ™เบปเบ”เบขเปˆเบฒเบ‡เบ–เบทเบเบ•เป‰เบญเบ‡เบซเบผเบทเบšเปเปˆ, เบ—เปˆเบฒเบ™ เบˆเบณ เป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบ•เบนเป‰เบ„เบญเบ™เป€เบ—เบ™เป€เบ™เบตเบ‚เบญเบ‡เบฅเบปเบ”เบ‚เป‰เบฒเบ‡เปƒเบ” เปœเบถเปˆเบ‡ เบ—เบตเปˆเบกเบตเบ•เบปเบงเปเบ—เบ™เบ•เบปเบงเปเบ—เบ™เปเบฅเบฐเบชเบปเปˆเบ‡ เบ„เบณ เบฎเป‰เบญเบ‡เบ‚เปเป„เบ›เบเบฑเบ‡เบœเบญเบ” admin เบ‚เบญเบ‡เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบš envoy เบเบฑเบšเบชเบฐเบ–เบฒเบ™เบ—เบตเปˆ / config_dump. เปƒเบ™เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš, เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป€เบšเบดเปˆเบ‡เบžเบฒเบเบชเบฐเบซเบ™เบฒเบกเบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบ‚เบญเบ‡เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™. เบกเบฑเบ™เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เปƒเบ™ Istio เป€เบ›เบฑเบ™เบ•เบปเบงเบฅเบฐเบšเบธเบšเปˆเบญเบ™เบ—เบตเปˆเบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเบ–เบทเบเป€เบฎเบฑเบ”. เป€เบžเบทเปˆเบญเบ›เบฑเบšเปเบ•เปˆเบ‡เบ„เปˆเบฒเบ‚เบญเบ‡เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเบ™เบตเป‰เปƒเบ™ Istio (เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเป€เบซเบฑเบ™เบกเบฑเบ™เบขเบนเปˆเปƒเบ™เบฅเบฐเบšเบปเบšเบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบกเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ), เบกเบฑเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบฅเบฐเบšเบธเบ—เบธเบ‡ serviceCluster เปƒเบ™เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ‚เบญเบ‡เบเบฒเบ™เป€เบ›เบตเบ”เบ•เบปเบงเบ–เบฑเบ‡ sidecar. เบ•เบปเบงเบขเปˆเบฒเบ‡, เบกเบฑเบ™เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ„เบดเบ”เป„เบฅเปˆเปเบšเบšเบ™เบตเป‰เบˆเบฒเบเบ•เบปเบงเปเบ›เบ—เบตเปˆเป„เบ”เป‰เบฎเบฑเบšเบˆเบฒเบ kubernetes API เบฅเบปเบ‡เบฅเบธเปˆเบก:

--serviceCluster ${POD_NAMESPACE}.$(echo ${POD_NAME} | sed -e 's/-[a-z0-9]*-[a-z0-9]*$//g')

เบ•เบปเบงเบขเปˆเบฒเบ‡เบ—เบตเปˆเบ”เบตเบ—เบตเปˆเบˆเบฐเป€เบ‚เบปเป‰เบฒเปƒเบˆเบงเบดเบ—เบตเบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบกเป€เบฎเบฑเบ”เบงเบฝเบเปƒเบ™เบ—เบนเบ” เบ—เบตเปˆเบ™เบตเป‰.

เบˆเบธเบ”เบชเบดเป‰เบ™เบชเบธเบ”เบ•เบปเบงเบกเบฑเบ™เป€เบญเบ‡เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบชเบปเปˆเบ‡ tracing spans เบ•เป‰เบญเบ‡เบ–เบทเบเบฅเบฐเบšเบธเป„เบงเป‰เปƒเบ™เบ—เบธเบ‡เป€เบ›เบตเบ”เบ•เบปเบงเบ•เบปเบงเปเบ—เบ™เบ•เบปเบงเปเบ—เบ™, เบ•เบปเบงเบขเปˆเบฒเบ‡: --zipkinAddress tracing-collector.tracing:9411

เบ„เบงเบฒเบกโ€‹เบ„เบดเบ”โ€‹เบœเบดเบ”โ€‹เบ—เบตเปˆโ€‹เบชเบญเบ‡โ€‹: เบžเบงเบโ€‹เป€เบฎเบปเบฒโ€‹เบกเบตโ€‹เบฅเบฒโ€‹เบ„เบฒโ€‹เบ–เบทเบโ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบเบฒเบ™โ€‹เบ•เบดเบ”โ€‹เบ•เบฒเบกโ€‹เบ—เบตเปˆโ€‹เบชเบปเบกโ€‹เบšเบนเบ™โ€‹เบ‚เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบฎเป‰เบญเบ‡โ€‹เบ‚เปโ€‹เป‚เบ”เบโ€‹เบœเปˆเบฒเบ™โ€‹เบฅเบฐโ€‹เบšเบปเบšโ€‹เบญเบญเบโ€‹เบˆเบฒเบโ€‹เบ›เปˆเบญเบ‡

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

เบ„เบงเบฒเบกเบˆเบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเป€เบžเบทเปˆเบญเปƒเบซเป‰ istio-proxy เบชเบฒเบกเบฒเบ”เป€เบ‚เบปเป‰เบฒเปƒเบˆเบเบฒเบ™เบ•เบญเบšเป‚เบ•เป‰เบ‚เบญเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เปเบ—เบตเปˆเป€เบ‚เบปเป‰เบฒเบกเบฒเปƒเบ™เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบเบฑเบšเบœเบนเป‰เบ—เบตเปˆเบญเบญเบเบˆเบฒเบเบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบ”เบฝเบงเบเบฑเบ™, เบกเบฑเบ™เบšเปเปˆเบžเบฝเบ‡เบžเปเบ—เบตเปˆเบˆเบฐเบžเบฝเบ‡เปเบ•เปˆเบ‚เบฑเบ”เบ‚เบงเบฒเบ‡เบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”. เบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบกเบตเบ•เบปเบงเบฅเบฐเบšเบธเบเบฒเบ™เบชเบทเปˆเบชเบฒเบ™เบšเบฒเบ‡เบ›เบฐเป€เบžเบ”. HTTP envoy proxy เปƒเบŠเป‰ headers เบžเบดเป€เบชเบ”, เป‚เบ”เบ envoy เป€เบ‚เบปเป‰เบฒเปƒเบˆเบงเปˆเบฒเบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเบชเบฐเป€เบžเบฒเบฐเบเบฑเบšเบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบชเป‰เบฒเบ‡เบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเบชเบฐเป€เบžเบฒเบฐเบเบฑเบšเบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบญเบทเปˆเบ™เป†. เบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเบ‚เบญเบ‡เบซเบปเบงเบ‚เปเป‰เบ”เบฑเปˆเบ‡เบเปˆเบฒเบง:

  • x-request-id,
  • x-b3-traceid,
  • x-b3-เบชเบฐเป€เบ›เบ™,
  • x-b3-parentspanid,
  • x-b3-เบ•เบปเบงเบขเปˆเบฒเบ‡,
  • x-b3-เบ—เบธเบ‡,
  • x-ot-span-context.

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

เบชเบฐเบซเบฅเบธเบš

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

เปƒเบ™เบšเบปเบ”เบ„เบงเบฒเบกเบ•เปเปˆเป„เบ›เบเปˆเบฝเบงเบเบฑเบš Service Mesh, เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเป€เบšเบดเปˆเบ‡เบซเบ™เบถเปˆเบ‡เปƒเบ™เบšเบฑเบ™เบซเบฒเบ—เบตเปˆเปƒเบซเบเปˆเบ—เบตเปˆเบชเบธเบ”เบเบฑเบš Istio - เบเบฒเบ™เบšเปเบฅเบดเป‚เบžเบเบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเบ‚เบญเบ‡ RAM เป‚เบ”เบเปเบ•เปˆเบฅเบฐเบ–เบฑเบ‡เบ•เบปเบงเปเบ—เบ™ sidecar เปเบฅเบฐเบ›เบถเบเบชเบฒเบซเบฒเบฅเบทเบเปˆเบฝเบงเบเบฑเบšเบงเบดเบ—เบตเบ—เบตเปˆเบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบˆเบฑเบ”เบเบฒเบ™เบเบฑเบšเบกเบฑเบ™.

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

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