เบงเบดเบ—เบตเบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™ Istio เป‚เบ”เบเปƒเบŠเป‰ Kubernetes เปƒเบ™เบเบฒเบ™เบœเบฐเบฅเบดเบ”. เบžเบฒเบเบ—เบต 1

เบˆเบฐเป€เบ›เบฑเบ™เปเบ™เบงเปƒเบ” เบญเบดเบŠเบดเป‚เบญ? เบ™เบตเป‰เปเบกเปˆเบ™เบญเบฑเบ™เบ—เบตเปˆเป€เบญเบตเป‰เบ™เบงเปˆเบฒ Service mesh, เป€เบ•เบฑเบเป‚เบ™เป‚เบฅเบขเบตเบ—เบตเปˆเป€เบžเบตเปˆเบกเบŠเบฑเป‰เบ™เบ‚เบญเบ‡ abstraction เปƒเบ™เป€เบ„เบทเบญเบ‚เปˆเบฒเบ. เบžเบงเบเป€เบฎเบปเบฒเบ‚เบฑเบ”เบ‚เบงเบฒเบ‡เบเบฒเบ™เบˆเบฒเบฅเบฐเบˆเบญเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เบซเบผเบทเบšเบฒเบ‡เบชเปˆเบงเบ™เปƒเบ™เบเบธเปˆเบกเปเบฅเบฐเบ›เบฐเบ•เบดเบšเบฑเบ”เบŠเบธเบ”เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‡เบฒเบ™เบšเบฒเบ‡เบขเปˆเบฒเบ‡เบเบฑเบšเบกเบฑเบ™. เบญเบฑเบ™โ€‹เปƒเบ”? เบ•เบปเบงเบขเปˆเบฒเบ‡, เบžเบงเบเป€เบฎเบปเบฒเป€เบฎเบฑเบ”เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบ—เบตเปˆเบชเบฐเบซเบผเบฒเบ”, เบซเบผเบทเบžเบงเบเป€เบฎเบปเบฒเบ›เบฐเบ•เบดเบšเบฑเบ”เบงเบดเบ—เบตเบเบฒเบ™เบ•เบฑเบ”เบงเบปเบ‡เบˆเบญเบ™, เบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เบˆเบฑเบ” "เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ” canary", เบšเบฒเบ‡เบชเปˆเบงเบ™เบ›เปˆเบฝเบ™เบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™เป„เบ›เบซเบฒเบšเปเบฅเบดเบเบฒเบ™เบชเบฐเบšเบฑเบšเปƒเบซเบกเปˆ, เบซเบผเบทเบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เบˆเปเบฒเบเบฑเบ”เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเบžเบฒเบเบ™เบญเบเปเบฅเบฐเบ„เบงเบšเบ„เบธเบกเบเบฒเบ™เป€เบ”เบตเบ™เบ—เบฒเบ‡เบ—เบฑเบ‡เบซเบกเบปเบ”เบˆเบฒเบเบเบธเปˆเบกเป„เบ›เบซเบฒ. เป€เบ„เบทเบญโ€‹เบ‚เปˆเบฒเบโ€‹เบžเบฒเบโ€‹เบ™เบญเบโ€‹. เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเบเปเบฒเบ™เบปเบ”เบเบปเบ”เบฅเบฐเบšเบฝเบšเบ™เบฐเป‚เบเบšเบฒเบเป€เบžเบทเปˆเบญเบ„เบงเบšเบ„เบธเบกเบเบฒเบ™เป€เบ”เบตเบ™เบ—เบฒเบ‡เบฅเบฐเบซเบงเปˆเบฒเบ‡ microservices เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™. เบชเบธเบ”เบ—เป‰เบฒเบ, เบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เป„เบ”เป‰เบฎเบฑเบšเปเบœเบ™เบ—เบตเปˆเบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเบ‚เบญเบ‡เป€เบ„เบทเบญเบ‚เปˆเบฒเบเบ—เบฑเบ‡เบซเบกเบปเบ”เปเบฅเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบเบฒเบ™เบงเบฑเบ”เปเบ—เบเบ„เบงเบฒเบกเป‚เบ›เปˆเบ‡เปƒเบชเบขเปˆเบฒเบ‡เบชเบปเบกเบšเบนเบ™เบเบฑเบšเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ.

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

เบงเบดเบ—เบตเบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™ Istio เป‚เบ”เบเปƒเบŠเป‰ Kubernetes เปƒเบ™เบเบฒเบ™เบœเบฐเบฅเบดเบ”. เบžเบฒเบเบ—เบต 1

เป€เบฎเบฑเบ”เปเบ™เบงเปƒเบ”เบกเบฑเบ™เป€เบฎเบฑเบ”เบงเบฝเบ

