Dark Launch Π² Istio: сСкрСтныС слуТбы

Β«ΠžΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ – ΠΌΠΎΠ΅ Π²Ρ‚ΠΎΡ€ΠΎΠ΅ имя», – Π³ΠΎΠ²Π°Ρ€ΠΈΠ²Π°Π» ΠžΡΡ‚ΠΈΠ½ ΠŸΠ°ΡƒΡΡ€Ρ, Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ-Π·Π°Π³Π°Π΄ΠΊΠ° ΠΌΠ΅ΠΆΠ΄ΡƒΠ½Π°Ρ€ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΌΠ°ΡΡˆΡ‚Π°Π±Π°. Но Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π² ΠΏΠΎΡ‡Π΅Ρ‚Π΅ Ρƒ супСрагСнтов ΠΈ спСцслуТб, совсСм Π½Π΅ годится для слуТб ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Ρ‹Ρ…, Π³Π΄Π΅ скукотища Π³ΠΎΡ€Π°Π·Π΄ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ опасностСй.

Dark Launch Π² Istio: сСкрСтныС слуТбы

И Istio вмСстС OpenShift ΠΈ Kubernetes ΠΏΡ€Π΅Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ микросСрвисов Π² Π΄Π΅Π»ΠΎ ΠΏΠΎ-настоящСму скучноС ΠΈ прСдсказуСмоС – ΠΈ это прСкрасно. Об этом ΠΈ ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΌ Π΄Ρ€ΡƒΠ³ΠΎΠΌ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ Π² Ρ‡Π΅Ρ‚Π²Π΅Ρ€Ρ‚ΠΎΠΌ ΠΈ послСднСм постС ΠΈΠ· сСрии ΠΏΡ€ΠΎ Istio.

Когда скукотища – это ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ

Π’ нашСм случаС скукотища Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΉ Ρ„Π°Π·Π΅, ΠΊΠΎΠ³Π΄Π° остаСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡΠΈΠ΄Π΅Ρ‚ΡŒ ΠΈ Π½Π°Π±Π»ΡŽΠ΄Π°Ρ‚ΡŒ Π·Π° процСссом. Но для этого Π½Π°Π΄ΠΎ всё ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ, ΠΈ здСсь вас ΠΆΠ΄Π΅Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ интСрСсного.

ΠŸΡ€ΠΈ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠΈ Π½ΠΎΠ²ΠΎΠΉ вСрсии вашСго софта стоит Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ всС Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ рисков. Π Π°Π±ΠΎΡ‚Π° Π² ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ – это ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠΎΡ‰Π½Ρ‹ΠΉ ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π½Ρ‹ΠΉ способ тСстирования, ΠΈ Istio позволяСт Π·Π°Π΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ для этого Β«ΡΠ΅ΠΊΡ€Π΅Ρ‚Π½ΡƒΡŽ слуТбу» (ΡΠΊΡ€Ρ‹Ρ‚ΡƒΡŽ ΠΎΡ‚ посторонних Π³Π»Π°Π· Π²Π΅Ρ€ΡΠΈΡŽ вашСго микросСрвиса) Π±Π΅Π· Π²ΠΌΠ΅ΡˆΠ°Ρ‚Π΅Π»ΡŒΡΡ‚Π²Π° Π² Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ½-систСмы. Для этого Π΅ΡΡ‚ΡŒ Π΄Π°ΠΆΠ΅ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ – Β«Π’Π°ΠΉΠ½Ρ‹ΠΉ запуск» (Dark Launch), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ активируСтся Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ с Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ шпионским Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Β«Π·Π΅Ρ€ΠΊΠ°Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ°Β».

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π² ΠΏΠ΅Ρ€Π²ΠΎΠΌ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ Π°Π±Π·Π°Ρ†Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ Β«Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅Β» (deploy), Π° Π½Π΅ «запуск» (release). Π’Ρ‹ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ – ΠΈ, разумССтся, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ – свой микросСрвис Ρ‚Π°ΠΊ часто, ΠΊΠ°ΠΊ ΠΏΠΎΠΆΠ΅Π»Π°Π΅Ρ‚Π΅. Π­Ρ‚ΠΎΡ‚ сСрвис Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ способСн ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΈ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Ρ‚Ρ€Π°Ρ„ΠΈΠΊ, Π²Ρ‹Π΄Π°Π²Π°Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² Π»ΠΎΠ³ΠΈ ΠΈ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΡ‚ΡŒΡΡ. Но ΠΏΡ€ΠΈ этом сам этот сСрвис вовсС Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π²Ρ‹ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Π² ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ½. Π Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ ΠΈ выпуск ПО – это Π½Π΅ всСгда ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎ ΠΆΠ΅. Π Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ всСгда, ΠΊΠΎΠ³Π΄Π° Π·Π°Ρ…ΠΎΡ‚ΠΈΡ‚Π΅, Π° Π²ΠΎΡ‚ выпуск – Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π³ΠΎΡ‚ΠΎΠ²Ρ‹.

ΠžΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡ скуки – это интСрСсно

ВзглянитС Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ Istio, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ направляСт всС HTTP-запросы Π½Π° микросСрвис recommendation v1 (всС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ взяты ΠΈΠ· Istio Tutorial GitHub repo), ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ зСркалируя ΠΈΡ… Π½Π° микросСрвис recommendation v2:

Dark Launch Π² Istio: сСкрСтныС слуТбы
ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΌΠ΅Ρ‚ΠΊΡƒ mirror: Π²Π½ΠΈΠ·Ρƒ скрина – ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΎΠ½Π° Π·Π°Π΄Π°Π΅Ρ‚ Π·Π΅Ρ€ΠΊΠ°Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ°. Π”Π°, Π²ΠΎΡ‚ Ρ‚Π°ΠΊ просто!

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ этого ΠΏΡ€Π°Π²ΠΈΠ»Π° станСт Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ваша ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ½-систСма (v1) Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΠΎΡΡ‚ΡƒΠΏΠ°ΡŽΡ‰ΠΈΠ΅ запросы, Π½ΠΎ сами запросы ΠΏΡ€ΠΈ этом Π±ΡƒΠ΄ΡƒΡ‚ асинхронно Π·Π΅Ρ€ΠΊΠ°Π»ΠΈΡ‚ΡŒΡΡ Π½Π° v2, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Ρ‚ΡƒΠ΄Π° Π±ΡƒΠ΄ΡƒΡ‚ ΡƒΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΈΡ… ΠΏΠΎΠ»Π½Ρ‹Π΅ Π΄ΡƒΠ±Π»ΠΈΠΊΠ°Ρ‚Ρ‹. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π²Ρ‹ смоТСтС ΠΏΡ€ΠΎΡ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ v2 Π² Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… условиях – Π½Π° настоящих Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ΅, – Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ вмСшиваясь Π² Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ½-систСмы. ΠŸΡ€Π΅Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π»ΠΈ это ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡŽ тСстирования Π² скукотищу? Π”Π°, бСзусловно. Но дСлаСтся это интСрСсно.

Π”ΠΎΠ±Π°Π²ΠΈΠΌ Π΄Ρ€Π°ΠΌΡ‹

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π² ΠΊΠΎΠ΄Π΅ v2 Π½Π°Π΄ΠΎ ΠΏΡ€Π΅Π΄ΡƒΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ситуации, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΡΡ‚ΡƒΠΏΠ°ΡŽΡ‰ΠΈΠ΅ запросы ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊ измСнСнию Π΄Π°Π½Π½Ρ‹Ρ…. Π‘Π°ΠΌΠΈ запросы зСркалятся Π»Π΅Π³ΠΊΠΎ ΠΈ ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎ, Π½ΠΎ Π²ΠΎΡ‚ Π²Ρ‹Π±ΠΎΡ€ способа ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π² тСстовой остаСтся Π·Π° Π²Π°ΠΌΠΈ – Π° Π²ΠΎΡ‚ это ΡƒΠΆΠ΅ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π²ΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ.

ΠŸΠΎΠ²Ρ‚ΠΎΡ€ΠΈΠΌ Π²Π°ΠΆΠ½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚

Π’Π°ΠΉΠ½Ρ‹ΠΉ запуск с Π·Π΅Ρ€ΠΊΠ°Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° (Dark Launch/Request Mirroring) ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ, Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ затрагивая ΠΊΠΎΠ΄.

ΠŸΠΈΡ‰Π° для Ρ€Π°Π·ΠΌΡ‹ΡˆΠ»Π΅Π½ΠΈΡ

