ΠŸΡ€Π΅Π³Π»Π΅Π΄ ΠΈ сравнСниС Π½Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅Ρ€ΠΈΡ‚Π΅ Ingress Π·Π° Kubernetes

ΠŸΡ€Π΅Π³Π»Π΅Π΄ ΠΈ сравнСниС Π½Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅Ρ€ΠΈΡ‚Π΅ Ingress Π·Π° Kubernetes

ΠŸΡ€ΠΈ стартиранС Π½Π° Kubernetes ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€ Π·Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π΅ Π²Π°ΠΆΠ½ΠΎ Π΄Π° сС Ρ€Π°Π·Π±Π΅Ρ€Π΅ ΠΊΠ°ΠΊΠ²ΠΈ изисквания прСдставлява самото ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π±ΠΈΠ·Π½Π΅ΡΡŠΡ‚ ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ към Ρ‚ΠΎΠ·ΠΈ рСсурс. Π‘Π»Π΅Π΄ ΠΊΠ°Ρ‚ΠΎ Ρ€Π°Π·ΠΏΠΎΠ»Π°Π³Π°Ρ‚Π΅ с Ρ‚Π°Π·ΠΈ информация, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΏΡ€Π΅ΠΌΠΈΠ½Π΅Ρ‚Π΅ към Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½ΠΎΡ‚ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΈ ΠΏΠΎ-спСциално към ΠΈΠ·Π±ΠΎΡ€Π° Π½Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π΅Π½ Ingress ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅Ρ€, ΠΊΠΎΠΈΡ‚ΠΎ Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° са ΠΌΠ½ΠΎΠ³ΠΎ Π½Π° Π±Ρ€ΠΎΠΉ. Π‘ Ρ†Π΅Π» Π΄Π° прСдоставим основно Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ Π·Π° Π½Π°Π»ΠΈΡ‡Π½ΠΈΡ‚Π΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΈ Π±Π΅Π· Π΄Π° Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠ·ΡƒΡ‡Π°Π²Π°Π½Π΅ Π½Π° мноТСство статии/Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΈ Ρ‚.Π½., Π½ΠΈΠ΅ ΠΏΠΎΠ΄Π³ΠΎΡ‚Π²ΠΈΡ…ΠΌΠ΅ Ρ‚ΠΎΠ·ΠΈ ΠΏΡ€Π΅Π³Π»Π΅Π΄, Π²ΠΊΠ»ΡŽΡ‡Π²Π°ΠΉΠΊΠΈ основнитС (production ready) Ingress ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅Ρ€ΠΈ.

НадявамС сС, Ρ‡Π΅ Ρ‚ΠΎΠΉ Ρ‰Π΅ бъдС ΠΏΠΎΠ»Π΅Π·Π΅Π½ Π½Π° ΠΊΠΎΠ»Π΅Π³ΠΈΡ‚Π΅ ΠΏΡ€ΠΈ ΠΈΠ·Π±ΠΎΡ€Π° Π½Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ β€” ΠΏΠΎΠ½Π΅ Ρ‰Π΅ послуТи ΠΊΠ°Ρ‚ΠΎ ΠΎΡ‚ΠΏΡ€Π°Π²Π½Π° Ρ‚ΠΎΡ‡ΠΊΠ° Π·Π° ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°Π½Π΅ Π½Π° ΠΏΠΎ-ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π° информация ΠΈ практичСски СкспСримСнти. ΠŸΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΏΡ€ΠΎΡƒΡ‡ΠΈΡ…ΠΌΠ΅ Π΄Ρ€ΡƒΠ³ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΈ Π² ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π° ΠΈ, ΠΊΠ°ΠΊΡŠΠ²Ρ‚ΠΎ чСсто Π΅ случаят, Π½Π΅ ΠΎΡ‚ΠΊΡ€ΠΈΡ…ΠΌΠ΅ Π½ΠΈΡ‚ΠΎ Π΅Π΄ΠΈΠ½ ΠΏΠΎ-пълСн, Π° Π½Π°ΠΉ-Π²Π°ΠΆΠ½ΠΎΡ‚ΠΎ β€” структурирано β€” Ρ€Π΅Π·ΡŽΠΌΠ΅. И Ρ‚Π°ΠΊΠ°, Π½Π΅ΠΊΠ° запълним Ρ‚ΠΎΠ·ΠΈ Π²Π°ΠΊΡƒΡƒΠΌ!

ΠšΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠΈ

Π—Π° Π΄Π° сС ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅ сравнСниС ΠΈ Π΄Π° сС ΠΏΠΎΠ»ΡƒΡ‡ΠΈ ΠΏΠΎΠ»Π΅Π·Π΅Π½ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚, Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π΅ само Π΄Π° сС Ρ€Π°Π·Π±ΠΈΡ€Π° ΡΡŠΠΎΡ‚Π²Π΅Ρ‚Π½Π°Ρ‚Π° област, Π½ΠΎ ΠΈ Π΄Π° ΠΈΠΌΠ° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π΅Π½ списък с ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ Π΄Π° Π·Π°Π΄Π°Π²Π°Ρ‚ посоката Π½Π° Ρ€Π°Π·Π³Π»Π΅ΠΆΠ΄Π°Π½Π΅. НС ΠΏΡ€Π΅Ρ‚Π΅Π½Π΄ΠΈΡ€Π°ΠΉΠΊΠΈ Π·Π° Π°Π½Π°Π»ΠΈΠ· Π½Π° всички възмоТни случаи Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Ingress/Kubernetes, Π½ΠΈΠ΅ сС ΠΎΠΏΠΈΡ‚Π°Ρ…ΠΌΠ΅ Π΄Π° ΠΈΠ·Π²Π΅Π΄Π΅ΠΌ Π½Π°ΠΉ-основнитС изисквания към ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅Ρ€ΠΈΡ‚Π΅ β€” Π±ΡŠΠ΄Π΅Ρ‚Π΅ Π³ΠΎΡ‚ΠΎΠ²ΠΈ, Ρ‡Π΅ спСцификата ΠΈ подробноститС Ρ‰Π΅ трябва Π΄Π° сС ΠΏΡ€ΠΎΡƒΡ‡Π°Ρ‚ ΠΎΡ‚Π΄Π΅Π»Π½ΠΎ.