Istio เบ›เบฐเบเบญเบšเบ”เป‰เบงเบเบชเบญเบ‡เบžเบทเป‰เบ™เบ—เบตเปˆเบ•เบปเป‰เบ™เบ•เป - เบเบปเบ™เบ„เบงเบšเบ„เบธเบกเปเบฅเบฐเบเบปเบ™เบ‚เปเป‰เบกเบนเบ™. เบเบปเบ™เบ„เบงเบšเบ„เบธเบกเบ›เบฐเบเบญเบšเบ”เป‰เบงเบเบญเบปเบ‡เบ›เบฐเบเบญเบšเบ•เบปเป‰เบ™เบ•เปเบ—เบตเปˆเบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบ—เบตเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เบ‚เบญเบ‡เบชเปˆเบงเบ™เบ—เบตเปˆเป€เบซเบผเบทเบญ. เปƒเบ™เบชเบฐเบšเบฑเบšเบ›เบฐเบˆเบธเบšเบฑเบ™ (1.0) เบเบปเบ™เบ„เบงเบšเบ„เบธเบกเบกเบตเบชเบฒเบกเบญเบปเบ‡เบ›เบฐเบเบญเบšเบ•เบปเป‰เบ™เบ•เป: Pilot, Mixer, Citadel. เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบšเปเปˆเบžเบดเบˆเบฒเบฅเบฐเบ™เบฒ Citadel, เบกเบฑเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบชเป‰เบฒเบ‡เปƒเบšเบขเบฑเป‰เบ‡เบขเบทเบ™เป€เบžเบทเปˆเบญเบฎเบฑเบšเบ›เบฐเบเบฑเบ™ TLS เป€เบŠเบดเปˆเบ‡เบเบฑเบ™เปเบฅเบฐเบเบฑเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™. เบฅเบญเบ‡เบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเป€เบšเบดเปˆเบ‡เบญเบธเบ›เบฐเบเบญเบ™ เปเบฅเบฐเบˆเบธเบ”เบ›เบฐเบชเบปเบ‡เบ‚เบญเบ‡ Pilot เปเบฅเบฐ Mixer เบ•เบทเปˆเบกเบญเบตเบ.

เบงเบดเบ—เบตเบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™ Istio เป‚เบ”เบเปƒเบŠเป‰ Kubernetes เปƒเบ™เบเบฒเบ™เบœเบฐเบฅเบดเบ”. เบžเบฒเบเบ—เบต 1

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

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

เบเบปเบ™เบ‚เปเป‰เบกเบนเบ™เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เป‚เบ”เบเปƒเบŠเป‰เบ–เบฑเบ‡เบšเบฑเบ™เบˆเบธเบ•เบปเบงเปเบ—เบ™เบ‚เบญเบ‡ sidecar. เบกเบตเบญเปเบฒเบ™เบฒเบ”เบ–เบทเบเปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™. เบ•เบปเบงเปเบ—เบ™เบ—เบนเบ”. เบกเบฑเบ™เบชเบฒเบกเบฒเบ”เบ–เบทเบเปเบ—เบ™เบ—เบตเปˆเบ”เป‰เบงเบเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบญเบทเปˆเบ™, เป€เบŠเบฑเปˆเบ™: nginx (nginmesh).

เป€เบžเบทเปˆเบญเปƒเบซเป‰ Istio เป€เบฎเบฑเบ”เบงเบฝเบเบขเปˆเบฒเบ‡เป‚เบ›เปˆเบ‡เปƒเบชเบ•เปเปˆเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™, เบกเบตเบฅเบฐเบšเบปเบšเบชเบตเบ”เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”. เบเบฒเบ™โ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹เบซเบฅเป‰เบฒโ€‹เบชเบธเบ”โ€‹เปเบกเปˆเบ™โ€‹เป€เบซเบกเบฒเบฐโ€‹เบชเบปเบกโ€‹เบชเปเบฒโ€‹เบฅเบฑเบš Kubernetes 1.9+ เบชเบฐโ€‹เบšเบฑเบšโ€‹เบžเบฒโ€‹เบชเบฒ (webhook เป€เบ‚เบปเป‰เบฒโ€‹เบฎเปˆเบงเบก mutational). เบชเปเบฒเบฅเบฑเบš Kubernetes เป€เบงเบตเบŠเบฑเปˆเบ™ 1.7, 1.8 เบชเบฒเบกเบฒเบ”เปƒเบŠเป‰ Initializer เป„เบ”เป‰.

เบ•เบนเป‰เบ„เบญเบ™เป€เบ—เบ™เป€เบ™เบต Sidecar เปเบกเปˆเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบš Pilot เป‚เบ”เบเปƒเบŠเป‰ GRPC protocol, เป€เบŠเบดเปˆเบ‡เบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบฎเบนเบšเปเบšเบšเบเบฒเบ™เบŠเบธเบเบเบนเป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ—เบตเปˆเป€เบเบตเบ”เบ‚เบทเป‰เบ™เปƒเบ™เบเบธเปˆเบก. GRPC เป„เบ”เป‰เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เปƒเบ™ Envoy เบ•เบฑเป‰เบ‡เปเบ•เปˆเบฎเบธเปˆเบ™ 1.6, เปƒเบ™ Istio เบกเบฑเบ™เป„เบ”เป‰เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบ•เบฑเป‰เบ‡เปเบ•เปˆเบฎเบธเปˆเบ™ 0.8 เปเบฅเบฐเป€เบ›เบฑเบ™เบ™เบฑเบเบšเบดเบ™เบ•เบปเบงเปเบ—เบ™ - golang wrapper over envoy เบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™เป€เบ›เบตเบ”เบ•เบปเบง.