А Ρ‡Ρ‚ΠΎ, Ссли мСсто зСркалирования запросов ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Ρ‡Π°ΡΡ‚ΡŒ ΠΈΠ· Π½ΠΈΡ… Π½Π΅ Π½Π° v1, Π° Π½Π° v2? НапримСр, ΠΎΠ΄ΠΈΠ½ ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚ ΠΎΡ‚ всСх запросов ΠΈΠ»ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ запросы ΠΎΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ. И ΠΏΠΎΡ‚ΠΎΠΌ, ΡƒΠΆΠ΅ глядя Π½Π° Ρ‚ΠΎ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ v2, постСпСнно ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π½Π° Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ всС запросы. Или Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ всё Π½Π° v1, Ссли с v2 Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΠΎΠΉΠ΄Π΅Ρ‚ Π½Π΅ Ρ‚Π°ΠΊ. ΠšΠ°ΠΆΠ΅Ρ‚ΡΡ, это называСтся Canary Deployment (Β«ΠΊΠ°Π½Π°Ρ€Π΅Π΅Ρ‡Π½ΠΎΠ΅ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅Β» – Ρ‚Π΅Ρ€ΠΌΠΈΠ½ восходит ΠΊ Π³ΠΎΡ€Π½ΠΎΠΌΡƒ Π΄Π΅Π»Ρƒ, ΠΈ Π±ΡƒΠ΄ΡŒ Ρƒ Π½Π΅Π³ΠΎ русскоС происхоТдСниС, ΠΎΠ½ вСроятно содСрТал Π±Ρ‹ отсылку ΠΊ кошкам), ΠΈ сСйчас ΠΌΡ‹ это рассмотрим ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅.

Canary Deployment Π² Istio: ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅ΠΌ Π²Π²ΠΎΠ΄ Π² строй

ΠžΡΡ‚ΠΎΡ€ΠΎΠΆΠ½ΠΎ ΠΈ постСпСнно

Π‘ΡƒΡ‚ΡŒ ΠΌΠΎΠ΄Π΅Π»ΠΈ развСртывания Canary Deployment ΠΏΡ€Π΅Π΄Π΅Π»ΡŒΠ½ΠΎ проста: ΠΏΡ€ΠΈ запускС Π½ΠΎΠ²ΠΎΠΉ вСрсии своСго софта (Π² нашСм случаС – микросСрвиса) Π²Ρ‹ сначала Π΄Π°Π΅Ρ‚Π΅ ΠΊ Π½Π΅ΠΉ доступ нСбольшой Π³Ρ€ΡƒΠΏΠΏΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ. Если всё ΠΈΠ΄Π΅Ρ‚ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ, Π²Ρ‹ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚Π΅ эту Π³Ρ€ΡƒΠΏΠΏΡƒ Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° новая вСрсия Π½Π΅ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ Π±Π°Ρ€Π°Ρ…Π»ΠΈΡ‚ΡŒ, ΠΈΠ»ΠΈ – Ссли этого Ρ‚Π°ΠΊ ΠΈ Π½Π΅ происходит – Π² ΠΈΡ‚ΠΎΠ³Π΅ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΡ‚Π΅ Π½Π° Π½Π΅Π΅ всСх ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ. ΠŸΡ€ΠΎΠ΄ΡƒΠΌΠ°Π½Π½ΠΎ ΠΈ постСпСнно вводя Π² строй Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΠ΅ΠΌΠΎ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ Π½Π° Π½Π΅Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠ½ΠΈΠ·ΠΈΡ‚ΡŒ риски ΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Ρ‚Π½ΡƒΡŽ связь.

РазумССтся, Istio ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ Canary Deployment, прСдлагая сразу нСсколько Ρ…ΠΎΡ€ΠΎΡˆΠΈΡ… Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² для ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ запросов. И Π΄Π°, всС это ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ трогая ваш исходный ΠΊΠΎΠ΄.

Π€ΠΈΠ»ΡŒΡ‚Ρ€ΡƒΠ΅ΠΌ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€

Один ΠΈΠ· самых простых ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠ΅Π² ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ – это ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π² зависимости ΠΎΡ‚ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°. Допустим, Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π° v2 ΡƒΡ…ΠΎΠ΄ΠΈΠ»ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ запросы ΠΈΠ· Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ² Safari. Π’ΠΎΡ‚ ΠΊΠ°ΠΊ это дСлаСтся:

Dark Launch Π² Istio: сСкрСтныС слуТбы
ΠŸΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌ это ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ Π·Π°Ρ‚Π΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ curl Π±ΡƒΠ΄Π΅ΠΌ Π² Ρ†ΠΈΠΊΠ»Π΅ ΠΈΠΌΠΈΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Π΅ запросы ΠΊ микросСрвису. Как Π²ΠΈΠ΄Π½ΠΎ Π½Π° ΡΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚Π΅, всС ΠΎΠ½ΠΈ уходят Π½Π° v1:

Dark Launch Π² Istio: сСкрСтныС слуТбы
А Π³Π΄Π΅ ΠΆΠ΅ Ρ‚Ρ€Π°Ρ„ΠΈΠΊ Π½Π° v2? ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π² нашСм ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ всС запросы шли Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ· нашСй ΠΆΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки, Ρ‚ΠΎ Π΅Π³ΠΎ попросту Π½Π΅Ρ‚. Но ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π½ΠΈΠΆΠ½ΠΈΠ΅ строчки Π½Π° скринС Π²Ρ‹ΡˆΠ΅: это рСакция Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ»ΠΈ запрос ΠΈΠ· Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° Safari, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ Π²Ρ‹Π΄Π°Π» Π²ΠΎΡ‚ Ρ‡Ρ‚ΠΎ:

Dark Launch Π² Istio: сСкрСтныС слуТбы

НСограничСнная Π²Π»Π°ΡΡ‚ΡŒ

ΠœΡ‹ ΡƒΠΆΠ΅ писали, Ρ‡Ρ‚ΠΎ рСгулярныС выраТСния Π΄Π°ΡŽΡ‚ ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠΎΡ‰Π½Ρ‹Π΅ возмоТности для ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ запросов. ВзглянитС Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ (Π΄ΡƒΠΌΠ°Π΅ΠΌ, Π²Ρ‹ ΠΈ сами ΠΏΠΎΠΉΠΌΠ΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π΄Π΅Π»Π°Π΅Ρ‚):

Dark Launch Π² Istio: сСкрСтныС слуТбы
Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹, вСроятно, ΡƒΠΆΠ΅ прСдставляСтС, Π½Π° Ρ‡Ρ‚ΠΎ способны рСгулярныС выраТСния.

ДСйствуйтС ΡƒΠΌΠ½ΠΎ

Умная ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΡ, Π² частности ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² с использованиСм рСгулярных Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, позволяСт Ρ€ΡƒΠ»ΠΈΡ‚ΡŒ Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠΎΠΌ Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ Π²Π°ΠΌ хочСтся. И это Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ Π²Π²ΠΎΠ΄ Π² строй Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° – это просто, это Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ измСнСния самого ΠΊΠΎΠ΄Π°, ΠΈ ΠΏΡ€ΠΈ нСобходимости всС ΠΌΠΎΠΆΠ½ΠΎ быстро Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΊΠ°ΠΊ Π±Ρ‹Π»ΠΎ.

Π—Π°ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΠΎΠ²Π°Π»ΠΈΡΡŒ?

Π—Π°Π³ΠΎΡ€Π΅Π»ΠΈΡΡŒ ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ΠΌ ΠΏΠΎΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с Istio, Kubernetes ΠΈ OpenShift Π½Π° своСм ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅? Команда Red Hat Developer Team ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΠ»Π° ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΉ ΡƒΡ‡Π΅Π±Π½ΠΈΠΊ ΠΏΠΎ этой Ρ‚Π΅ΠΌΠ΅ ΠΈ Π²Ρ‹Π»ΠΎΠΆΠΈΠ»Π° Π² ΠΎΠ±Ρ‰ΠΈΠΉ доступ всС ΡΠΎΠΏΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹. Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ Π²ΠΏΠ΅Ρ€Π΅Π΄, ΠΈ Π½ΠΈ Π² Ρ‡Π΅ΠΌ сСбС Π½Π΅ ΠΎΡ‚ΠΊΠ°Π·Ρ‹Π²Π°ΠΉΡ‚Π΅.
 

Istio Egress: Π²Ρ‹Ρ…ΠΎΠ΄ Ρ‡Π΅Ρ€Π΅Π· ΡΡƒΠ²Π΅Π½ΠΈΡ€Π½ΡƒΡŽ Π»Π°Π²ΠΊΡƒ