Но Π½Π΅ΠΊΠ° Π·Π°ΠΏΠΎΡ‡Π½Π΅ΠΌ с характСристикитС, ΠΊΠΎΠΈΡ‚ΠΎ са Ρ‚ΠΎΠ»ΠΊΠΎΠ²Π° ΠΏΠΎΠ·Π½Π°Ρ‚ΠΈ, Ρ‡Π΅ са Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ΠΈ във всички Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΈ Π½Π΅ сС ΠΎΠ±ΡΡŠΠΆΠ΄Π°Ρ‚:

  • Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½ΠΎ ΠΎΡ‚ΠΊΡ€ΠΈΠ²Π°Π½Π΅ Π½Π° услуги (service discovery);
  • SSL Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π΅;
  • Ρ€Π°Π±ΠΎΡ‚Π° с websocket’ами.

Π‘Π΅Π³Π° β€” относно Ρ‚ΠΎΡ‡ΠΊΠΈΡ‚Π΅ Π·Π° сравнСниС:

ΠŸΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Π½ΠΈ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΈ

Π•Π΄ΠΈΠ½ ΠΎΡ‚ основнитС ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠΈ Π·Π° ΠΈΠ·Π±ΠΎΡ€. Π’Π°ΡˆΠ΅Ρ‚ΠΎ ПО ΠΌΠΎΠΆΠ΅ Π΄Π° Π½Π΅ Ρ€Π°Π±ΠΎΡ‚ΠΈ ΠΏΠΎ стандартния HTTP ΠΈΠ»ΠΈ Π΄Π° изисква Ρ€Π°Π±ΠΎΡ‚Π° ΠΏΠΎ мноТСство ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΈ. Ако Π²Π°ΡˆΠΈΡΡ‚ случай Π΅ нСстандартСн, Π½Π΅ΠΏΡ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π²Π·Π΅ΠΌΠ΅Ρ‚Π΅ ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄ Ρ‚ΠΎΠ·ΠΈ Ρ„Π°ΠΊΡ‚ΠΎΡ€, Π·Π° Π΄Π° ΠΈΠ·Π±Π΅Π³Π½Π΅Ρ‚Π΅ Π±ΡŠΠ΄Π΅Ρ‰ΠΈ ΠΏΡ€Π΅ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π½Π° ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π°. Π‘ΠΏΠΈΡΡŠΠΊΡŠΡ‚ Π½Π° ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Π½ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΈ Π²Π°Ρ€ΠΈΡ€Π° ΠΏΡ€ΠΈ всички ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅Ρ€ΠΈ.

ПО Π² основата

Има няколко прилоТСния, Π½Π° ΠΊΠΎΠΈΡ‚ΠΎ Π΅ основан ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅Ρ€ΡŠΡ‚. ΠŸΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΈ са nginx, traefik, haproxy, envoy. ОбикновСно Ρ‚ΠΎΠ²Π° Π½Π΅ влияС особСно Π½Π° Π½Π°Ρ‡ΠΈΠ½Π°, ΠΏΠΎ ΠΊΠΎΠΉΡ‚ΠΎ сС ΠΏΡ€ΠΈΠ΅ΠΌΠ° ΠΈ ΠΏΡ€Π΅Π΄Π°Π²Π° Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ°, Π½ΠΎ Π²ΠΈΠ½Π°Π³ΠΈ Π΅ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π΄Π° сС знаят ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»Π½ΠΈΡ‚Π΅ нюанси ΠΈ особСности Π½Π° Ρ‚ΠΎΠ²Π°, ΠΊΠΎΠ΅Ρ‚ΠΎ Π΅ "ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠ°ΠΊΠ°".

ΠœΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ°

На ΠΊΠ°ΠΊΠ²Π° основа ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π²Π·Π΅ΠΌΠ΅ΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ относно насочванСто Π½Π° Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° към ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° услуга? ОбикновСно Ρ‚ΠΎΠ²Π° Π΅ host ΠΈ path, Π½ΠΎ ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‚ ΠΈ Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ.

ИмСнна пространство Π² Ρ€Π°ΠΌΠΊΠΈΡ‚Π΅ Π½Π° кластСра

Π˜ΠΌΠ΅Π½Π½ΠΎΡ‚ΠΎ пространство (namespace) Π΅ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π΄Π° сС логичСски ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΈΡ€Π°Ρ‚ рСсурситС Π² Kubernetes (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½Π° stage, production ΠΈ Π΄Ρ€.). Има Ingress ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅Ρ€ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ трябва Π΄Π° сС инсталират ΠΎΡ‚Π΄Π΅Π»Π½ΠΎ във всяко пространство (ΠΈ Ρ‚ΠΎΠ³Π°Π²Π° ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° насочват Ρ‚Ρ€Π°Ρ„ΠΈΠΊ СдинствСно Π² pod’ы этого пространства). А Π΅ΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ (ΠΈ ΠΈΡ… явноС Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ), Ρ‡Ρ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ глобально Π½Π° вСсь кластСр β€” Π² Π½ΠΈΡ… Ρ‚Ρ€Π°Ρ„ΠΈΠΊ направляСтся Π² любой pod кластСра, нСзависимо ΠΎΡ‚ пространства ΠΈΠΌΡ‘Π½.

ΠŸΡ€ΠΎΠ±Ρ‹ для upstream’ов