Pilot เปเบฅเบฐ Mixer เปเบกเปˆเบ™เบญเบปเบ‡เบ›เบฐเบเบญเบšเบ—เบตเปˆเบšเปเปˆเบกเบตเบฅเบฑเบ”เบขเปˆเบฒเบ‡เบชเบปเบกเบšเบนเบ™, เบฅเบฑเบ”เบ—เบฑเบ‡เบซเบกเบปเบ”เบˆเบฐเบ–เบทเบเป€เบเบฑเบšเป„เบงเป‰เปƒเบ™เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒ. เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบชเปเบฒเบฅเบฑเบšเบžเบงเบเบกเบฑเบ™เปเบกเปˆเบ™เบ–เบทเบเบเปเบฒเบ™เบปเบ”เปƒเบ™เบฎเบนเบšเปเบšเบšเบ‚เบญเบ‡ Kubernetes Custom Resources, เป€เบŠเบดเปˆเบ‡เบ–เบทเบเป€เบเบฑเบšเป„เบงเป‰เปƒเบ™ etcd.
Istio-agent เป„เบ”เป‰เบฎเบฑเบšเบ—เบตเปˆเบขเบนเปˆเบ‚เบญเบ‡เบ™เบฑเบเบšเบดเบ™เปเบฅเบฐเป€เบ›เบตเบ” GRPC stream เบเบฑเบšเบกเบฑเบ™.

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

  1. เบเบณเบฅเบฑเบ‡เบ™เบณเปƒเบŠเป‰เบšเปเบฅเบดเบเบฒเบ™เป€เบงเบตเบŠเบฑเบ™เปƒเปเปˆ.
  2. เบญเบตเบ‡เบ•เบฒเบกเบงเบดเบ—เบตเบเบฒเบ™เบชเบตเบ”เบžเบฒเบŠเบฐเบ™เบฐ sidecar, เบ–เบฑเบ‡เบšเบฑเบ™เบˆเบธ istio-init เปเบฅเบฐเบšเบฑเบ™เบˆเบธ istio-เบ•เบปเบงเปเบ—เบ™ (เบ—เบนเบ”) เบˆเบฐเบ–เบทเบเป€เบžเบตเปˆเบกเปƒเบชเปˆเปƒเบ™เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ‚เบญเบ‡เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ, เบซเบผเบทเป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเบชเบฒเบกเบฒเบ”เบ–เบทเบเปƒเบชเปˆเป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบฅเบฒเบเบฅเบฐเบญเบฝเบ”เบ‚เบญเบ‡เบซเบ™เปˆเบงเบเบ‡เบฒเบ™ Kubernetes Pod เป„เบ”เป‰เปเบฅเป‰เบง.
  3. เบเปˆเบญเบ‡เบšเบฑเบ™เบˆเบธ istio-init เปเบกเปˆเบ™เบชเบฐเบ„เบฃเบดเบšเบ—เบตเปˆเปƒเบŠเป‰เบเบปเบ”เบฅเบฐเบšเบฝเบš iptables เบเบฑเบšเบเบฑเบ. เบกเบตเบชเบญเบ‡เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™เบ—เบตเปˆเบˆเบฐเบซเปเปˆเบขเบนเปˆเปƒเบ™เบ–เบฑเบ‡ istio-agent: เปƒเบŠเป‰เบเบปเบ”เบฅเบฐเบšเบฝเบšเบเบฒเบ™เบ›เปˆเบฝเบ™เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡ iptables, เบซเบผเบท TPROXY. เปƒเบ™เป€เบงเบฅเบฒเบ‚เบฝเบ™, เบงเบดเบ—เบตเบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™เบเบฑเบšเบเบปเบ”เบฅเบฐเบšเบฝเบšเบเบฒเบ™เบ›เปˆเบฝเบ™เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡. เปƒเบ™ istio-init, เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเบเปเบฒเบ™เบปเบ”เบงเปˆเบฒเบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™เปƒเบ”เบ„เบงเบ™เบ–เบทเบเบ‚เบฑเบ”เบ‚เบงเบฒเบ‡เปเบฅเบฐเบชเบปเปˆเบ‡เป„เบ›เบซเบฒ istio-agent. เบ•เบปเบงเบขเปˆเบฒเบ‡, เป€เบžเบทเปˆเบญเบ‚เบฑเบ”เบ‚เบงเบฒเบ‡เบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™เบ‚เบฒเป€เบ‚เบปเป‰เบฒเปเบฅเบฐเบ‚เบฒเบญเบญเบเบ—เบฑเบ‡เบซเบกเบปเบ”, เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบเปเบฒเบ™เบปเบ”เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบต -i ะธ -b เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบ„เบงเบฒเบกเบซเบกเบฒเบ *. เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบเปเบฒเบ™เบปเบ”เบžเบญเบ”เบชเบฐเป€เบžเบฒเบฐเป€เบžเบทเปˆเบญเบชเบฐเบเบฑเบ”. เป€เบžเบทเปˆเบญเบšเปเปˆเบ‚เบฑเบ”เบ‚เบงเบฒเบ‡เป€เบ„เบทเบญเบ‚เปˆเบฒเบเบเปˆเบญเบเบชเบฐเป€เบžเบฒเบฐ, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบเปเบฒเบ™เบปเบ”เบกเบฑเบ™เป‚เบ”เบเปƒเบŠเป‰เบ—เบธเบ‡ -x.
  4. เบซเบผเบฑเบ‡เบˆเบฒเบเบšเบฑเบ™เบˆเบธ init เป„เบ”เป‰เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”, เบ•เบปเป‰เบ™เบ•เปเป„เบ”เป‰เบ–เบทเบเป€เบ›เบตเบ”เบ•เบปเบง, เบฅเบงเบกเบ—เบฑเบ‡เบ™เบฑเบเบšเบดเบ™ - เบ•เบปเบงเปเบ—เบ™ (เบ—เบนเบ”). เบกเบฑเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบš Pilot เบ—เบตเปˆเบ™เบณเปƒเบŠเป‰เปเบฅเป‰เบงเบœเปˆเบฒเบ™ GRPC เปเบฅเบฐเป„เบ”เป‰เบฎเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบ—เบตเปˆเบกเบตเบขเบนเปˆเบ—เบฑเบ‡เปเบปเบ” เปเบฅเบฐเบ™เบฐเป‚เบเบšเบฒเบเบเบฒเบ™เบเบณเบ™เบปเบ”เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เปƒเบ™เบเบธเปˆเบก. เบญเบตเบ‡เบ•เบฒเบกเบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเป„เบ”เป‰เบฎเบฑเบš, เบฅเบฒเบง configure เบเบธเปˆเบกเปเบฅเบฐเบกเบญเบšเปƒเบซเป‰เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเป‚เบ”เบเบเบปเบ‡เบเบฑเบšเบˆเบธเบ”เบชเบดเป‰เบ™เบชเบธเบ”เบ‚เบญเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเปƒเบ™เบเบธเปˆเบก Kubernetes. เบกเบฑเบ™เบเบฑเบ‡เบกเบตเบ„เบงเบฒเบกเบˆเปเบฒเป€เบ›เบฑเบ™เบ—เบตเปˆเบˆเบฐเบชเบฑเบ‡เป€เบเบ”เบˆเบธเบ”เบชเปเบฒเบ„เบฑเบ™: เบ—เบนเบ”เบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบŸเบฑเบ‡เปเบšเบšเป„เบ”เบ™เบฒเบกเบดเบ (IP, เบ„เบนเปˆเบžเบญเบ”) โ€‹โ€‹เบ—เบตเปˆเบกเบฑเบ™เป€เบฅเบตเปˆเบกเบŸเบฑเบ‡. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เป€เบกเบทเปˆเบญเบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เปเป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบเบฑเบ, เบ–เบทเบเป‚เบญเบ™เป‚เบ”เบเปƒเบŠเป‰เบเบปเบ”เบฅเบฐเบšเบฝเบš redirect iptables เปƒเบ™ sidecar, เบ—เบนเบ”เบชเบฒเบกเบฒเบ”เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบชเบปเบšเบœเบปเบ™เบชเปเบฒเป€เบฅเบฑเบ”เปเบฅเบฐเป€เบ‚เบปเป‰เบฒเปƒเบˆเบšเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเบชเบปเปˆเบ‡เบ•เปเปˆเบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบก. เบ™เบญเบเบˆเบฒเบเบ™เบตเป‰เปƒเบ™เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ™เบตเป‰, เบ‚เปเป‰เบกเบนเบ™เบ–เบทเบเบชเบปเปˆเบ‡เป„เบ›เบซเบฒ Mixer, เป€เบŠเบดเปˆเบ‡เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเป€เบšเบดเปˆเบ‡เปƒเบ™เบžเบฒเบเบซเบฅเบฑเบ‡, เปเบฅเบฐ tracing spans เบ–เบทเบเบชเบปเปˆเบ‡.

เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบฎเบฑเบšเป€เบ„เบทเบญเบ‚เปˆเบฒเบเบ•เบปเบงเปเบ—เบ™เบ•เบปเบงเปเบ—เบ™เบ—เบฑเบ‡เปเบปเบ”เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเป„เบ”เป‰เบˆเบฒเบเบˆเบธเบ”เบ”เบฝเบง (Pilot). เบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเบ‚เบฒเป€เบ‚เบปเป‰เบฒเปเบฅเบฐเบ‚เบฒเบญเบญเบเบ—เบฑเบ‡เบซเบกเบปเบ”เปเบกเปˆเบ™เบœเปˆเบฒเบ™เบ—เบนเบ”. เบเบดเปˆเบ‡เป„เบ›เบเบงเปˆเบฒเบ™เบฑเป‰เบ™, เบžเบฝเบ‡เปเบ•เปˆเบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™ TCP เบ–เบทเบเบ‚เบฑเบ”เบ‚เบงเบฒเบ‡. เบ™เบตเป‰เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒ IP เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™ Kubernetes เบ–เบทเบเปเบเป‰เป„เบ‚เป‚เบ”เบเปƒเบŠเป‰ kube-dns เบœเปˆเบฒเบ™ UDP เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡. เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™, เบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เปเบเป‰เป„เบ‚, เบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเบญเบญเบเบˆเบฐเบ–เบทเบเบ‚เบฑเบ”เบ‚เบงเบฒเบ‡เปเบฅเบฐเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เป‚เบ”เบเบ—เบนเบ”, เป€เบŠเบดเปˆเบ‡เป„เบ”เป‰เบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเปเบฅเป‰เบงเบงเปˆเบฒเบˆเบธเบ”เบชเบดเป‰เบ™เบชเบธเบ”เบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เปเบ„เบงเบ™เบ–เบทเบเบชเบปเปˆเบ‡เป„เบ›เบซเบฒ (เบซเบผเบทเบšเปเปˆเป„เบ”เป‰เบชเบปเปˆเบ‡, เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ‚เบญเบ‡เบ™เบฐเป‚เบเบšเบฒเบเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบซเบผเบทเบ•เบปเบงเบ•เบฑเบ”เบงเบปเบ‡เบˆเบญเบ™เบ‚เบญเบ‡ algorithm).

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