ΠŸΡ€ΠΈΠΌΠ΅Π½ΡΡ Istio вмСстС с Red Hat OpenShift ΠΈ Kubernetes, ΠΌΠΎΠΆΠ½ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΠ±Π»Π΅Π³Ρ‡ΠΈΡ‚ΡŒ сСбС Тизнь с микросСрвисами. БСрвисная сСтка Istio упрятана Π²Π½ΡƒΡ‚Ρ€ΡŒ Kubernetes’овских pod’ов, Π° ваш ΠΊΠΎΠ΄ выполняСтся (Π² основном) ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎ. ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, простота измСнСния, трассировка ΠΈ ΠΏΡ€ΠΎΡ‡Π΅Π΅ – всС это Π»Π΅Π³ΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠΌΠ΅Π½Π½ΠΎ Π·Π° счСт примСнСния sidecar-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ². Но Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ, Ссли ваш микросСрвис Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΠ±Ρ‰Π°Ρ‚ΡŒΡΡ с Π΄Ρ€ΡƒΠ³ΠΈΠΌ сСрвисами, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ располоТСны Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ вашСй систСмы OpenShift-Kubernetes?

Π—Π΄Π΅ΡΡŒ Π½Π° ΠΏΠΎΠΌΠΎΡ‰ΡŒ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ Istio Egress. Если Π² Π΄Π²ΡƒΡ… словах, Ρ‚ΠΎ ΠΎΠ½ просто позволяСт ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ рСсурсам (Ρ‡ΠΈΡ‚Π°ΠΉ: «сСрвисам»), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ входят Π² Π²Π°ΡˆΡƒ систСму Kubernetes’овских pod’ов. Если Π½Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ настройку, Ρ‚ΠΎ Π² срСдС Istio Egress Ρ‚Ρ€Π°Ρ„ΠΈΠΊ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Π½ΡƒΡ‚Ρ€ΠΈ кластСра pod’ов ΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ‚Π°ΠΊΠΈΠΌΠΈ кластСрами исходя ΠΈΠ· Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… IP-Ρ‚Π°Π±Π»ΠΈΡ†. И Ρ‚Π°ΠΊΠΎΠ΅ Π·Π°ΠΊΡƒΠΊΠ»ΠΈΠ²Π°Π½ΠΈΠ΅ прСкрасно Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π²Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ΅Π½ доступ ΠΊ сСрвисам снаруТи.

Egress позволяСт ΠΎΠ±ΠΎΠΉΡ‚ΠΈ Π²Ρ‹ΡˆΠ΅ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚Ρ‹Π΅ IP-Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, Π»ΠΈΠ±ΠΎ Π½Π° основС ΠΏΡ€Π°Π²ΠΈΠ» Egress, Π»ΠΈΠ±ΠΎ для Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° IP-адрСсов.

Допустим, Ρƒ нас Π΅ΡΡ‚ΡŒ Java-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, которая выполняСт GET-запрос ΠΊ httpbin.org/headers.

(httpbin.org – это просто ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ рСсурс для тСстирования исходящих сСрвис-запросов.)

Если ввСсти Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС curl http://httpbin.org/headers, ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

Dark Launch Π² Istio: сСкрСтныС слуТбы
Или ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ этот ΠΆΠ΅ адрСс Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅:

Dark Launch Π² Istio: сСкрСтныС слуТбы
Как Π²ΠΈΠ΄ΠΈΠΌ, располоТСнный Ρ‚Π°ΠΌ сСрвис просто Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½Ρ‹Π΅ Π΅ΠΌΡƒ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ.

Π˜ΠΌΠΏΠΎΡ€Ρ‚ΠΎΠ·Π°ΠΌΠ΅Ρ‰Π°Π΅ΠΌ Π² Π»ΠΎΠ±

Π’Π΅ΠΏΠ΅Ρ€ΡŒ возьмСм Java-ΠΊΠΎΠ΄ этого внСшнСго ΠΏΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡŽ ΠΊ нашСй систСмС сСрвиса ΠΈ запустим Π΅Π³ΠΎ Ρƒ сСбя, Π³Π΄Π΅, Π½Π°ΠΏΠΎΠΌΠ½ΠΈΠΌ, стоит Istio. (Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΎΠ±Ρ€Π°Ρ‚ΠΈΠ²ΡˆΠΈΡΡŒ ΠΊ Π½Π°ΡˆΠ΅ΠΌΡƒ ΡƒΡ‡Π΅Π±Π½ΠΈΠΊΡƒ ΠΏΠΎ Istio.) Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ² сборку ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΎΠ±Ρ€Π°Π·Π° ΠΈ запустив Π΅Π³ΠΎ Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ OpenShift, ΠΌΡ‹ Π²Ρ‹Π·ΠΎΠ²Π΅ΠΌ этот сСрвис ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ curl egresshttpbin-istioegress.$(minishift ip).nip.io, послС Ρ‡Π΅Π³ΠΎ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ Π½Π° экранС Π²ΠΎΡ‚ Ρ‡Ρ‚ΠΎ:

Dark Launch Π² Istio: сСкрСтныС слуТбы
Опа, Π° Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ? Всё ΠΆΠ΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΎ. Π§Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚ Not Found? ΠœΡ‹ ΠΆΠ΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ сдСлали для Π½Π΅Π³ΠΎ curl.

Π Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌ IP-Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π½Π° вСсь ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚

Π’ΠΈΠ½ΠΈΡ‚ΡŒ (ΠΈΠ»ΠΈ Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€ΠΈΡ‚ΡŒ) Π·Π° это Π½Π°Π΄ΠΎ Istio. Π’Π΅Π΄ΡŒ Istio – это просто sidecar- ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‚ Π·Π° ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ ΠΈ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΡŽ (Π½Ρƒ ΠΈ Π·Π° массу Π΄Ρ€ΡƒΠ³ΠΈΡ… Π²Π΅Ρ‰Π΅ΠΉ, ΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΡ‹ рассказывали Ρ€Π°Π½Π΅Π΅). По этой ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅ IP-Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π·Π½Π°ΡŽΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ находится Π²Π½ΡƒΡ‚Ρ€ΠΈ вашСй систСмы кластСров. А httpbin.org располоТСн снаруТи ΠΈ, ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, нСдоступСн. И Π²ΠΎΡ‚ Ρ‚ΡƒΡ‚ Π½Π° ΠΏΠΎΠΌΠΎΡ‰ΡŒ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ Istio Egress – Π±Π΅Π· ΠΌΠ°Π»Π΅ΠΉΡˆΠΈΡ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² вашСм исходном ΠΊΠΎΠ΄Π΅.

ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ΅ Π½ΠΈΠΆΠ΅ Egress-ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ заставляСт Istio ΠΈΡΠΊΠ°Ρ‚ΡŒ (Ссли Π½Π°Π΄ΠΎ, Ρ‚ΠΎ ΠΈ Π²ΠΎ всСм всСмирном ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅) Π½ΡƒΠΆΠ½Ρ‹ΠΉ сСрвис, Π² Π΄Π°Π½Π½ΠΎΠΌ случаС, httpbin.org. Как Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· этого Ρ„Π°ΠΉΠ»Π° (egress_httpbin.yml), Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ здСсь довольно простая:

Dark Launch Π² Istio: сСкрСтныС слуТбы
ΠžΡΡ‚Π°Π»ΠΎΡΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ это ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ:

istioctl create -f egress_httpbin.yml -n istioegress

ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»Π° Egress ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ istioctl get egressrules:

Dark Launch Π² Istio: сСкрСтныС слуТбы
И Π½Π°ΠΊΠΎΠ½Π΅Ρ†, ΠΎΠΏΡΡ‚ΡŒ запускаСм ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ curl – ΠΈ Π²ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ всС Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚:

Dark Launch Π² Istio: сСкрСтныС слуТбы

ΠœΡ‹ΡΠ»ΠΈΠΌ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎ

Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, Istio позволяСт ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ взаимодСйствиС ΠΈ с внСшним ΠΌΠΈΡ€ΠΎΠΌ. Π˜Π½Ρ‹ΠΌΠΈ словами, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ всё Ρ‚Π°ΠΊ ΠΆΠ΅ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ сСрвисы OpenShift ΠΈ Ρ€ΡƒΠ»ΠΈΡ‚ΡŒ ΠΈΠΌΠΈ Ρ‡Π΅Ρ€Π΅Π· Kubernetes, Π΄Π΅Ρ€ΠΆΠ° всё Π² pod’ах, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π²Π²Π΅Ρ€Ρ…-Π²Π½ΠΈΠ· ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ надобности. И ΠΏΡ€ΠΈ этом Π²Ρ‹ спокойно ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ внСшним ΠΏΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡŽ ΠΊ вашСй срСдС сСрвисам. И Π΄Π°, Π΅Ρ‰Π΅ Ρ€Π°Π· повторимся, Ρ‡Ρ‚ΠΎ всС это ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ, Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ трогая ваш ΠΊΠΎΠ΄.

Π­Ρ‚ΠΎ Π±Ρ‹Π» послСдний пост ΠΈΠ· сСрии ΠΏΠΎ Istio. ΠžΡΡ‚Π°Π²Π°ΠΉΡ‚Π΅ΡΡŒ с Π½Π°ΠΌΠΈ – Π²ΠΏΠ΅Ρ€Π΅Π΄ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ интСрСсного!

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com