Как сС осигурява насочванСто Π½Π° Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° към Π·Π΄Ρ€Π°Π²ΠΈ инстанции Π½Π° прилоТСния, услуги? Има Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΈ с Π°ΠΊΡ‚ΠΈΠ²Π½ΠΈ ΠΈ пасивни ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ, ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΈ ΠΎΠΏΠΈΡ‚ΠΈ (retries), circuit breakers (ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ Π·Π° тях Π²ΠΈΠΆΡ‚Π΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² статията Π·Π° Istio), собствСни Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π½Π° ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅Ρ‚ΠΎ (custom health checks) ΠΈ Ρ‚.Π½. Много Π²Π°ΠΆΠ΅Π½ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€, Π°ΠΊΠΎ ΠΈΠΌΠ°Ρ‚Π΅ високи изисквания Π·Π° наличност ΠΈ Π½Π°Π²Ρ€Π΅ΠΌΠ΅Π½Π΅Π½ отстраняванС ΠΎΡ‚ балансировката Π½Π° ΠΎΡ‚ΠΊΠ°Π·Π°Π»ΠΈΡ‚Π΅ услуги.

Алгоритми Π·Π° балансировка

Π’ΡƒΠΊ ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΈ: ΠΎΡ‚ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΈ round-robin Π΄ΠΎ Π΅ΠΊΠ·ΠΎΡ‚ΠΈΡ‡Π½ΠΈ ΠΊΠ°Ρ‚ΠΎ rdp-cookie, Π° ΡΡŠΡ‰ΠΎ ΠΈ ΠΎΡ‚Π΄Π΅Π»Π½ΠΈ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ ΠΊΠ°Ρ‚ΠΎ sticky sessions.

АутСнтификация

Кои схСми Π·Π° авторизация ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅Ρ€ΡŠΡ‚? Basic, digest, oauth, external-auth β€” мисля, Ρ‡Π΅ Ρ‚Π΅Π·ΠΈ ΠΎΠΏΡ†ΠΈΠΈ са Π²ΠΈ ΠΏΠΎΠ·Π½Π°Ρ‚ΠΈ. Π’ΠΎΠ²Π° Π΅ Π²Π°ΠΆΠ΅Π½ ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠΉ, Π°ΠΊΠΎ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ‚ΡƒΡ€ΠΈ Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈ (ΠΈ/ΠΈΠ»ΠΈ просто Π·Π°Ρ‚Π²ΠΎΡ€Π΅Π½ΠΈ), Π΄ΠΎΡΡ‚ΡŠΠΏΡŠΡ‚ Π΄ΠΎ ΠΊΠΎΠΈΡ‚ΠΎ сС ΠΎΡΡŠΡ‰Π΅ΡΡ‚Π²ΡΠ²Π° Ρ‡Ρ€Π΅Π· Ingress.

Π Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ°

ΠŸΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° Π»ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅Ρ€ΡŠΡ‚ Ρ‚Π°ΠΊΠΈΠ²Π° чСсто ΠΏΡ€ΠΈΠ»Π°Π³Π°Π½ΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΈ Π·Π° Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ°, ΠΊΠ°Ρ‚ΠΎ ΠΊΠ°Π½Π°Ρ€Π΅Π½ΠΈ вСрсии (canary), A/B тСстиранС, Π·Π΅Ρ€ΠΊΠ°Π»Π½ΠΎ Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° (mirroring/shadowing)? Π’ΠΎΠ²Π° Π΅ наистина Π±ΠΎΠ»Π΅Π·Π½Π΅Π½Π° Ρ‚Π΅ΠΌΠ° Π·Π° прилоТСния, ΠΊΠΎΠΈΡ‚ΠΎ изискват Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»Π½ΠΎ ΠΈ Ρ‚ΠΎΡ‡Π½ΠΎ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° Π·Π° ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈΠ²Π½ΠΎ тСстванС, отстраняванС Π½Π° ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ²ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ Π±Π΅Π· ΠΈΠ½Ρ†ΠΈΠ΄Π΅Π½Ρ‚ΠΈ (ΠΈΠ»ΠΈ с ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½ΠΈ Π·Π°Π³ΡƒΠ±ΠΈ), Π°Π½Π°Π»ΠΈΠ· Π½Π° Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° ΠΈ Ρ‚.Π½.

ΠŸΠ»Π°Ρ‚Π΅Π½ Π°Π±ΠΎΠ½Π°ΠΌΠ΅Π½Ρ‚

Има Π»ΠΈ ΠΏΠ»Π°Ρ‚Π΅Π½ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Π½Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅Ρ€Π° с Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π½ΠΈ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ ΠΈ/ΠΈΠ»ΠΈ тСхничСска ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°?

Π“Ρ€Π°Ρ„ΠΈΡ‡Π΅Π½ интСрфСйс (Web UI)

Има Π»ΠΈ някакъв Π³Ρ€Π°Ρ„ΠΈΡ‡Π΅Π½ интСрфСйс Π·Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° конфигурацията Π½Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅Ρ€Π°? Основно Π·Π° удобство ΠΈΠ»ΠΈ Π·Π° Ρ‚Π΅Π·ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ трябва Π΄Π° правят ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ Π² конфигурацията Π½Π° Ingress, Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° с 'сурови' шаблони Π΅ Π½Π΅ΡƒΠ΄ΠΎΠ±Π½Π°. МоТС Π΄Π° Π΅ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π² случай, Ρ‡Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ искат Π΄Π° ΠΏΡ€ΠΎΠ²Π΅ΠΆΠ΄Π°Ρ‚ СкспСримСнти с Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° Π½Π° Π»Π΅Ρ‚ΠΈΡ‰Π΅Ρ‚ΠΎ.

JWT валидация

НаличиС Π½Π° Π²Π³Ρ€Π°Π΄Π΅Π½Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° JSON web Ρ‚ΠΎΠΊΠ΅Π½ΠΈ Π·Π° авторизация ΠΈ Π²Π°Π»ΠΈΠ΄ΠΈΡ€Π°Π½Π΅ Π½Π° потрСбитСля ΠΎΡ‚ ΠΊΡ€Π°ΠΉΠ½ΠΎΡ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.

Π’ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ Π·Π° пСрсонализиранС Π½Π° конфигурацията