Mixer เปƒเบ™เบฎเบนเบšเปเบšเบšเบ›เบฐเบˆเบธเบšเบฑเบ™เบ‚เบญเบ‡เบกเบฑเบ™เบ›เบฐเบเบญเบšเบ”เป‰เบงเบเบชเบญเบ‡เบญเบปเบ‡เบ›เบฐเบเบญเบš: istio-telemetry, istio-policy (เบเปˆเบญเบ™เบฎเบธเปˆเบ™ 0.8 เบกเบฑเบ™เปเบกเปˆเบ™เบญเบปเบ‡เบ›เบฐเบเบญเบšเบซเบ™เบถเปˆเบ‡เบ‚เบญเบ‡ istio-mixer). เบ—เบฑเบ‡เบชเบญเบ‡เบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒเปเบกเปˆเบ™เบœเบนเป‰เบ›เบฐเบชเบปเบก, เปเบ•เปˆเบฅเบฐเบ„เบปเบ™เบฎเบฑเบšเบœเบดเบ”เบŠเบญเบšเบชเปเบฒเบฅเบฑเบšเบงเบฝเบเบ‡เบฒเบ™เบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡. Istio telemetry เป„เบ”เป‰เบฎเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบเปˆเบฝเบงเบเบฑเบšเบœเบนเป‰เบ—เบตเปˆเป„เบ›เบšเปˆเบญเบ™เปƒเบ”เปเบฅเบฐเบกเบตเบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเบˆเบฒเบ sidecar Report containers เบœเปˆเบฒเบ™ GRPC. Istio-policy เบเบญเบกเบฎเบฑเบšเบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเบเบฒเบ™เบเบงเบ”เบชเบญเบšเป€เบžเบทเปˆเบญเบเบงเบ”เบชเบญเบšเบงเปˆเบฒเบเบปเบ”เบฅเบฐเบšเบฝเบšเบ™เบฐเป‚เบเบšเบฒเบเปเบกเปˆเบ™เบžเปเปƒเบˆ. เปเบ™เปˆเบ™เบญเบ™เบงเปˆเบฒ, เบเบฒเบ™เบเบงเบ”เบชเบญเบš poilicy เบšเปเปˆเป„เบ”เป‰เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบชเปเบฒเบฅเบฑเบšเบ—เบธเบเบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เป, เปเบ•เปˆเบ–เบทเบเป€เบเบฑเบšเป„เบงเป‰เปƒเบ™เบฅเบนเบเบ„เป‰เบฒ (เปƒเบ™ sidecar) เบชเปเบฒเบฅเบฑเบšเป€เบงเบฅเบฒเบ—เบตเปˆเปเบ™เปˆเบ™เบญเบ™. เบฅเบฒเบเบ‡เบฒเบ™เบเบฒเบ™เบเบงเบ”เบชเบญเบšเบ–เบทเบเบชเบปเปˆเบ‡เป€เบ›เบฑเบ™เบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เป batch. เปƒเบซเป‰เบžเบงเบเป€เบฎเบปเบฒเป€เบšเบดเปˆเบ‡เบงเบดเบ—เบตเบเบฒเบ™เบเปเบฒเบซเบ™เบปเบ”เบ„เปˆเบฒเปเบฅเบฐเบชเบดเปˆเบ‡เบ—เบตเปˆเบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเบ„เบงเบ™เบˆเบฐเบ–เบทเบเบชเบปเปˆเบ‡เบ•เปเปˆเบกเบฒเป€เบฅเบฑเบเบ™เป‰เบญเบ.

Mixer เปเบกเปˆเบ™ supposed เบˆเบฐ เป€เบ›เบฑเบ™ เบญเบปเบ‡ เบ›เบฐ เบเบญเบš เบ—เบตเปˆ เบกเบต เบขเปˆเบฒเบ‡ เบชเบนเบ‡ เบ—เบตเปˆ เบฎเบฑเบš เบ›เบฐ เบเบฑเบ™ เบเบฒเบ™ เป€เบฎเบฑเบ” เบงเบฝเบ เบ—เบตเปˆ เบšเปเปˆ เบกเบต เบเบฒเบ™ เบ‚เบฑเบ” เบ‚เบงเบฒเบ‡ เบเปˆเบฝเบง เบเบฑเบš เบเบฒเบ™ เบ›เบฐ เบเบญเบš เปเบฅเบฐ เบเบฒเบ™ เบ›เบธเบ‡ เปเบ•เปˆเบ‡ เบ‚เบญเบ‡ เบ‚เปเป‰ เบกเบนเบ™ telemetry. เบฅเบฐเบšเบปเบšเป„เบ”เป‰เบฎเบฑเบšเบœเบปเบ™เป€เบ›เบฑเบ™ buffer เบซเบผเบฒเบเบฅเบฐเบ”เบฑเบš. เปƒเบ™เป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™, เบ‚เปเป‰เบกเบนเบ™เปเบกเปˆเบ™ buffered เบขเบนเปˆเบ‚เป‰เบฒเบ‡ sidecar เบ‚เบญเบ‡เบšเบฑเบ™เบˆเบธ, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบขเบนเปˆเบ‚เป‰เบฒเบ‡ mixer, เปเบฅเบฐเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบ–เบทเบเบชเบปเปˆเบ‡เป„เบ›เบซเบฒเบญเบฑเบ™เบ—เบตเปˆเป€เบญเบตเป‰เบ™เบงเปˆเบฒ mixer backends. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบ–เป‰เบฒเบญเบปเบ‡เบ›เบฐเบเบญเบšเปƒเบ”เป†เบ‚เบญเบ‡เบฅเบฐเบšเบปเบšเบฅเบปเป‰เบกเป€เบซเบฅเบง, buffer เบˆเบฐเป€เบฅเบตเบ™เป€เบ•เบตเบšเป‚เบ•เปเบฅเบฐเบ–เบทเบ flushed เบซเบผเบฑเบ‡เบˆเบฒเบเบฅเบฐเบšเบปเบšเบ–เบทเบเบŸเบทเป‰เบ™เบŸเบน. Mixer backends เปเบกเปˆเบ™เบˆเบธเบ”เบชเบดเป‰เบ™เบชเบธเบ”เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบชเบปเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™ telemetry: statsd, newrelic, เปเบฅเบฐเบญเบทเปˆเบ™เป†. เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ‚เบฝเบ™ backend เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เป€เบญเบ‡, เบกเบฑเบ™เบ‚เป‰เบญเบ™เบ‚เป‰เบฒเบ‡เบ‡เปˆเบฒเบเบ”เบฒเบ, เปเบฅเบฐเบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเป€เบšเบดเปˆเบ‡เบงเบดเบ—เบตเบเบฒเบ™เป€เบฎเบฑเบ”เบกเบฑเบ™.

เบงเบดเบ—เบตเบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™ Istio เป‚เบ”เบเปƒเบŠเป‰ Kubernetes เปƒเบ™เบเบฒเบ™เบœเบฐเบฅเบดเบ”. เบžเบฒเบเบ—เบต 1

เป€เบžเบทเปˆเบญเบชเบฐเบซเบผเบธเบš, เป‚เบ„เบ‡เบเบฒเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบš istio-telemetry เปเบกเปˆเบ™เบ”เบฑเปˆเบ‡เบ•เปเปˆเป„เบ›เบ™เบตเป‰.

  1. เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™ 1 เบชเบปเปˆเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เปเบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™ 2.
  2. เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบญเบญเบเบˆเบฒเบเบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™ 1, เบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเปเบกเปˆเบ™เบซเปเปˆเบขเบนเปˆเปƒเบ™ sidecar เบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡.
  3. เบ—เบนเบ” Sidecar เบ•เบดเบ”เบ•เบฒเบกเบเบงเบ”เบเบฒเบงเบดเบ—เบตเบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเป„เบ›เบซเบฒเบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™ 2 เปเบฅเบฐเบเบฐเบเบฝเบกเบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบˆเปเบฒเป€เบ›เบฑเบ™.
  4. เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™, เบชเบปเปˆเบ‡เป„เบ›เบ—เบตเปˆ istio-telemetry เป‚เบ”เบเปƒเบŠเป‰เบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเบฅเบฒเบเบ‡เบฒเบ™.
  5. Istio-telemetry เบเปเบฒเบ™เบปเบ”เบงเปˆเบฒเบšเบปเบ”เบฅเบฒเบเบ‡เบฒเบ™เบ™เบตเป‰เบ„เบงเบ™เบˆเบฐเบ–เบทเบเบชเบปเปˆเบ‡เป„เบ›เบซเบฒ backends, เบ‚เปเป‰เบกเบนเบ™เปƒเบ”เปเบฅเบฐเบ„เบงเบ™เบ–เบทเบเบชเบปเปˆเบ‡.
  6. Istio-telemetry เบชเบปเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™เบฅเบฒเบเบ‡เบฒเบ™เป„เบ›เบซเบฒ backend เบ–เป‰เบฒเบˆเปเบฒเป€เบ›เบฑเบ™.

เบ•เบญเบ™เบ™เบตเป‰เปƒเบซเป‰เป€เบฎเบปเบฒเบกเบฒเป€เบšเบดเปˆเบ‡เบงเบดเบ—เบตเบเบฒเบ™เบ™เบณเปƒเบŠเป‰ Istio เปƒเบ™เบฅเบฐเบšเบปเบš, เป€เบŠเบดเปˆเบ‡เบ›เบฐเบเบญเบšเบ”เป‰เบงเบเบญเบปเบ‡เบ›เบฐเบเบญเบšเบซเบผเบฑเบเป†เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™ (เบ™เบฑเบเบšเบดเบ™ เปเบฅเบฐ เบ—เบนเบ”เบ‚เป‰เบฒเบ‡เบ„เบฝเบ‡).

เบ—เปเบฒเบญเบดเบ”, เปƒเบซเป‰เป€เบšเบดเปˆเบ‡เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ•เบปเป‰เบ™เบ•เป (เบ•เบฒเบซเบ™เปˆเบฒเบ‡) เบ—เบตเปˆ Pilot เบญเปˆเบฒเบ™:

apiVersion: v1
kind: ConfigMap
metadata:
  name: istio
  namespace: istio-system
  labels:
    app: istio
    service: istio