Π Π°Π·ΡˆΠΈΡ€ΡΠ΅ΠΌΠΎΡΡ‚ Π½Π° ΡˆΠ°Π±Π»ΠΎΠ½ΠΈΡ‚Π΅ с ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΈ, позволяващи добавянС Π½Π° собствСни Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²ΠΈ, Ρ„Π»Π°Π³ΠΎΠ²Π΅ ΠΈ Ρ‚.Π½. Π² стандартнитС ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΈ шаблони.

Основни ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΈ Π·Π° Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDOS

ΠŸΡ€ΠΎΡΡ‚ΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΈ Π·Π° ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π°Π²Π°Π½Π΅ Π½Π° скоростта ΠΈΠ»ΠΈ ΠΏΠΎ-слоТни Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΈ Π·Π° Ρ„ΠΈΠ»Ρ‚Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° Π½Π° Π±Π°Π·Π°Ρ‚Π° Π½Π° адрСси, Π±Π΅Π»ΠΈ ΡΠΏΠΈΡΡŠΡ†ΠΈ, страни ΠΈ Ρ‚.Π½.

ΠŸΡ€ΠΎΡΠ»Π΅Π΄ΡΠ²Π°Π½Π΅ Π½Π° заявки

ВозмоТности наблюдСния, отслСТивания ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ запросов ΠΎΡ‚ Ingress’ов ΠΊ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌ сСрвисам/pod’ам, Π° Π² ΠΈΠ΄Π΅Π°Π»Π΅ β€” ΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ сСрвисами/pod’ами Ρ‚ΠΎΠΆΠ΅.

WAF

ΠŸΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½ΠΎΠ³ΠΎ firewall’а.

ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅Ρ€ΠΈ Ingress

Π‘ΠΏΠΈΡΡŠΠΊΡŠΡ‚ с ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅Ρ€ΠΈ Π΅ ΡΡŠΡΡ‚Π°Π²Π΅Π½ Π½Π° Π±Π°Π·Π°Ρ‚Π° Π½Π° ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»Π½Π°Ρ‚Π° докумСнтация Π½Π° Kubernetes ΠΈ Ρ‚Π°Π·ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Π°. Някои ΠΎΡ‚ тях смС ΠΈΠ·ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΠΈ ΠΎΡ‚ ΠΏΡ€Π΅Π³Π»Π΅Π΄Π° ΠΏΠΎΡ€Π°Π΄ΠΈ спСцифичност ΠΈΠ»ΠΈ ниска разпространСност (Π½Π°Ρ‡Π°Π»Π΅Π½ Π΅Ρ‚Π°ΠΏ Π½Π° Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅). ΠžΡΡ‚Π°Π½Π°Π»ΠΈΡ‚Π΅ са Ρ€Π°Π·Π³Π»Π΅Π΄Π°Π½ΠΈ ΠΏΠΎ-Π΄ΠΎΠ»Ρƒ. НСка Π·Π°ΠΏΠΎΡ‡Π½Π΅ΠΌ с ΠΎΠ±Ρ‰ΠΎ описаниС Π½Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΡ‚Π° ΠΈ ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠΈΠΌ с ΠΎΠ±ΠΎΠ±Ρ‰Π°Π²Π°Ρ‰Π° Ρ‚Π°Π±Π»ΠΈΡ†Π°.

Ingress ΠΎΡ‚ Kubernetes

Π‘Π°ΠΉΡ‚: github.com/kubernetes/ingress-nginx
Π›ΠΈΡ†Π΅Π½Π·: Apache 2.0

Π’ΠΎΠ²Π° Π΅ официалният ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅Ρ€ Π·Π° Kubernetes, ΠΊΠΎΠΉΡ‚ΠΎ сС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π° ΠΎΡ‚ общността. ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ ΠΎΡ‚ ΠΈΠΌΠ΅Ρ‚ΠΎ, Ρ‚ΠΎΠΉ Π΅ Π±Π°Π·ΠΈΡ€Π°Π½ Π½Π° nginx ΠΈ Π΅ допълнСн с Ρ€Π°Π·Π»ΠΈΡ‡Π΅Π½ Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ Lua плъгини, ΠΊΠΎΠΈΡ‚ΠΎ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Π·Π° Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ. ΠŸΠΎΡ€Π°Π΄ΠΈ популярността Π½Π° самия nginx ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½ΠΈΡ‚Π΅ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΏΡ€ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ ΠΌΡƒ ΠΊΠ°Ρ‚ΠΎ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅Ρ€, Ρ‚ΠΎΠ·ΠΈ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС Π½Π°ΠΉ-простият ΠΈ Ρ€Π°Π·Π±ΠΈΡ€Π°Π΅ΠΌ Π·Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Π½Π΅ ΠΎΡ‚ срСдностатистичСски ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ (с ΠΎΠΏΠΈΡ‚ Π² ΡƒΠ΅Π±).

Ingress ΠΎΡ‚ NGINX Inc

Π‘Π°ΠΉΡ‚: github.com/nginxinc/kubernetes-ingress
Π›ΠΈΡ†Π΅Π½Π·: Apache 2.0

ΠžΡ„ΠΈΡ†ΠΈΠ°Π»Π΅Π½ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ Π½Π° nginx. Има ΠΏΠ»Π°Ρ‚Π΅Π½Π° вСрсия, основана Π½Π° NGINX Plus. ΠžΡΠ½ΠΎΠ²Π½Π°Ρ‚Π° идСя Π΅ високото Π½ΠΈΠ²ΠΎ Π½Π° стабилност, постоянна ΠΎΠ±Ρ€Π°Ρ‚Π½Π° ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚, ΠΎΡ‚ΡΡŠΡΡ‚Π²ΠΈΠ΅ Π½Π° ΠΊΠ°ΠΊΠ²ΠΈΡ‚ΠΎ ΠΈ Π΄Π° Π΅ странични ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΈ обявСното ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΎ Π±ΡŠΡ€Π·ΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΈΠ΅ (Π² сравнСниС с официалния ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅Ρ€), постигнато Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€Π΅Π½ΠΈΠ΅ Π½Π° ΠΎΡ‚ΠΊΠ°Π·Π° ΠΎΡ‚ Lua.