data:
  mesh: |-

    # ะฟะพะบะฐ ั‡ั‚ะพ ะฝะต ะฒะบะปัŽั‡ะฐะตะผ ะพั‚ะฟั€ะฐะฒะบัƒ tracing ะธะฝั„ะพั€ะผะฐั†ะธะธ (pilot ะฝะฐัั‚ั€ะพะธั‚ envoyโ€™ะธ ั‚ะฐะบะธะผ ะพะฑั€ะฐะทะพะผ, ั‡ั‚ะพ ะพั‚ะฟั€ะฐะฒะบะฐ ะฝะต ะฑัƒะดะตั‚ ะฟั€ะพะธัั…ะพะดะธั‚ัŒ)
    enableTracing: false

    # ะฟะพะบะฐ ั‡ั‚ะพ ะฝะต ัƒะบะฐะทั‹ะฒะฐะตะผ mixer endpointโ€™ั‹, ั‡ั‚ะพะฑั‹ sidecar ะบะพะฝั‚ะตะนะฝะตั€ั‹ ะฝะต ะพั‚ะฟั€ะฐะฒะปัะปะธ ะธะฝั„ะพั€ะผะฐั†ะธัŽ ั‚ัƒะดะฐ
    #mixerCheckServer: istio-policy.istio-system:15004
    #mixerReportServer: istio-telemetry.istio-system:15004

    # ัั‚ะฐะฒะธะผ ะฒั€ะตะผะตะฝะฝะพะน ะฟั€ะพะผะตะถัƒั‚ะพะบ, ั ะบะพั‚ะพั€ั‹ะผ ะฑัƒะดะตั‚ envoy ะฟะตั€ะตัะฟั€ะฐัˆะธะฒะฐั‚ัŒ Pilot (ัั‚ะพ ะดะปั ัั‚ะฐั€ะพะน ะฒะตั€ัะธะธ envoy proxy)
    rdsRefreshDelay: 5s

    # default ะบะพะฝั„ะธะณัƒั€ะฐั†ะธั ะดะปั envoy sidecar
    defaultConfig:
      # ะฐะฝะฐะปะพะณะธั‡ะฝะพ ะบะฐะบ rdsRefreshDelay
      discoveryRefreshDelay: 5s

      # ะพัั‚ะฐะฒะปัะตะผ ะฟะพ ัƒะผะพะปั‡ะฐะฝะธัŽ (ะฟัƒั‚ัŒ ะบ ะบะพะฝั„ะธะณัƒั€ะฐั†ะธะธ ะธ ะฑะธะฝะฐั€ัŽ envoy)
      configPath: "/etc/istio/proxy"
      binaryPath: "/usr/local/bin/envoy"

      # ะดะตั„ะพะปั‚ะฝะพะต ะธะผั ะทะฐะฟัƒั‰ะตะฝะฝะพะณะพ sidecar ะบะพะฝั‚ะตะนะฝะตั€ะฐ (ะธัะฟะพะปัŒะทัƒะตั‚ัั, ะฝะฐะฟั€ะธะผะตั€, ะฒ ะธะผะตะฝะฐั… ัะตั€ะฒะธัะฐ ะฟั€ะธ ะพั‚ะฟั€ะฐะฒะบะต tracing spanโ€™ะพะฒ)
      serviceCluster: istio-proxy

      # ะฒั€ะตะผั, ะบะพั‚ะพั€ะพะต ะฑัƒะดะตั‚ ะถะดะฐั‚ัŒ envoy ะดะพ ั‚ะพะณะพ, ะบะฐะบ ะพะฝ ะฟั€ะธะฝัƒะดะธั‚ะตะปัŒะฝะพ ะทะฐะฒะตั€ัˆะธั‚ ะฒัะต ัƒัั‚ะฐะฝะพะฒะปะตะฝะฝั‹ะต ัะพะตะดะธะฝะตะฝะธั
      drainDuration: 45s
      parentShutdownDuration: 1m0s

      # ะฟะพ ัƒะผะพะปั‡ะฐะฝะธัŽ ะธัะฟะพะปัŒะทัƒัŽั‚ัั REDIRECT ะฟั€ะฐะฒะธะปะฐ iptables. ะœะพะถะฝะพ ะธะทะผะตะฝะธั‚ัŒ ะฝะฐ TPROXY.
      #interceptionMode: REDIRECT

      # ะŸะพั€ั‚, ะฝะฐ ะบะพั‚ะพั€ะพะผ ะฑัƒะดะตั‚ ะทะฐะฟัƒั‰ะตะฝะฐ admin ะฟะฐะฝะตะปัŒ ะบะฐะถะดะพะณะพ sidecar ะบะพะฝั‚ะตะนะฝะตั€ะฐ (envoy)
      proxyAdminPort: 15000

      # ะฐะดั€ะตั, ะฟะพ ะบะพั‚ะพั€ะพะผัƒ ะฑัƒะดัƒั‚ ะพั‚ะฟั€ะฐะฒะปัั‚ัŒัั traceโ€™ั‹ ะฟะพ zipkin ะฟั€ะพั‚ะพะบะพะปัƒ (ะฒ ะฝะฐั‡ะฐะปะต ะผั‹ ะพั‚ะบะปัŽั‡ะธะปะธ ัะฐะผัƒ ะพั‚ะฟั€ะฐะฒะบัƒ, ะฟะพัั‚ะพะผัƒ ัั‚ะพ ะฟะพะปะต ัะตะนั‡ะฐั ะฝะต ะฑัƒะดะตั‚ ะธัะฟะพะปัŒะทะพะฒะฐั‚ัŒัั)
      zipkinAddress: tracing-collector.tracing:9411

      # statsd ะฐะดั€ะตั ะดะปั ะพั‚ะฟั€ะฐะฒะบะธ ะผะตั‚ั€ะธะบ envoy ะบะพะฝั‚ะตะนะฝะตั€ะพะฒ (ะพั‚ะบะปัŽั‡ะฐะตะผ)
      # statsdUdpAddress: aggregator:8126

      # ะฒั‹ะบะปัŽั‡ะฐะตะผ ะฟะพะดะดะตั€ะถะบัƒ ะพะฟั†ะธะธ Mutual TLS
      controlPlaneAuthPolicy: NONE

      # ะฐะดั€ะตั, ะฝะฐ ะบะพั‚ะพั€ะพะผ ะฑัƒะดะตั‚ ัะปัƒัˆะฐั‚ัŒ istio-pilot ะดะปั ั‚ะพะณะพ, ั‡ั‚ะพะฑั‹ ัะพะพะฑั‰ะฐั‚ัŒ ะธะฝั„ะพั€ะผะฐั†ะธัŽ ะพ service discovery ะฒัะตะผ sidecar ะบะพะฝั‚ะตะนะฝะตั€ะฐะผ
      discoveryAddress: istio-pilot.istio-system:15007

เบญเบปเบ‡เบ›เบฐเบเบญเบšเบ„เบงเบšเบ„เบธเบกเบ•เบปเป‰เบ™เบ•เปเบ—เบฑเบ‡เบซเบกเบปเบ” (เบเบปเบ™เบ„เบงเบšเบ„เบธเบก) เบˆเบฐเบ•เบฑเป‰เบ‡เบขเบนเปˆเปƒเบ™เบฅเบฐเบšเบปเบš namespace istio เปƒเบ™ Kubernetes.

เบขเปˆเบฒเบ‡เปœเป‰เบญเบ, เบžเบงเบเป€เบฎเบปเบฒเบžเบฝเบ‡เปเบ•เปˆเบ•เป‰เบญเบ‡เบ™เบณเปƒเบŠเป‰ Pilot เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™. เบชเปเบฒเบฅเบฑเบšเบ™เบตเป‰เบžเบงเบเป€เบฎเบปเบฒเปƒเบŠเป‰ เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ”เบฑเปˆเบ‡เบเปˆเบฒเบง.

เปเบฅเบฐเบžเบงเบเป€เบฎเบปเบฒเบˆเบฐ configure sidecar เบชเบฑเบเบขเบฒเบ‚เบญเบ‡เบšเบฑเบ™เบˆเบธเป„เบ”เป‰เบ”เป‰เบงเบเบ•เบปเบ™เป€เบญเบ‡.

เบเปˆเบญเบ‡เบšเบฑเบ™เบˆเบธ:

initContainers:
 - name: istio-init
   args:
   - -p
   - "15001"
   - -u
   - "1337"
   - -m
   - REDIRECT
   - -i
   - '*'
   - -b
   - '*'
   - -d
   - ""
   image: istio/proxy_init:1.0.0
   imagePullPolicy: IfNotPresent
   resources:
     limits:
       memory: 128Mi
   securityContext:
     capabilities:
       add:
       - NET_ADMIN

เปเบฅเบฐ sidecar:

       name: istio-proxy
       args:
         - "bash"
         - "-c"
         - |
           exec /usr/local/bin/pilot-agent proxy sidecar 
           --configPath 
           /etc/istio/proxy 
           --binaryPath 
           /usr/local/bin/envoy 
           --serviceCluster 
           service-name 
           --drainDuration 
           45s 
           --parentShutdownDuration 
           1m0s 
           --discoveryAddress 
           istio-pilot.istio-system:15007 
           --discoveryRefreshDelay 
           1s 
           --connectTimeout 
           10s 
           --proxyAdminPort 
           "15000" 
           --controlPlaneAuthPolicy 
           NONE
         env:
         - name: POD_NAME
           valueFrom:
             fieldRef:
               fieldPath: metadata.name
         - name: POD_NAMESPACE
           valueFrom:
             fieldRef:
               fieldPath: metadata.namespace
         - name: INSTANCE_IP
           valueFrom:
             fieldRef:
               fieldPath: status.podIP
         - name: ISTIO_META_POD_NAME
           valueFrom:
             fieldRef:
               fieldPath: metadata.name
         - name: ISTIO_META_INTERCEPTION_MODE
           value: REDIRECT
         image: istio/proxyv2:1.0.0
         imagePullPolicy: IfNotPresent
         resources:
           requests:
             cpu: 100m
             memory: 128Mi
           limits:
             memory: 2048Mi
         securityContext:
           privileged: false
           readOnlyRootFilesystem: true
           runAsUser: 1337
         volumeMounts:
         - mountPath: /etc/istio/proxy
           name: istio-envoy

เป€เบžเบทเปˆเบญเปƒเบซเป‰เบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบขเปˆเบฒเบ‡เบชเปเบฒเป€เบฅเบฑเบ”เบœเบปเบ™, เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบชเป‰เบฒเบ‡ ServiceAccount, ClusterRole, ClusterRoleBinding, CRD เบชเปเบฒเบฅเบฑเบšเบ™เบฑเบเบšเบดเบ™, เป€เบŠเบดเปˆเบ‡เบชเบฒเบกเบฒเบ”เบžเบปเบšเป„เบ”เป‰. เบ—เบตเปˆเบ™เบตเป‰.

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

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

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

เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡เบซเบผเบฒเบเบเบธเปˆเบก, เบˆเบปเปˆเบ‡เบฅเบฐเบงเบฑเบ‡เบ‚เปเป‰เบˆเปเบฒเบเบฑเบ”เบ•เปเปˆเป„เบ›เบ™เบตเป‰:

  1. Pod CIDR เปเบฅเบฐ Service CIDR เบˆเบฐเบ•เป‰เบญเบ‡เบšเปเปˆเบŠเปเป‰เบฒเบเบฑเบ™เบ—เบปเปˆเบงเบ—เบธเบเบเบธเปˆเบก เปเบฅเบฐเบšเปเปˆเบ„เบงเบ™เบ—เบฑเบšเบŠเป‰เบญเบ™เบเบฑเบ™.
  2. เบ—เบธเบ CIDR Pods เบ•เป‰เบญเบ‡เบชเบฒเบกเบฒเบ”เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เป„เบ”เป‰เบˆเบฒเบ CIDR Pods เปƒเบ”เป†เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบธเปˆเบก.
  3. เป€เบŠเบตเบšเป€เบงเบต Kubernetes API เบ—เบฑเบ‡เปเบปเบ”เบˆเบฐเบ•เป‰เบญเบ‡เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เป€เบŠเบดเปˆเบ‡เบเบฑเบ™เปเบฅเบฐเบเบฑเบ™.

เบ™เบตเป‰เปเบกเปˆเบ™เบ‚เปเป‰เบกเบนเบ™เป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™เป€เบžเบทเปˆเบญเบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบเบฑเบš Istio. เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เบเบฑเบ‡เบกเบตเบซเบผเบฒเบ pitfalls. เบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเบขเปˆเบฒเบ‡, เบฅเบฑเบเบชเบฐเบ™เบฐเบ‚เบญเบ‡เบเบฒเบ™เบเปเบฒเบ™เบปเบ”เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™เบžเบฒเบเบ™เบญเบ (เบ™เบญเบเบเบธเปˆเบก), เบงเบดเบ—เบตเบเบฒเบ™เป€เบžเบทเปˆเบญ debugging sidecars, profiling, เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ mixer เปเบฅเบฐเบเบฒเบ™เบ‚เบฝเบ™ backend mixer เบเปเบฒเบ™เบปเบ”เป€เบญเบ‡, เบชเป‰เบฒเบ‡เบ•เบฑเป‰เบ‡เบเบปเบ™เป„เบเบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบกเปเบฅเบฐเบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบ‚เบญเบ‡เบ•เบปเบ™เป‚เบ”เบ envoy.
เบ—เบฑเบ‡เบซเบกเบปเบ”เบ™เบตเป‰เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเปƒเบ™เบชเบดเปˆเบ‡เบžเบดเบกเบ•เปเปˆเป„เบ›เบ™เบตเป‰. เบ–เบฒเบกเบ„เปเบฒเบ–เบฒเบกเบ‚เบญเบ‡เป€เบˆเบปเป‰เบฒ, เบ‚เป‰เบญเบเบˆเบฐเบžเบฐเบเบฒเบเบฒเบกเบ›เบปเบเบ›เบดเบ”เบžเบงเบเบกเบฑเบ™.

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

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