Π‘Π΅Π·ΠΏΠ»Π°Ρ‚Π½Π°Ρ‚Π° вСрсия Π΅ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π°, Π΄ΠΎΡ€ΠΈ Π² сравнСниС с официалния ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅Ρ€ (ΠΏΠΎΡ€Π°Π΄ΠΈ ΠΎΡ‚ΡΡŠΡΡ‚Π²ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΡΡŠΡ‰ΠΈΡ‚Π΅ Lua ΠΌΠΎΠ΄ΡƒΠ»ΠΈ). ΠŸΠ»Π°Ρ‚Π΅Π½Π°Ρ‚Π° вСрсия ΠΏΡ€Π΅Π΄Π»Π°Π³Π° Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΎ ΡˆΠΈΡ€ΠΎΠΊ Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π΅Π½ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»: ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ Π² Ρ€Π΅Π°Π»Π½ΠΎ Π²Ρ€Π΅ΠΌΠ΅, JWT Π²Π°Π»ΠΈΠ΄ΠΈΡ€Π°Π½Π΅, Π°ΠΊΡ‚ΠΈΠ²Π½ΠΈ health check’и ΠΈ Π΄Ρ€. Π’Π°ΠΆΠ½ΠΎ прСдимство ΠΏΡ€Π΅Π΄ NGINX Ingress Π΅ ΠΏΡŠΠ»Π½Π°Ρ‚Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° TCP/UDP Ρ‚Ρ€Π°Ρ„ΠΈΠΊ (Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ Π² community вСрсията!). ΠΠ΅Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΠΊΡŠΡ‚ Π΅ ΠΎΡ‚ΡΡŠΡΡ‚Π²ΠΈΠ΅Ρ‚ΠΎ Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π·Π° Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ°, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΎΠ±Π°Ρ‡Π΅ β€žΠΈΠΌΠ° максималСн ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅β€œ, Π½ΠΎ изисква Π²Ρ€Π΅ΠΌΠ΅ Π·Π° рСализация.

Kong Ingress

Π‘Π°ΠΉΡ‚: github.com/Kong/kubernetes-ingress-controller
Π›ΠΈΡ†Π΅Π½Π·: Apache 2.0

ΠŸΡ€ΠΎΠ΄ΡƒΠΊΡ‚, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π°Π½ ΠΎΡ‚ компанията Kong Inc. Π² Π΄Π²Π° Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°: Ρ‚ΡŠΡ€Π³ΠΎΠ²ΡΠΊΠΈ ΠΈ Π±Π΅Π·ΠΏΠ»Π°Ρ‚Π΅Π½. Основава сС Π½Π° nginx, Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈΡ‚Π΅ Π½Π° ΠΊΠΎΠΉΡ‚ΠΎ са Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈ с голям Π±Ρ€ΠΎΠΉ Lua ΠΌΠΎΠ΄ΡƒΠ»ΠΈ.

ΠŸΡŠΡ€Π²ΠΎΠ½Π°Ρ‡Π°Π»Π½ΠΎ бСшС насочСн към ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° API заявки, Ρ‚.Π΅. ΠΊΠ°Ρ‚ΠΎ API Gateway, Π½ΠΎ Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Π΅ станал пълСн Ingress ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅Ρ€. ΠžΡΠ½ΠΎΠ²Π½ΠΈΡ‚Π΅ прСдимства: ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ (Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΈ ΠΎΡ‚ Ρ‚Ρ€Π΅Ρ‚ΠΈ страни), ΠΊΠΎΠΈΡ‚ΠΎ сС инсталират ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Ρ‚ лСсно ΠΈ Ρ‡Ρ€Π΅Π· ΠΊΠΎΠΈΡ‚ΠΎ сС Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Ρ‚ ΡˆΠΈΡ€ΠΎΠΊ ΡΠΏΠ΅ΠΊΡ‚ΡŠΡ€ ΠΎΡ‚ Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ. Π’ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‚ΠΎΠ²Π° Π²Π³Ρ€Π°Π΄Π΅Π½ΠΈΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡ‚ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈΡ‚Π΅.

Π’Π°ΠΆΠ½ΠΎ свойство Π½Π° ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° Π΅, Ρ‡Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π² Ρ€Π°ΠΌΠΊΠΈΡ‚Π΅ Π½Π° Π΅Π΄ΠΈΠ½ ΠΊΠΎΠ½Ρ‚ΡƒΡ€ (вмСсто cross-namespaced) Π΅ спорна Ρ‚Π΅ΠΌΠ°: Π½Π° някои ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠΌ сС стори Π½Π΅Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΠΊ (трябва Π΄Π° сС ΡΡŠΠ·Π΄Π°Π²Π°Ρ‚ Π΅Π΄ΠΈΠ½ΠΈΡ†ΠΈ Π·Π° всСки ΠΊΠΎΠ½Ρ‚ΡƒΡ€), Π° Π·Π° Π΄Ρ€ΡƒΠ³ΠΈ β€” прСдимство (Π±ΠΎΠ»ΡˆΠΈΡΡ‚ Π½ΠΈΠ²ΠΎ Π½Π° изолация, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ Π°ΠΊΠΎ Π΅Π΄ΠΈΠ½ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅Ρ€ сС ΠΏΠΎΠ²Ρ€Π΅Π΄ΠΈ, ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡŠΡ‚ Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ само Π΄ΠΎ Π΅Π΄ΠΈΠ½ ΠΊΠΎΠ½Ρ‚ΡƒΡ€).

Traefik

Π‘Π°ΠΉΡ‚: github.com/containous/traefik
ЛицСнзия: MIT

ΠŸΡ€ΠΎΠΊΡΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ создавался для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ запросов для микросСрвисов ΠΈ ΠΈΡ… динамичСской срСды. ΠžΡ‚ΡΡŽΠ΄Π° ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ возмоТности: ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ совсСм Π±Π΅Π· ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΎΠΊ, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° большого количСства ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² балансировки, Π²Π΅Π±-интСрфСйс, проброс ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠ², REST API, ΠΊΠ°Π½Π°Ρ€Π΅Π΅Ρ‡Π½Ρ‹Π΅ Ρ€Π΅Π»ΠΈΠ·Ρ‹ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅. ΠŸΡ€ΠΈΡΡ‚Π½ΠΎΠΉ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒΡŽ Ρ‚Π°ΠΊΠΆΠ΅ являСтся ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° сСртификатов Let’s Encrypt ΠΈΠ· ΠΊΠΎΡ€ΠΎΠ±ΠΊΠΈ. НСдостаток β€” для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ высокой доступности (HA) Ρƒ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° потрСбуСтся ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ собствСнноС KV-Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅.

HAProxy

Π‘Π°ΠΉΡ‚: github.com/jcmoraisjr/haproxy-ingress
Π›ΠΈΡ†Π΅Π½Π·: Apache 2.0

HAProxy Π΄Π°Π²Π½ΠΎ извСстСн Π² качСствС прокси ΠΈ балансировщика Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ°. Π’ Ρ€Π°ΠΌΠΊΠ°Ρ… кластСра Kubernetes с Π½ΠΈΠΌ прСдлагаСтся «мягкоС» ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ (Π±Π΅Π· ΠΏΠΎΡ‚Π΅Ρ€ΠΈ Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ°), service discovery Π½Π° основС DNS, динамичСская конфигурация с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ API. ΠŸΡ€ΠΈΠ²Π»Π΅ΠΊΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚Π°Ρ‚ΡŒ полная кастомизация шаблона ΠΊΠΎΠ½Ρ„ΠΈΠ³ΠΎΠ² с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π·Π°ΠΌΠ΅Π½Ρ‹ CM’а, Π° Ρ‚Π°ΠΊΠΆΠ΅ возмоТности использования Π² Π½Ρ‘ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Sprig. Π’ Ρ†Π΅Π»ΠΎΠΌ ΠΆΠ΅ основной Π°ΠΊΡ†Π΅Π½Ρ‚ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ дСлаСтся Π½Π° Π²Ρ‹ΡΠΎΠΊΡƒΡŽ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹, Π΅Π³ΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΡΡ‚ΡŒ ΠΈ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ Π² потрСбляСмых рСсурсах. ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²ΠΎ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° β€” ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ€Π΅ΠΊΠΎΡ€Π΄Π½ΠΎΠ³ΠΎ числа Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… способов балансировки.

Voyager

Π‘Π°ΠΉΡ‚: github.com/appscode/voyager
Π›ΠΈΡ†Π΅Π½Π·: Apache 2.0

ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅Ρ€, основан Π½Π° HAProxy, ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½ΠΈΡ€Π°Π½ ΠΊΠ°Ρ‚ΠΎ унивСрсално Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Ρ‰ΠΎ ΡˆΠΈΡ€ΠΎΠΊ ΡΠΏΠ΅ΠΊΡ‚ΡŠΡ€ ΠΎΡ‚ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ ΠΏΡ€ΠΈ мноТСство доставчици. ΠŸΡ€Π΅Π΄Π»Π°Π³Π° сС Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° балансировка Π½Π° Ρ‚Ρ€Π°Ρ„ΠΈΠΊ Π½Π° L7 ΠΈ L4, ΠΊΠ°Ρ‚ΠΎ балансировката Π½Π° TCP L4 Ρ‚Ρ€Π°Ρ„ΠΈΠΊ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС Π½Π°Ρ€Π΅Ρ‡Π΅Π½Π° Π΅Π΄Π½Π° ΠΎΡ‚ ΠΊΠ»ΡŽΡ‡ΠΎΠ²ΠΈΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ.

Contour

Π‘Π°ΠΉΡ‚: github.com/heptio/contour
Π›ΠΈΡ†Π΅Π½Π·: Apache 2.0

Π’ΠΎΠ²Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π½Π΅ само Π΅ Π±Π°Π·ΠΈΡ€Π°Π½ΠΎ Π½Π° Envoy: Ρ‚ΠΎ Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π΅Π½ΠΎ ΡΡŠΠ²ΠΌΠ΅ΡΡ‚Π½ΠΎ с Π°Π²Ρ‚ΠΎΡ€ΠΈΡ‚Π΅ Π½Π° Ρ‚ΠΎΠ·ΠΈ популярСн прокси. Π’Π°ΠΆΠ½Π° особСност Π΅ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π·Π° раздСлянС Π½Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° рСсурситС Ingress с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° CRD рСсурси IngressRoute. Π—Π° ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ с мноТСство Π΅ΠΊΠΈΠΏΠΈ Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‰ΠΈ Π΅Π΄ΠΈΠ½ ΠΊΠ»ΡŠΡΡ‚ΡŠΡ€, Ρ‚ΠΎΠ²Π° ΠΏΠΎΠΌΠ°Π³Π° Π΄Π° сС максимално обСзопаси Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° с Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° Π² ΡΡŠΡΠ΅Π΄Π½ΠΈΡ‚Π΅ ΠΊΠΎΠ½Ρ‚ΡƒΡ€ΠΈ ΠΈ Π΄Π° сС защитят ΠΎΡ‚ Π³Ρ€Π΅ΡˆΠΊΠΈ ΠΏΡ€ΠΈ промяна Π½Π° рСсурситС Ingress.

Π’Π°ΠΊΠΆΠ΅ прСдлагаСтся Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² балансировки (присутствуСт Π·Π΅Ρ€ΠΊΠ°Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ запросов, Π°Π²Ρ‚ΠΎΠΏΠΎΠ²Ρ‚ΠΎΡ€Ρ‹, ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ rate’у запросов ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅), Π΄Π΅Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΏΠΎΡ‚ΠΎΠΊΠ° Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° ΠΈ сбоСв. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, для ΠΊΠΎΠ³ΠΎ-Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ сущСствСнным нСдостатком отсутствиС ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ sticky sessions (хотя Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π²Π΅Ρ‡Π΅ Π΄Π° Π΅ Π² Ρ…ΠΎΠ΄).

Istio Ingress

Π‘Π°ΠΉΡ‚: istio.io/docs/tasks/traffic-management/ingress
Π›ΠΈΡ†Π΅Π½Π·: Apache 2.0

КомплСксно Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π·Π° service mesh, ΠΊΠΎΠ΅Ρ‚ΠΎ Π½Π΅ Π΅ само Ingress ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅Ρ€, управляващ ΠΏΠΎΡΡ‚ΡŠΠΏΠ²Π°Ρ‰ΠΈΡ Ρ‚Ρ€Π°Ρ„ΠΈΠΊ ΠΎΡ‚Π²ΡŠΠ½, Π½ΠΎ ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€Π° цСлия Ρ‚Ρ€Π°Ρ„ΠΈΠΊ Π² Ρ€Π°ΠΌΠΊΠΈΡ‚Π΅ Π½Π° ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π°. 'Под ΠΊΠ°ΠΏΠ°ΠΊΠ°', ΠΊΠ°Ρ‚ΠΎ sidecar прокси Π·Π° всяка услуга, сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Envoy. Π’ΡΡŠΡ‰Π½ΠΎΡΡ‚, Ρ‚ΠΎΠ²Π° Π΅ голям ΠΊΠΎΠΌΠ±Π°ΠΉΠ½, ΠΊΠΎΠΉΡ‚ΠΎ 'ΠΌΠΎΠΆΠ΅ всичко', Π° основната ΠΌΡƒ идСя Π΅ максимална управляСмост, Ρ€Π°Π·ΡˆΠΈΡ€ΡΠ΅ΠΌΠΎΡΡ‚, сигурност ΠΈ прозрачност. Π‘ Π½Π΅Π³ΠΎΠ²Π° ΠΏΠΎΠΌΠΎΡ‰ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π² Π΄Π΅Ρ‚Π°ΠΉΠ»ΠΈ Π΄Π° настройватС ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΡΡ‚Π° Π½Π° Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ°, авторизацията Π½Π° Π΄ΠΎΡΡ‚ΡŠΠΏΠ° ΠΌΠ΅ΠΆΠ΄Ρƒ услугитС, балансиранС, ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³, ΠΊΠ°Π½Π°Ρ€ΠΈΠΉΠ½ΠΈ Ρ€Π΅Π»ΠΈΠ·ΠΈ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Π΄Ρ€ΡƒΠ³ΠΎ. ΠŸΠΎΠ²Π΅Ρ‡Π΅ Π·Π° Istio Ρ‡Π΅Ρ‚Π΅Ρ‚Π΅ Π² сСрия статии 'Назад към микросСрвизитС с IstioΒ».

Ambassador

Π‘Π°ΠΉΡ‚: github.com/datawire/ambassador
Π›ΠΈΡ†Π΅Π½Π·: Apache 2.0

ΠžΡ‰Π΅ Π΅Π΄Π½ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, Π±Π°Π·ΠΈΡ€Π°Π½ΠΎ Π½Π° Envoy. Има Π±Π΅Π·ΠΏΠ»Π°Ρ‚Π½Π° ΠΈ Ρ‚ΡŠΡ€Π³ΠΎΠ²ΡΠΊΠ° вСрсия. ΠŸΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½ΠΈΡ€Π° сС ΠΊΠ°Ρ‚ΠΎ 'напълно Ρ€ΠΎΠ΄Π½ΠΎ Π·Π° Kubernetes', ΠΊΠΎΠ΅Ρ‚ΠΎ носи ΡΡŠΠΎΡ‚Π²Π΅Ρ‚Π½ΠΈΡ‚Π΅ прСдимства (тясна интСграция с ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΡ‚Π΅ ΠΈ Π΅Π΄ΠΈΠ½ΠΈΡ†ΠΈΡ‚Π΅ Π½Π° ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π° K8s).

Π‘Ρ€Π°Π²Π½ΠΈΡ‚Π΅Π»Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Π°

И Ρ‚Π°ΠΊΠ°, кулминацията Π½Π° статията β€” Ρ‚Π°Π·ΠΈ ΠΎΠ³Ρ€ΠΎΠΌΠ½Π° Ρ‚Π°Π±Π»ΠΈΡ†Π°:

ΠŸΡ€Π΅Π³Π»Π΅Π΄ ΠΈ сравнСниС Π½Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅Ρ€ΠΈΡ‚Π΅ Ingress Π·Π° Kubernetes

Вя Π΅ ΠΊΠ»ΠΈΠΊΠ°Π΅ΠΌΠ° Π·Π° Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° ΠΏΠΎ-ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π΅Π½ ΠΏΡ€Π΅Π³Π»Π΅Π΄, Π° ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° Π΅ Π΄ΠΎΡΡ‚ΡŠΠΏΠ½Π° Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Google Sheets.

НСка ΠΎΠ±ΠΎΠ±Ρ‰ΠΈΠΌ

Π¦Π΅Π»Ρ‚Π° Π½Π° статията Π΅ Π΄Π° прСдостави ΠΏΠΎ-пълно Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ (Π²ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‡Π΅ Π½Π΅ Π΅ ΠΈΠ·Ρ‡Π΅Ρ€ΠΏΠ°Ρ‚Π΅Π»Π½ΠΎ!) Π½Π° ΠΈΠ·Π±ΠΎΡ€Π°, ΠΊΠΎΠΉΡ‚ΠΎ Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ Π² конкрСтния случай. ΠšΠ°ΠΊΡ‚ΠΎ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ, всСки ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅Ρ€ ΠΈΠΌΠ° своитС прСдимства ΠΈ Π½Π΅Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ†ΠΈ...

ΠšΠ»Π°ΡΠΈΡ‡Π΅ΡΠΊΠΈΡΡ‚ Ingress Π½Π° Kubernetes сС ΠΎΡ‚Π»ΠΈΡ‡Π°Π²Π° с Π΄ΠΎΠ±Ρ€Π° наличност ΠΈ провСрСност, с Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΎ Π±ΠΎΠ³Π°Ρ‚ Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ - ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ Π΅ напълно Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π΅Π½. Π’ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‚ΠΎΠ²Π°, Π°ΠΊΠΎ ΠΈΠΌΠ°Ρ‚Π΅ повишСни изисквания Π·Π° стабилност, функционалност ΠΈ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅, ΠΌΠΎΠΆΠ΅ Π΄Π° Π΅ Π΄ΠΎΠ±Ρ€Π΅ Π΄Π° сС ΠΎΡ‚Π·ΠΎΠ²Π΅Ρ‚Π΅ Π½Π° Ingress с NGINX Plus ΠΈ ΠΏΠ»Π°Ρ‚Π΅Π½ Π°Π±ΠΎΠ½Π°ΠΌΠ΅Π½Ρ‚. Kong ΠΏΡ€Π΅Π΄Π»Π°Π³Π° ΠΈΠ·ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ Π±ΠΎΠ³Π°Ρ‚ Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ плъгини (ΠΈ ΡΡŠΠΎΡ‚Π²Π΅Ρ‚Π½ΠΎ прСдоставяни Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ), особСно Π² ΠΏΠ»Π°Ρ‚Π΅Π½Π°Ρ‚Π° вСрсия, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ Ρ‚Π΅ са ΠΎΡ‰Π΅ ΠΏΠΎΠ²Π΅Ρ‡Π΅. Има ΡˆΠΈΡ€ΠΎΠΊΠΈ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ Π·Π° Ρ€Π°Π±ΠΎΡ‚Π° ΠΊΠ°Ρ‚ΠΎ API Gateway, Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½ΠΎ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Π½Π΅ Π½Π° Π±Π°Π·Π°Ρ‚Π° Π½Π° CRD рСсурси ΠΈ основни услуги Π½Π° Kubernetes.

ΠŸΡ€ΠΈ повишСни изисквания Π·Π° балансировка ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈ Π½Π° авторизация, помислСтС Π·Π° Traefik ΠΈ HAProxy. Π’ΠΎΠ²Π° са Open Source ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ, Π΄ΠΎΠΊΠ°Π·Π°Π»ΠΈ сС с Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ, ΠΌΠ½ΠΎΠ³ΠΎ стабилни ΠΈ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈ. Contour Π΅ Π½Π° ΠΏΠ°Π·Π°Ρ€Π° Π²Π΅Ρ‡Π΅ няколко Π³ΠΎΠ΄ΠΈΠ½ΠΈ, Π½ΠΎ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° всС ΠΎΡ‰Π΅ Ρ‚Π²ΡŠΡ€Π΄Π΅ Π½ΠΎΠ² ΠΈ Ρ€Π°Π·ΠΏΠΎΠ»Π°Π³Π° само с Π±Π°Π·ΠΎΠ²ΠΈ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ, Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ Π²ΡŠΡ€Ρ…Ρƒ Envoy. Ако ΠΈΠΌΠ°Ρ‚Π΅ изисквания Π·Π° Π½Π°Π»ΠΈΡ‡ΠΈΠ΅Ρ‚ΠΎ/ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° WAF ΠΏΡ€Π΅Π΄ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ, помислСтС Π·Π° Ingress ΠΎΡ‚ Kubernetes ΠΈΠ»ΠΈ HAProxy.

Най-Π±ΠΎΠ³Π°Ρ‚ΠΈΡ‚Π΅ Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈ са Ρ‚Π΅Π·ΠΈ, ΠΈΠ·Π³Ρ€Π°Π΄Π΅Π½ΠΈ Π½Π° Π±Π°Π·Π°Ρ‚Π° Π½Π° Envoy, Π½Π°ΠΉ-Π²Π΅Ρ‡Π΅ Istio. Π’ΠΎΠΉ сС прСдставя ΠΊΠ°Ρ‚ΠΎ комплСксно Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΠ΅Ρ‚ΠΎ "ΠΌΠΎΠΆΠ΅ всичко", Π½ΠΎ Ρ‚ΠΎΠ²Π° ΠΎΠ·Π½Π°Ρ‡Π°Π²Π° ΠΈ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΏΠΎ-висок ΠΏΡ€Π°Π³ Π½Π° Π²Π»ΠΈΠ·Π°Π½Π΅ ΠΏΠΎ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Π½Π΅/старт/администриранС Π² сравнСниС с Π΄Ρ€ΡƒΠ³ΠΈΡ‚Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ.

Π—Π° стандартСн ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅Ρ€ Π½ΠΈΠ΅ ΠΈΠ·Π±Ρ€Π°Ρ…ΠΌΠ΅ ΠΈ всС ΠΎΡ‰Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Ingress ΠΎΡ‚ Kubernetes, ΠΊΠΎΠΉΡ‚ΠΎ ΠΏΠΎΠΊΡ€ΠΈΠ²Π° 80-90% ΠΎΡ‚ Π½ΡƒΠΆΠ΄ΠΈΡ‚Π΅. Π’ΠΎΠΉ Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½, лСсСн Π·Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Π½Π΅ ΠΈ Ρ€Π°Π·ΡˆΠΈΡ€ΡΠ²Π°Π½Π΅. Π’ ΠΎΠ±Ρ‰ΠΈ Π»ΠΈΠ½ΠΈΠΈ, ΠΏΡ€ΠΈ липса Π½Π° спСцифични изисквания, Ρ‚ΠΎΠΉ трябва Π΄Π° ΠΏΠΎΠ΄Ρ…ΠΎΠΆΠ΄Π° Π½Π° ΠΏΠΎΠ²Π΅Ρ‡Π΅Ρ‚ΠΎ ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€ΠΈ/прилоТСния. Π‘Ρ€Π΅Π΄ унивСрсалнитС ΠΈ сравнитСлно лСсни Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΡ‡Π°Ρ‚ Traefik ΠΈ HAProxy.

P.S.

ΠŸΡ€ΠΎΡ‡Π΅Ρ‚Π΅Ρ‚Π΅ ΡΡŠΡ‰ΠΎ Π² нашия Π±Π»ΠΎΠ³:

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

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster