ΠΠΎΠ³Π°ΡΠΎ ΡΡΠ°ΡΡΠΈΡΠ°ΡΠ΅ Kubernetes ΠΊΠ»ΡΡΡΠ΅Ρ Π·Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ΡΠ΅ ΠΊΠ°ΠΊΠ²ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ²Π° ΡΠ°ΠΌΠΎΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π±ΠΈΠ·Π½Π΅ΡΡΡ ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ Π·Π° ΡΠΎΠ·ΠΈ ΡΠ΅ΡΡΡΡ. Π‘ ΡΠ°Π·ΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π·Π°ΠΏΠΎΡΠ½Π΅ΡΠ΅ Π΄Π° Π²Π·Π΅ΠΌΠ°ΡΠ΅ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ½ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΈ ΠΏΠΎ-ΡΠΏΠ΅ΡΠΈΠ°Π»Π½ΠΎ Π΄Π° ΠΈΠ·Π±Π΅ΡΠ΅ΡΠ΅ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ΅Π½ ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅Ρ Ingress, ΠΎΡ ΠΊΠΎΠΉΡΠΎ Π΄Π½Π΅Ρ Π²Π΅ΡΠ΅ ΠΈΠΌΠ° Π³ΠΎΠ»ΡΠΌ Π±ΡΠΎΠΉ. ΠΠ° Π΄Π° ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΠΎΡΠ½ΠΎΠ²Π½Π° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π° Π·Π° Π½Π°Π»ΠΈΡΠ½ΠΈΡΠ΅ ΠΎΠΏΡΠΈΠΈ, Π±Π΅Π· Π΄Π° ΡΠ΅ Π½Π°Π»Π°Π³Π° Π΄Π° ΠΏΡΠ΅Π³Π»Π΅ΠΆΠ΄Π°ΡΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΠ°ΡΠΈΠΈ / Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΈ Ρ.Π½., ΠΏΠΎΠ΄Π³ΠΎΡΠ²ΠΈΡ
ΠΌΠ΅ ΡΠΎΠ·ΠΈ ΠΏΡΠ΅Π³Π»Π΅Π΄, Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡΠ΅ (Π³ΠΎΡΠΎΠ²ΠΈ Π·Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²ΠΎ) Ingress ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅ΡΠΈ.
ΠΠ°Π΄ΡΠ²Π°ΠΌΠ΅ ΡΠ΅, ΡΠ΅ ΡΠ΅ ΠΏΠΎΠΌΠΎΠ³Π½Π΅ Π½Π° ΠΊΠΎΠ»Π΅Π³ΠΈΡΠ΅ ΠΏΡΠΈ ΠΈΠ·Π±ΠΎΡΠ° Π½Π° Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ½ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ - ΠΏΠΎΠ½Π΅ ΡΠ΅ ΡΡΠ°Π½Π΅ ΠΎΡΠΏΡΠ°Π²Π½Π° ΡΠΎΡΠΊΠ° Π·Π° ΠΏΠΎΠ»ΡΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΏΠΎ-ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΈ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π΅ΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΈ. ΠΡΠ΅Π΄ΠΈ ΡΠΎΠ²Π° ΠΈΠ·ΡΡΠ°Π²Π°Ρ
ΠΌΠ΅ Π΄ΡΡΠ³ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΈ Π² ΠΌΡΠ΅ΠΆΠ°ΡΠ° ΠΈ, ΠΊΠΎΠ»ΠΊΠΎΡΠΎ ΠΈ Π΄Π° Π΅ ΡΡΡΠ°Π½Π½ΠΎ, Π½Π΅ Π½Π°ΠΌΠ΅ΡΠΈΡ
ΠΌΠ΅ Π½ΠΈΡΠΎ Π΅Π΄ΠΈΠ½ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΈΠ»ΠΈ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΠΏΡΠ»Π΅Π½ ΠΈ Π½Π°ΠΉ-Π²Π°ΠΆΠ½ΠΎΡΠΎ - ΡΡΡΡΠΊΡΡΡΠΈΡΠ°Π½ ΠΏΡΠ΅Π³Π»Π΅Π΄. Π’Π°ΠΊΠ° ΡΠ΅ Π½Π΅ΠΊΠ° Π·Π°ΠΏΡΠ»Π½ΠΈΠΌ ΡΠ°Π·ΠΈ ΠΏΡΠ°Π·Π½ΠΈΠ½Π°!
ΠΊΡΠΈΡΠ΅ΡΠΈΠΈ
ΠΠΎ ΠΏΡΠΈΠ½ΡΠΈΠΏ, Π·Π° Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΠΈ Π΄Π° ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ Π½ΡΠΊΠ°ΠΊΡΠ² ΠΏΠΎΠ»Π΅Π·Π΅Π½ ΡΠ΅Π·ΡΠ»ΡΠ°Ρ, ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ΡΠ΅ Π½Π΅ ΡΠ°ΠΌΠΎ ΠΏΡΠ΅Π΄ΠΌΠ΅ΡΠ½Π°ΡΠ° ΠΎΠ±Π»Π°ΡΡ, Π½ΠΎ ΠΈ Π΄Π° ΠΈΠΌΠ°ΡΠ΅ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ΅Π½ ΡΠΏΠΈΡΡΠΊ ΠΎΡ ΠΊΡΠΈΡΠ΅ΡΠΈΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡ Π²Π΅ΠΊΡΠΎΡΠ° Π½Π° ΠΈΠ·ΡΠ»Π΅Π΄Π²Π°Π½Π΅ΡΠΎ. ΠΠ΅Π· Π΄Π° ΡΠ΅ ΠΏΡΠ΅ΡΡΡΡΠ²Π°ΠΌΠ΅, ΡΠ΅ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠ°ΠΌΠ΅ Π²ΡΠΈΡΠΊΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΈ ΡΠ»ΡΡΠ°ΠΈ Π½Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Ingress / Kubernetes, Π½ΠΈΠ΅ ΡΠ΅ ΠΎΠΏΠΈΡΠ°Ρ ΠΌΠ΅ Π΄Π° ΠΏΠΎΠ΄ΡΠ΅ΡΡΠ°Π΅ΠΌ Π½Π°ΠΉ-ΠΎΠ±ΡΠΈΡΠ΅ ΠΈΠ·ΠΈΡΠΊΠ²Π°Π½ΠΈΡ ΠΊΡΠΌ ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅ΡΠΈΡΠ΅ - Π±ΡΠ΄Π΅ΡΠ΅ Π³ΠΎΡΠΎΠ²ΠΈ, ΡΠ΅ Π²ΡΠ² Π²ΡΠ΅ΠΊΠΈ ΡΠ»ΡΡΠ°ΠΉ ΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° ΠΈΠ·ΡΡΠ°Π²Π°ΡΠ΅ Π²ΡΠΈΡΠΊΠΈΡΠ΅ ΡΠΈ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠΈ ΠΈ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΠΈ ΠΎΡΠ΄Π΅Π»Π½ΠΎ.
ΠΠΎ ΡΠ΅ Π·Π°ΠΏΠΎΡΠ½Π° Ρ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈΡΠ΅, ΠΊΠΎΠΈΡΠΎ ΡΠ° ΡΡΠ°Π½Π°Π»ΠΈ ΡΠΎΠ»ΠΊΠΎΠ²Π° ΠΏΠΎΠ·Π½Π°ΡΠΈ, ΡΠ΅ ΡΠ° Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈ Π²ΡΠ² Π²ΡΠΈΡΠΊΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΈ Π½Π΅ ΡΠ΅ Π²Π·Π΅ΠΌΠ°Ρ ΠΏΡΠ΅Π΄Π²ΠΈΠ΄:
- Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½ΠΎ ΠΎΡΠΊΡΠΈΠ²Π°Π½Π΅ Π½Π° ΡΡΠ»ΡΠ³ΠΈ (ΠΎΡΠΊΡΠΈΠ²Π°Π½Π΅ Π½Π° ΡΡΠ»ΡΠ³ΠΈ);
- SSL ΡΠ΅ΡΠΌΠΈΠ½ΠΈΡΠ°Π½Π΅;
- ΡΠ°Π±ΠΎΡΠ° Ρ websockets.
Π‘Π΅Π³Π° Π·Π° ΡΠΎΡΠΊΠΈΡΠ΅ Π·Π° ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅:
ΠΠΎΠ΄Π΄ΡΡΠΆΠ°Π½ΠΈ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΈ
ΠΠ΄ΠΈΠ½ ΠΎΡ ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡΠ΅ ΠΊΡΠΈΡΠ΅ΡΠΈΠΈ Π·Π° ΠΈΠ·Π±ΠΎΡ. ΠΠ°ΡΠΈΡΡ ΡΠΎΡΡΡΠ΅Ρ ΠΌΠΎΠΆΠ΅ Π΄Π° Π½Π΅ ΡΠ°Π±ΠΎΡΠΈ Π½Π° ΡΡΠ°Π½Π΄Π°ΡΡΠ΅Π½ HTTP ΠΈΠ»ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·ΠΈΡΠΊΠ²Π° ΡΠ°Π±ΠΎΡΠ° ΠΏΠΎ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° Π΅Π΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ. ΠΠΊΠΎ Π²Π°ΡΠΈΡΡ ΡΠ»ΡΡΠ°ΠΉ Π΅ Π½Π΅ΡΡΠ°Π½Π΄Π°ΡΡΠ΅Π½, Π½Π΅ Π·Π°Π±ΡΠ°Π²ΡΠΉΡΠ΅ Π΄Π° Π²Π·Π΅ΠΌΠ΅ΡΠ΅ ΠΏΡΠ΅Π΄Π²ΠΈΠ΄ ΡΠΎΠ·ΠΈ ΡΠ°ΠΊΡΠΎΡ, Π·Π° Π΄Π° Π½Π΅ ΡΠ΅ Π½Π°Π»Π°Π³Π° Π΄Π° ΠΏΡΠ΅ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°ΡΠ΅ ΠΊΠ»ΡΡΡΠ΅ΡΠ° ΠΏΠΎ-ΠΊΡΡΠ½ΠΎ. ΠΠ° Π²ΡΠΈΡΠΊΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅ΡΠΈ ΡΠΏΠΈΡΡΠΊΡΡ Ρ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Π½ΠΈ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΈ Π²Π°ΡΠΈΡΠ°.
ΡΠΎΡΡΡΠ΅Ρ Π² ΠΎΡΠ½ΠΎΠ²Π°ΡΠ°
ΠΠΌΠ° Π½ΡΠΊΠΎΠ»ΠΊΠΎ Π²Π°ΡΠΈΠ°Π½ΡΠ° Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π½Π° ΠΊΠΎΠΈΡΠΎ ΡΠ΅ Π±Π°Π·ΠΈΡΠ° ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅ΡΡΡ. ΠΠΎΠΏΡΠ»ΡΡΠ½ΠΈ ΡΠ° nginx, traefik, haproxy, envoy. Π ΠΎΠ±ΡΠΈΡ ΡΠ»ΡΡΠ°ΠΉ ΠΌΠΎΠΆΠ΅ Π΄Π° Π½ΡΠΌΠ° Π³ΠΎΠ»ΡΠΌ Π΅ΡΠ΅ΠΊΡ Π²ΡΡΡ Ρ Π½Π°ΡΠΈΠ½Π° Π½Π° ΠΏΠΎΠ»ΡΡΠ°Π²Π°Π½Π΅ ΠΈ ΠΏΡΠ΅Π΄Π°Π²Π°Π½Π΅ Π½Π° ΡΡΠ°ΡΠΈΠΊΠ°, Π½ΠΎ Π²ΠΈΠ½Π°Π³ΠΈ Π΅ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π΄Π° Π·Π½Π°Π΅ΡΠ΅ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»Π½ΠΈΡΠ΅ Π½ΡΠ°Π½ΡΠΈ ΠΈ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ Π½Π° ΡΠΎΠ²Π°, ΠΊΠΎΠ΅ΡΠΎ Π΅ βΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠ°ΠΊΠ°β.
ΠΠ°ΡΡΡΡΡΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΡΡΠ°ΡΠΈΠΊΠ°
ΠΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° ΠΊΠ°ΠΊΠ²ΠΎ Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΄Π° ΡΠ΅ Π²Π·Π΅ΠΌΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π·Π° ΠΏΠΎΡΠΎΠΊΠ°ΡΠ° Π½Π° ΡΡΠ°ΡΠΈΠΊΠ° ΠΊΡΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° ΡΡΠ»ΡΠ³Π°? ΠΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΡΠΎΠ²Π° ΡΠ° Ρ ΠΎΡΡ ΠΈ ΠΏΡΡ, Π½ΠΎ ΠΈΠΌΠ° ΠΈ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ.
ΠΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΎΡ ΠΈΠΌΠ΅Π½Π° Π² ΠΊΠ»ΡΡΡΠ΅Ρ
ΠΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΎΡ ΠΈΠΌΠ΅Π½Π° (ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΎΡ ΠΈΠΌΠ΅Π½Π°) - ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡΠ° Π·Π° Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎ ΡΠ°Π·Π΄Π΅Π»ΡΠ½Π΅ Π½Π° ΡΠ΅ΡΡΡΡΠΈΡΠ΅ Π² Kubernetes (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π½Π° ΡΡΠ΅Π½Π°ΡΠ°, ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²ΠΎΡΠΎ ΠΈ Ρ.Π½.). ΠΠΌΠ° Ingress ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅ΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π°Ρ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½ΠΈ ΠΎΡΠ΄Π΅Π»Π½ΠΎ Π²ΡΠ² Π²ΡΡΠΊΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΎΡ ΠΈΠΌΠ΅Π½Π° (ΠΈ ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° Π½Π°ΡΠΎΡΠ²Π° ΡΡΠ°ΡΠΈΠΊΠ° ΡΠ°ΠΌΠΎ ΠΊΡΠΌ ΠΊΠ°ΠΏΡΡΠ»ΠΈΡΠ΅ Π½Π° ΡΠΎΠ²Π° ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ). Π ΠΈΠΌΠ° ΡΠ°ΠΊΠΈΠ²Π° (ΠΈ ΡΡΡ Π½ΠΎΡΠΎ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎ ΠΌΠ½ΠΎΠ·ΠΈΠ½ΡΡΠ²ΠΎ), ΠΊΠΎΠΈΡΠΎ ΡΠ°Π±ΠΎΡΡΡ Π³Π»ΠΎΠ±Π°Π»Π½ΠΎ Π·Π° ΡΠ΅Π»ΠΈΡ ΠΊΠ»ΡΡΡΠ΅Ρ - ΠΏΡΠΈ ΡΡΡ ΡΡΠ°ΡΠΈΠΊΡΡ ΡΠ΅ Π½Π°ΡΠΎΡΠ²Π° ΠΊΡΠΌ Π²ΡΠ΅ΠΊΠΈ ΠΏΠΎΠ΄ Π½Π° ΠΊΠ»ΡΡΡΠ΅ΡΠ°, Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎΡΠΎ Π½Π° ΠΈΠΌΠ΅Π½Π°ΡΠ°.
ΠΠ±ΡΠ°Π·ΡΠΈ Π·Π° Π³ΠΎΡΠ½ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡ
ΠΠ°ΠΊ ΡΠ΅ Π½Π°ΡΠΎΡΠ²Π° ΡΡΠ°ΡΠΈΠΊΡΡ ΠΊΡΠΌ Π·Π΄ΡΠ°Π²ΠΈ ΠΊΠΎΠΏΠΈΡ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ, ΡΡΠ»ΡΠ³ΠΈΡΠ΅? ΠΠΌΠ° ΠΎΠΏΡΠΈΠΈ Ρ Π°ΠΊΡΠΈΠ²Π½ΠΈ ΠΈ ΠΏΠ°ΡΠΈΠ²Π½ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ, ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΈ ΠΎΠΏΠΈΡΠΈ, ΠΏΡΠ΅ΠΊΡΡΠ²Π°ΡΠΈ (ΠΠ° ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΠΈ Π²ΠΈΠΆΡΠ΅ Π½Π°ΠΏΡ.
ΠΠ»Π³ΠΎΡΠΈΡΠΌΠΈ Π·Π° Π±Π°Π»Π°Π½ΡΠΈΡΠ°Π½Π΅
ΠΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠΏΡΠΈΠΈ: ΠΎΡ ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΠΈΡΠ΅
Π·Π°Π²Π΅ΡΠΊΠ°
ΠΠ°ΠΊΠ²ΠΈ ΡΡ Π΅ΠΌΠΈ Π·Π° ΠΎΡΠΎΡΠΈΠ·Π°ΡΠΈΡ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅ΡΡΡ? Basic, digest, oauth, external-auth - ΠΌΠΈΡΠ»Ρ, ΡΠ΅ ΡΠ΅Π·ΠΈ ΠΎΠΏΡΠΈΠΈ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ° ΠΏΠΎΠ·Π½Π°ΡΠΈ. Π’ΠΎΠ²Π° Π΅ Π²Π°ΠΆΠ΅Π½ ΠΊΡΠΈΡΠ΅ΡΠΈΠΉ, Π°ΠΊΠΎ ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ ΡΠΈΠΊΠ»ΠΈ Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈ (ΠΈ/ΠΈΠ»ΠΈ ΡΠ°ΠΌΠΎ ΡΠ°ΡΡΠ½ΠΈ), ΠΊΠΎΠΈΡΠΎ ΡΠ° Π΄ΠΎΡΡΡΠΏΠ½ΠΈ ΡΡΠ΅Π· Ingress.
Π Π°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° ΡΡΠ°ΡΠΈΠΊΠ°
ΠΠΎΠ½ΡΡΠΎΠ»Π΅ΡΡΡ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° Π»ΠΈ ΡΠ°ΠΊΠΈΠ²Π° ΡΠ΅ΡΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΈ Π·Π° ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° ΡΡΠ°ΡΠΈΠΊΠ° ΠΊΠ°ΡΠΎ ΠΊΠ°Π½Π°ΡΡΠ΅ΡΠ° (canary), A / B ΡΠ΅ΡΡΠ²Π°Π½Π΅, ΠΎΡΡΠ°Π·ΡΠ²Π°Π½Π΅ Π½Π° ΡΡΠ°ΡΠΈΠΊΠ° (ΠΎΠ³Π»Π΅Π΄Π°Π»ΠΎ / Π·Π°ΡΠ΅Π½ΡΠ²Π°Π½Π΅)? Π’ΠΎΠ²Π° Π΅ Π½Π°ΠΈΡΡΠΈΠ½Π° Π±ΠΎΠ»Π½Π° ΡΠ΅ΠΌΠ° Π·Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΠΈΡΠΎ ΠΈΠ·ΠΈΡΠΊΠ²Π°Ρ ΡΠΎΡΠ½ΠΎ ΠΈ ΠΏΡΠ΅ΡΠΈΠ·Π½ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΡΡΠ°ΡΠΈΠΊΠ° Π·Π° ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΠ²Π½ΠΎ ΡΠ΅ΡΡΠ²Π°Π½Π΅, ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ Π² ΠΏΡΠΎΠ΄ΡΠΊΡΠ° ΠΎΡΠ»Π°ΠΉΠ½ (ΠΈΠ»ΠΈ Ρ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½ΠΈ Π·Π°Π³ΡΠ±ΠΈ), Π°Π½Π°Π»ΠΈΠ· Π½Π° ΡΡΠ°ΡΠΈΠΊΠ° ΠΈ Ρ.Π½.
ΠΠ»Π°ΡΠ΅Π½ Π°Π±ΠΎΠ½Π°ΠΌΠ΅Π½Ρ
ΠΠΌΠ° Π»ΠΈ ΠΏΠ»Π°ΡΠ΅Π½Π° ΠΎΠΏΡΠΈΡ Π·Π° ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅ΡΠ°, Ρ ΡΠ°Π·ΡΠΈΡΠ΅Π½Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ ΠΈ/ΠΈΠ»ΠΈ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠ° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°?
ΠΡΠ°ΡΠΈΡΠ΅Π½ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ (Web UI)
ΠΠΌΠ° Π»ΠΈ GUI Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ° Π½Π° ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅ΡΠ°? ΠΡΠ½ΠΎΠ²Π½ΠΎ Π·Π° "ΡΠ΄ΠΎΠ±ΡΡΠ²ΠΎ" ΠΈ / ΠΈΠ»ΠΈ Π·Π° ΡΠ΅Π·ΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° Π½Π°ΠΏΡΠ°Π²ΡΡ Π½ΡΠΊΠΎΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ° Π½Π° Ingress'a, Π½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΠ° ΡΡΡ "ΡΡΡΠΎΠ²ΠΈ" ΡΠ°Π±Π»ΠΎΠ½ΠΈ Π΅ Π½Π΅ΡΠ΄ΠΎΠ±Π½Π°. ΠΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, Π°ΠΊΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ ΠΈΡΠΊΠ°Ρ Π΄Π° ΠΏΡΠΎΠ²Π΅Π΄Π°Ρ Π½ΡΠΊΠΎΠΈ Π΅ΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΈ Ρ ΡΡΠ°ΡΠΈΠΊΠ° Π² Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅.
JWT Π²Π°Π»ΠΈΠ΄ΠΈΡΠ°Π½Π΅
ΠΠ°Π»ΠΈΡΠΈΠ΅ΡΠΎ Π½Π° Π²Π³ΡΠ°Π΄Π΅Π½Π° Π²Π°Π»ΠΈΠ΄Π°ΡΠΈΡ Π½Π° JSON ΡΠ΅Π± ΡΠΎΠΊΠ΅Π½ΠΈ Π·Π° Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΡ ΠΈ Π²Π°Π»ΠΈΠ΄ΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ Π΄ΠΎ ΠΊΡΠ°ΠΉΠ½ΠΎΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.
ΠΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π·Π° ΠΏΠ΅ΡΡΠΎΠ½Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ°
Π Π°Π·ΡΠΈΡΡΠ΅ΠΌΠΎΡΡ Π½Π° ΡΠ°Π±Π»ΠΎΠ½Π° Π² ΡΠΌΠΈΡΡΠ» Π½Π° Π½Π°Π»ΠΈΡΠΈΠ΅ Π½Π° ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΈ, ΠΊΠΎΠΈΡΠΎ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Ρ Π΄Π° Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΡΠ²ΠΎΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²ΠΈ, ΡΠ»Π°Π³ΠΎΠ²Π΅ ΠΈ Ρ.Π½. ΠΊΡΠΌ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΈΡΠ΅ ΡΠ°Π±Π»ΠΎΠ½ΠΈ Π·Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ.
ΠΡΠ½ΠΎΠ²Π½ΠΈ DDOS ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΈ Π·Π° Π·Π°ΡΠΈΡΠ°
ΠΡΠΎΡΡΠΈ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΈ Π·Π° ΠΎΠ³ΡΠ°Π½ΠΈΡΠ°Π²Π°Π½Π΅ Π½Π° ΡΠΊΠΎΡΠΎΡΡΡΠ° ΠΈΠ»ΠΈ ΠΏΠΎ-ΡΠ»ΠΎΠΆΠ½ΠΈ ΠΎΠΏΡΠΈΠΈ Π·Π° ΡΠΈΠ»ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΡΠ°ΡΠΈΠΊ Π²ΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° Π°Π΄ΡΠ΅ΡΠΈ, Π±Π΅Π»ΠΈ ΡΠΏΠΈΡΡΡΠΈ, Π΄ΡΡΠΆΠ°Π²ΠΈ ΠΈ Ρ.Π½.
ΠΠ°ΡΠ²ΠΊΠ° Π·Π° ΠΏΡΠΎΡΠ»Π΅Π΄ΡΠ²Π°Π½Π΅
ΠΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΠ΅, ΠΏΡΠΎΡΠ»Π΅Π΄ΡΠ²Π°Π½Π΅ ΠΈ ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ Π½Π° Π·Π°ΡΠ²ΠΊΠΈ ΠΎΡ Ingresses ΠΊΡΠΌ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΈ ΡΡΠ»ΡΠ³ΠΈ/pods, ΠΈ Π² ΠΈΠ΄Π΅Π°Π»Π½ΠΈΡ ΡΠ»ΡΡΠ°ΠΉ ΡΡΡΠΎ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΠ»ΡΠ³ΠΈ/pods.
WAF
ΠΠΎΠ΄ΠΊΡΠ΅ΠΏΠ°
ΠΠΎΠ½ΡΡΠΎΠ»Π΅ΡΠΈ
Π‘ΠΏΠΈΡΡΠΊΡΡ Π½Π° ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠΎΡΠΈΡΠ΅ Π΅ ΡΠΎΡΠΌΠΈΡΠ°Π½ Π²ΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π°
ΠΠ»ΠΈΠ·Π°Π½Π΅ ΠΎΡ Kubernetes
Π£Π΅Π±ΡΠ°ΠΉΡ:
ΠΠΈΡΠ΅Π½Π·: Apache 2.0
Π’ΠΎΠ²Π° Π΅ ΠΎΡΠΈΡΠΈΠ°Π»Π½ΠΈΡΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅Ρ Π·Π° Kubernetes ΠΈ ΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π° ΠΎΡ ΠΎΠ±ΡΠ½ΠΎΡΡΡΠ°. ΠΡΠ΅Π²ΠΈΠ΄Π½ΠΎ ΠΎΡ ΠΈΠΌΠ΅ΡΠΎ, ΡΠΎΠΉ Π΅ Π±Π°Π·ΠΈΡΠ°Π½ Π½Π° nginx ΠΈ Π΅ Π΄ΠΎΠΏΡΠ»Π½Π΅Π½ ΠΎΡ ΡΠ°Π·Π»ΠΈΡΠ΅Π½ Π½Π°Π±ΠΎΡ ΠΎΡ Lua ΠΏΠ»ΡΠ³ΠΈΠ½ΠΈ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ Π·Π° Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ Π½Π° Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠΎΡΠ°Π΄ΠΈ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΡΡΡΠ° Π½Π° ΡΠ°ΠΌΠΈΡ nginx ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½ΠΈΡΠ΅ ΠΌΡ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ, ΠΊΠΎΠ³Π°ΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΊΠ°ΡΠΎ ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅Ρ, ΡΠ°Π·ΠΈ ΠΎΠΏΡΠΈΡ ΠΌΠΎΠΆΠ΅ Π΄Π° Π΅ Π½Π°ΠΉ-Π»Π΅ΡΠ½Π°ΡΠ° ΠΈ Π»Π΅ΡΠ½Π° Π·Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π½Π΅ Π·Π° ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ (Ρ ΡΠ΅Π± ΠΎΠΏΠΈΡ).
Ingress ΠΎΡ NGINX Inc.
Π£Π΅Π±ΡΠ°ΠΉΡ:
ΠΠΈΡΠ΅Π½Π·: Apache 2.0
ΠΡΠΈΡΠΈΠ°Π»Π½ΠΈΡΡ ΠΏΡΠΎΠ΄ΡΠΊΡ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ Π½Π° nginx. ΠΠΌΠ° ΠΏΠ»Π°ΡΠ΅Π½Π° Π²Π΅ΡΡΠΈΡ, Π±Π°Π·ΠΈΡΠ°Π½Π° Π½Π°
ΠΠ΅Π·ΠΏΠ»Π°ΡΠ½Π°ΡΠ° Π²Π΅ΡΡΠΈΡ Π΅ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ Π½Π°ΠΌΠ°Π»Π΅Π½Π°, Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ Π΄ΠΎΡΠΈ Π² ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Ρ ΠΎΡΠΈΡΠΈΠ°Π»Π½ΠΈΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅Ρ (ΠΏΠΎΡΠ°Π΄ΠΈ Π»ΠΈΠΏΡΠ°ΡΠ° Π½Π° ΡΡΡΠΈΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ Lua). Π ΡΡΡΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅ ΠΏΠ»Π°ΡΠ΅Π½ΠΈΡΡ ΠΈΠΌΠ° Π΄ΠΎΡΡΠ° ΡΠΈΡΠΎΠΊΠ° Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ: ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ Π² ΡΠ΅Π°Π»Π½ΠΎ Π²ΡΠ΅ΠΌΠ΅, JWT Π²Π°Π»ΠΈΠ΄ΠΈΡΠ°Π½Π΅, Π°ΠΊΡΠΈΠ²Π½ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π½Π° Π·Π΄ΡΠ°Π²Π΅ΡΠΎ ΠΈ Π΄Ρ. ΠΠ°ΠΆΠ½ΠΎ ΠΏΡΠ΅Π΄ΠΈΠΌΡΡΠ²ΠΎ ΠΏΡΠ΅Π΄ NGINX Ingress Π΅ ΠΏΡΠ»Π½Π°ΡΠ° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° TCP / UDP ΡΡΠ°ΡΠΈΠΊ (ΠΈ Π²ΡΠ² Π²Π΅ΡΡΠΈΡΡΠ° Π½Π° ΠΎΠ±ΡΠ½ΠΎΡΡΡΠ° ΡΡΡΠΎ!). ΠΌΠΈΠ½ΡΡ -
Kong Ingress
Π£Π΅Π±ΡΠ°ΠΉΡ:
ΠΠΈΡΠ΅Π½Π·: Apache 2.0
ΠΡΠΎΠ΄ΡΠΊΡ, ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ΅Π½ ΠΎΡ Kong Inc. Π² Π΄Π²Π΅ Π²Π΅ΡΡΠΈΠΈ: ΠΊΠΎΠΌΠ΅ΡΡΠΈΠ°Π»Π½Π° ΠΈ Π±Π΅Π·ΠΏΠ»Π°ΡΠ½Π°. ΠΠ°Π·ΠΈΡΠ°Π½ Π½Π° nginx, ΠΊΠΎΠΉΡΠΎ Π΅ ΡΠ°Π·ΡΠΈΡΠ΅Π½ Ρ Π³ΠΎΠ»ΡΠΌ Π±ΡΠΎΠΉ Lua ΠΌΠΎΠ΄ΡΠ»ΠΈ.
ΠΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½ΠΎ ΡΠΎΠΉ Π±Π΅ΡΠ΅ ΡΠΎΠΊΡΡΠΈΡΠ°Π½ Π²ΡΡΡ Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° ΠΈ ΠΌΠ°ΡΡΡΡΡΠΈΠ·ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° API Π·Π°ΡΠ²ΠΊΠΈ, Ρ.Π΅. ΠΊΠ°ΡΠΎ API Gateway, Π½ΠΎ Π² ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΡΠ΅ Π΅ ΠΏΡΠ΅Π²ΡΡΠ½Π°Π» Π² ΠΏΡΠ»Π½ΠΎΡΠ΅Π½Π΅Π½ Ingress ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅Ρ. ΠΡΠ½ΠΎΠ²Π½ΠΈ ΠΏΡΠ΅Π΄ΠΈΠΌΡΡΠ²Π°: ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΠΌΠΎΠ΄ΡΠ»ΠΈ (Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ ΠΎΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈ Π½Π° ΡΡΠ΅ΡΠΈ ΡΡΡΠ°Π½ΠΈ), ΠΊΠΎΠΈΡΠΎ ΡΠ° Π»Π΅ΡΠ½ΠΈ Π·Π° ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½Π΅ ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π½Π΅ ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ° ΡΠΈΡΠΎΠΊ Π½Π°Π±ΠΎΡ ΠΎΡ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠ³ΡΠ°Π΄Π΅Π½ΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΎΠ±Π°ΡΠ΅ Π²Π΅ΡΠ΅ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Ρ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ. ΠΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° Π·Π°Π΄Π°Π½ΠΈΠ΅ ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠ²Π° Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° CRD ΡΠ΅ΡΡΡΡΠΈ.
ΠΠ°ΠΆΠ½Π° Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠ° Π½Π° ΠΏΡΠΎΠ΄ΡΠΊΡΠ° - ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π² ΡΠ°ΠΌΠΊΠΈΡΠ΅ Π½Π° Π΅Π΄ΠΈΠ½ ΠΈ ΡΡΡ ΠΊΠΎΠ½ΡΡΡ (Π²ΠΌΠ΅ΡΡΠΎ ΠΊΡΡΡΡΠΎΡΠ°Π½ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΎΡ ΠΈΠΌΠ΅Π½Π°) Π΅ ΡΠΏΠΎΡΠ½Π° ΡΠ΅ΠΌΠ°: Π·Π° Π½ΡΠΊΠΎΠΈ ΡΠ΅ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΠΊΠ°ΡΠΎ Π½Π΅Π΄ΠΎΡΡΠ°ΡΡΠΊ (ΡΡΡΠ±Π²Π° Π΄Π° ΡΡΠ·Π΄Π°Π²Π°ΡΠ΅ ΠΎΠ±Π΅ΠΊΡΠΈ Π·Π° Π²ΡΠ΅ΠΊΠΈ ΠΊΠΎΠ½ΡΡΡ), Π° Π·Π° Π½ΡΠΊΠΎΠΉ ΡΠΎΠ²Π° Π΅ ΡΡΠ½ΠΊΡΠΈΡ ( bΠΎΠΠΎ-Π²ΠΈΡΠΎΠΊΠΎ Π½ΠΈΠ²ΠΎ Π½Π° ΠΈΠ·ΠΎΠ»Π°ΡΠΈΡ, ΠΊΠ°ΡΠΎ Π°ΠΊΠΎ Π΅Π΄ΠΈΠ½ΠΈΡΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅Ρ Π΅ ΠΏΠΎΠ²ΡΠ΅Π΄Π΅Π½, ΡΠΎΠ³Π°Π²Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΡΡ Π΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ ΡΠ°ΠΌΠΎ Π΄ΠΎ Π²Π΅ΡΠΈΠ³Π°ΡΠ°).
Π’ΡΠ°Π΅ΡΠΈΠΊ
Π£Π΅Π±ΡΠ°ΠΉΡ:
ΠΠΈΡΠ΅Π½Π·: MIT
ΠΡΠΎΠΊΡΠΈ, ΠΊΠΎΠΉΡΠΎ ΠΏΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½ΠΎ Π΅ ΡΡΠ·Π΄Π°Π΄Π΅Π½, Π·Π° Π΄Π° ΡΠ°Π±ΠΎΡΠΈ Ρ ΠΌΠ°ΡΡΡΡΡΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° Π·Π°ΡΠ²ΠΊΠΈ Π·Π° ΠΌΠΈΠΊΡΠΎΡΡΠ»ΡΠ³ΠΈ ΠΈ ΡΡΡ Π½Π°ΡΠ° Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½Π° ΡΡΠ΅Π΄Π°. ΠΡΡΡΠΊ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ: Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ° Π±Π΅Π· ΠΈΠ·ΠΎΠ±ΡΠΎ Π΄Π° ΡΠ΅ΡΡΠ°ΡΡΠΈΡΠ°ΡΠ΅, ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° Π³ΠΎΠ»ΡΠΌ Π±ΡΠΎΠΉ ΠΌΠ΅ΡΠΎΠ΄ΠΈ Π·Π° Π±Π°Π»Π°Π½ΡΠΈΡΠ°Π½Π΅, ΡΠ΅Π± ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, ΠΏΡΠ΅Π½Π°ΡΠΎΡΠ²Π°Π½Π΅ Π½Π° ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ, ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΈ, REST API, Π²Π΅ΡΡΠΈΠΈ Π½Π° Canary ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΡΡΠ³ΠΈ. ΠΡΡΠ³Π° Ρ ΡΠ±Π°Π²Π° ΡΡΠ½ΠΊΡΠΈΡ Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π½Π° Let's Encrypt ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈ ΠΎΡ ΠΊΡΡΠΈΡΡΠ°. ΠΠ΅Π΄ΠΎΡΡΠ°ΡΡΠΊΡΡ Π΅, ΡΠ΅ Π·Π° Π΄Π° ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ° Π²ΠΈΡΠΎΠΊΠ° Π½Π°Π»ΠΈΡΠ½ΠΎΡΡ (HA), ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅ΡΡΡ ΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ° ΠΈ ΡΠ²ΡΡΠΆΠ΅ ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΎ KV Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅.
HAProxy
Π£Π΅Π±ΡΠ°ΠΉΡ:
ΠΠΈΡΠ΅Π½Π·: Apache 2.0
HAProxy ΠΎΡΠ΄Π°Π²Π½Π° Π΅ ΠΈΠ·Π²Π΅ΡΡΠ΅Π½ ΠΊΠ°ΡΠΎ ΠΏΡΠΎΠΊΡΠΈ ΠΈ Π±Π°Π»Π°Π½ΡΠΈΡΠ°Ρ ΡΡΠ°ΡΠΈΠΊ. ΠΠ°ΡΠΎ ΡΠ°ΡΡ ΠΎΡ Kubernetes ΠΊΠ»ΡΡΡΠ΅Ρ, ΡΠΎΠΉ ΠΏΡΠ΅Π΄Π»Π°Π³Π° βΠΌΠ΅ΠΊΠ°β Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ° (Π±Π΅Π· Π·Π°Π³ΡΠ±Π° Π½Π° ΡΡΠ°ΡΠΈΠΊ), ΠΎΡΠΊΡΠΈΠ²Π°Π½Π΅ Π½Π° ΡΡΠ»ΡΠ³ΠΈ Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° DNS, Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° API. ΠΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΏΡΠΈΠ²Π»Π΅ΠΊΠ°ΡΠ΅Π»Π½ΠΎ Π½Π°ΠΏΡΠ»Π½ΠΎ Π΄Π° ΠΏΠ΅ΡΡΠΎΠ½Π°Π»ΠΈΠ·ΠΈΡΠ°ΡΠ΅ ΡΠ°Π±Π»ΠΎΠ½Π° Π·Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΡΡΠ΅Π· Π·Π°ΠΌΡΠ½Π° Π½Π° CM, ΠΊΠ°ΠΊΡΠΎ ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈΡΠ΅ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° Sprig Π² Π½Π΅Π³ΠΎ. ΠΠ°ΡΠΎ ΡΡΠ»ΠΎ, ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡΡ Π°ΠΊΡΠ΅Π½Ρ Π½Π° ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΡΠΎ Π΅ Π²ΡΡΡ Ρ Π²ΠΈΡΠΎΠΊΠ°ΡΠ° ΡΠΊΠΎΡΠΎΡΡ, Π½Π΅ΠΉΠ½Π°ΡΠ° ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΠΈ Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡ Π² ΠΈΠ·ΡΠ°Π·Ρ ΠΎΠ΄Π²Π°Π½ΠΈΡΠ΅ ΡΠ΅ΡΡΡΡΠΈ. ΠΡΠ΅Π΄ΠΈΠΌΡΡΠ²ΠΎΡΠΎ Π½Π° ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅ΡΠ° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π½Π° ΡΠ΅ΠΊΠΎΡΠ΄Π΅Π½ Π±ΡΠΎΠΉ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΈ Π·Π° Π±Π°Π»Π°Π½ΡΠΈΡΠ°Π½Π΅.
ΠΡΡΠ½ΠΈΠΊ Π² ΠΊΠΎΡΠΌΠΎΡΠ°
Π£Π΅Π±ΡΠ°ΠΉΡ:
ΠΠΈΡΠ΅Π½Π·: Apache 2.0
ΠΠ°Π·ΠΈΡΠ°Π½ Π½Π° HAproxy ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅Ρ, ΠΊΠΎΠΉΡΠΎ Π΅ ΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½ΠΈΡΠ°Π½ ΠΊΠ°ΡΠΎ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»Π½ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΠ΅ΡΠΎ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΡΠΈΡΠΎΠΊ Π½Π°Π±ΠΎΡ ΠΎΡ ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π° Π³ΠΎΠ»ΡΠΌ Π±ΡΠΎΠΉ Π΄ΠΎΡΡΠ°Π²ΡΠΈΡΠΈ. ΠΡΠ΅Π΄Π»Π°Π³Π° ΡΠ΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° Π±Π°Π»Π°Π½ΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΡΠ°ΡΠΈΠΊΠ° Π½Π° L7 ΠΈ L4, Π° Π±Π°Π»Π°Π½ΡΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° TCP L4 ΡΡΠ°ΡΠΈΠΊ ΠΊΠ°ΡΠΎ ΡΡΠ»ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π½Π°ΡΠ΅ΡΠ΅ Π΅Π΄Π½Π° ΠΎΡ ΠΊΠ»ΡΡΠΎΠ²ΠΈΡΠ΅ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ Π½Π° ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΡΠΎ.
ΠΊΠΎΠ½ΡΡΡΠ°
Π£Π΅Π±ΡΠ°ΠΉΡ:
ΠΠΈΡΠ΅Π½Π·: Apache 2.0
Π’ΠΎΠ²Π° ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½Π΅ ΡΠ΅ ΠΎΡΠ½ΠΎΠ²Π°Π²Π° ΡΠ°ΠΌΠΎ Π½Π° Envoy: ΡΠΎ Π΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ΅Π½ΠΎ ΠΎΡ ΡΡΠ²ΠΌΠ΅ΡΡΠ½ΠΎ Ρ Π°Π²ΡΠΎΡΠΈΡΠ΅ Π½Π° ΡΠΎΠ²Π° ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎ ΠΏΡΠΎΠΊΡΠΈ. ΠΠ°ΠΆΠ½Π° Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠ° Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° ΠΎΡΠ΄Π΅Π»Π½ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΡΠ΅ΡΡΡΡΠΈΡΠ΅ Π½Π° Ingress Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΡΠ΅ΡΡΡΡΠΈΡΠ΅ Π½Π° IngressRoute CRD. ΠΠ° ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ Ρ ΠΌΠ½ΠΎΠ³ΠΎ Π΅ΠΊΠΈΠΏΠΈ Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠΈ Π΅Π΄ΠΈΠ½ ΠΈ ΡΡΡ ΠΊΠ»ΡΡΡΠ΅Ρ, ΡΠΎΠ²Π° ΠΏΠΎΠΌΠ°Π³Π° Π΄Π° ΡΠ΅ ΡΠ²Π΅Π»ΠΈΡΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»Π½ΠΎ ΡΠΈΠ³ΡΡΠ½ΠΎΡΡΡΠ° ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ° Ρ ΡΡΠ°ΡΠΈΠΊ Π² ΡΡΡΠ΅Π΄Π½ΠΈ ΡΠΈΠΊΠ»ΠΈ ΠΈ Π΄Π° Π³ΠΈ ΠΏΡΠ΅Π΄ΠΏΠ°Π·ΠΈ ΠΎΡ Π³ΡΠ΅ΡΠΊΠΈ ΠΏΡΠΈ ΠΏΡΠΎΠΌΡΠ½Π° Π½Π° ΡΠ΅ΡΡΡΡΠΈΡΠ΅ Π½Π° Ingress.
Π’ΠΎΠΉ ΡΡΡΠΎ ΡΠ°ΠΊΠ° ΠΏΡΠ΅Π΄Π»Π°Π³Π° ΡΠ°Π·ΡΠΈΡΠ΅Π½ Π½Π°Π±ΠΎΡ ΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ΠΈ Π·Π° Π±Π°Π»Π°Π½ΡΠΈΡΠ°Π½Π΅ (ΠΈΠΌΠ° ΠΎΠ³Π»Π΅Π΄Π°Π»Π½ΠΎ ΠΊΠΎΠΏΠΈΡΠ°Π½Π΅ Π½Π° Π·Π°ΡΠ²ΠΊΠΈ, Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΠΏΠΎΠ²ΡΠΎΡΠ΅Π½ΠΈΠ΅, ΠΎΠ³ΡΠ°Π½ΠΈΡΠ°Π²Π°Π½Π΅ Π½Π° ΡΠΊΠΎΡΠΎΡΡΡΠ° Π½Π° Π·Π°ΡΠ²ΠΊΠΈΡΠ΅ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΡΡΠ³ΠΈ), ΠΏΠΎΠ΄ΡΠΎΠ±Π΅Π½ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ Π½Π° ΠΏΠΎΡΠΎΠΊΠ° Π½Π° ΡΡΠ°ΡΠΈΠΊΠ° ΠΈ ΠΏΠΎΠ²ΡΠ΅Π΄ΠΈ. ΠΠΎΠΆΠ΅ Π±ΠΈ Π·Π° Π½ΡΠΊΠΎΠΉ ΡΠ΅ Π±ΡΠ΄Π΅ Π·Π½Π°ΡΠΈΡΠ΅Π»Π΅Π½ Π½Π΅Π΄ΠΎΡΡΠ°ΡΡΠΊ Π»ΠΈΠΏΡΠ°ΡΠ° Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° Π»Π΅ΠΏΠΊΠ°Π²ΠΈ ΡΠ΅ΡΠΈΠΈ (Π²ΡΠΏΡΠ΅ΠΊΠΈ ΡΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΠ°
Istio Ingress
Π£Π΅Π±ΡΠ°ΠΉΡ:
ΠΠΈΡΠ΅Π½Π·: Apache 2.0
Π¦ΡΠ»ΠΎΡΡΠ½ΠΎ ΠΌΡΠ΅ΠΆΠΎΠ²ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π·Π° ΡΡΠ»ΡΠ³Π°, ΠΊΠΎΠ΅ΡΠΎ Π΅ Π½Π΅ ΡΠ°ΠΌΠΎ Ingress ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅Ρ, ΠΊΠΎΠΉΡΠΎ ΡΠΏΡΠ°Π²Π»ΡΠ²Π° Π²Ρ
ΠΎΠ΄ΡΡΠΈΡ ΡΡΠ°ΡΠΈΠΊ ΠΎΡΠ²ΡΠ½, Π½ΠΎ ΡΡΡΠΎ ΡΠ°ΠΊΠ° ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠ° ΡΠ΅Π»ΠΈΡ ΡΡΠ°ΡΠΈΠΊ Π² ΡΠ°ΠΌΠΊΠΈΡΠ΅ Π½Π° ΠΊΠ»ΡΡΡΠ΅ΡΠ°. ΠΠΎΠ΄ ΠΊΠ°ΠΏΠ°ΠΊΠ°, Envoy ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΊΠ°ΡΠΎ ΠΏΠΎΠΌΠΎΡΠ½ΠΎ ΡΡΠ΅Π΄ΡΡΠ²ΠΎ Π·Π° Π²ΡΡΠΊΠ° ΡΡΠ»ΡΠ³Π°. ΠΠΎ ΡΡΡΠ΅ΡΡΠ²ΠΎ ΡΠΎΠ²Π° Π΅ Π³ΠΎΠ»ΡΠΌ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ, ΠΊΠΎΠΉΡΠΎ βΠΌΠΎΠΆΠ΅ Π²ΡΠΈΡΠΊΠΎβ, Π° ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° ΠΌΡ ΠΈΠ΄Π΅Ρ Π΅ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»Π½Π° ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΠΎΡΡ, ΡΠ°Π·ΡΠΈΡΡΠ΅ΠΌΠΎΡΡ, ΡΠΈΠ³ΡΡΠ½ΠΎΡΡ ΠΈ ΠΏΡΠΎΠ·ΡΠ°ΡΠ½ΠΎΡΡ. Π‘ Π½Π΅Π³ΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π½Π°ΡΡΡΠΎΠΈΡΠ΅ ΡΠΈΠ½ΠΎ ΠΌΠ°ΡΡΡΡΡΠΈΠ·ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΡΡΠ°ΡΠΈΠΊΠ°, ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π·Π° Π΄ΠΎΡΡΡΠΏ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΠ»ΡΠ³ΠΈΡΠ΅, Π±Π°Π»Π°Π½ΡΠΈΡΠ°Π½Π΅, Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΠ΅, ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π²Π°Π½Π΅ Π½Π° ΠΊΠ°Π½Π°ΡΠΈ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΡΡΠ³ΠΈ. ΠΡΠΎΡΠ΅ΡΠ΅ΡΠ΅ ΠΏΠΎΠ²Π΅ΡΠ΅ Π·Π° Istio Π² ΠΏΠΎΡΠ΅Π΄ΠΈΡΠ°ΡΠ° ΠΎΡ ΡΡΠ°ΡΠΈΠΈ "
ΠΠΎΡΠ»Π°Π½ΠΈΠΊ
Π£Π΅Π±ΡΠ°ΠΉΡ:
ΠΠΈΡΠ΅Π½Π·: Apache 2.0
ΠΡΡΠ³ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, Π±Π°Π·ΠΈΡΠ°Π½ΠΎ Π½Π° Envoy. ΠΠΌΠ° Π±Π΅Π·ΠΏΠ»Π°ΡΠ½ΠΈ ΠΈ ΡΡΡΠ³ΠΎΠ²ΡΠΊΠΈ Π²Π΅ΡΡΠΈΠΈ. Π’ΠΎΠΉ Π΅ ΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½ΠΈΡΠ°Π½ ΠΊΠ°ΡΠΎ βΠ½Π°ΠΏΡΠ»Π½ΠΎ Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½ Π·Π° Kubernetesβ, ΠΊΠΎΠ΅ΡΠΎ Π½ΠΎΡΠΈ ΡΡΠΎΡΠ²Π΅ΡΠ½ΠΈΡΠ΅ ΠΏΡΠ΅Π΄ΠΈΠΌΡΡΠ²Π° (ΡΡΡΠ½Π° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ ΠΌΠ΅ΡΠΎΠ΄ΠΈΡΠ΅ ΠΈ ΠΎΠ±Π΅ΠΊΡΠΈΡΠ΅ Π½Π° ΠΊΠ»ΡΡΡΠ΅ΡΠ° K8s).
Π’Π°Π±Π»ΠΈΡΠ° Π·Π° ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅
Π ΡΠ°ΠΊΠ°, ΠΊΡΠ»ΠΌΠΈΠ½Π°ΡΠΈΡΡΠ° Π½Π° ΡΡΠ°ΡΠΈΡΡΠ° Π΅ ΡΠ°Π·ΠΈ ΠΎΠ³ΡΠΎΠΌΠ½Π° ΡΠ°Π±Π»ΠΈΡΠ°:
ΠΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΊΠ»ΠΈΠΊΠ½Π΅ Π·Π° ΠΏΠΎ-Π±Π»ΠΈΠ·ΡΠΊ ΠΏΡΠ΅Π³Π»Π΅Π΄ ΠΈ ΡΡΡΠΎ ΡΠ°ΠΊΠ° Π΅ Π½Π°Π»ΠΈΡΠ΅Π½ Π²ΡΠ² ΡΠΎΡΠΌΠ°Ρ
ΠΠ° Π΄Π° ΠΎΠ±ΠΎΠ±ΡΠΈΠΌ
Π¦Π΅Π»ΡΠ° Π½Π° ΡΠ°Π·ΠΈ ΡΡΠ°ΡΠΈΡ Π΅ Π΄Π° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈ ΠΏΠΎ-ΠΏΡΠ»Π½ΠΎ ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ (Π½ΠΎ Π² Π½ΠΈΠΊΠ°ΠΊΡΠ² ΡΠ»ΡΡΠ°ΠΉ Π½Π΅ ΠΈΠ·ΡΠ΅ΡΠΏΠ°ΡΠ΅Π»Π½ΠΎ!) Π·Π° ΡΠΎΠ²Π° ΠΊΠ°ΠΊΡΠ² ΠΈΠ·Π±ΠΎΡ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ Π²ΡΠ² Π²Π°ΡΠΈΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ΅Π½ ΡΠ»ΡΡΠ°ΠΉ. ΠΠ°ΠΊΡΠΎ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ, Π²ΡΠ΅ΠΊΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅Ρ ΠΈΠΌΠ° ΡΠ²ΠΎΠΈΡΠ΅ ΠΏΡΠ΅Π΄ΠΈΠΌΡΡΠ²Π° ΠΈ Π½Π΅Π΄ΠΎΡΡΠ°ΡΡΡΠΈ...
ΠΠ»Π°ΡΠΈΡΠ΅ΡΠΊΠΈΡΡ Ingress ΠΎΡ Kubernetes Π΅ Π΄ΠΎΠ±ΡΡ Π·Π° ΡΠ²ΠΎΡΡΠ° Π½Π°Π»ΠΈΡΠ½ΠΎΡΡ ΠΈ Π΄ΠΎΠΊΠ°Π·Π°Π½ΠΎΡΡ, Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΎ Π±ΠΎΠ³Π°ΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ - Π² ΠΎΠ±ΡΠΈΡ ΡΠ»ΡΡΠ°ΠΉ ΡΡΡΠ±Π²Π° Π΄Π° Π΅ βΠ΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΎ Π·Π° ΠΎΡΠΈΡΠ΅β. ΠΡΠΏΡΠ΅ΠΊΠΈ ΡΠΎΠ²Π°, Π°ΠΊΠΎ ΠΈΠΌΠ° ΠΏΠΎΠ²ΠΈΡΠ΅Π½ΠΈ ΠΈΠ·ΠΈΡΠΊΠ²Π°Π½ΠΈΡ Π·Π° ΡΡΠ°Π±ΠΈΠ»Π½ΠΎΡΡ, Π½ΠΈΠ²ΠΎ Π½Π° ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΡΠ°Π·Π²ΠΈΡΠΈΠ΅, ΡΡΡΠ±Π²Π° Π΄Π° ΠΎΠ±ΡΡΠ½Π΅ΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ingress Ρ NGINX Plus ΠΈ ΠΏΠ»Π°ΡΠ΅Π½ Π°Π±ΠΎΠ½Π°ΠΌΠ΅Π½Ρ. Kong ΠΈΠΌΠ° Π½Π°ΠΉ-Π±ΠΎΠ³Π°ΡΠΈΡ Π½Π°Π±ΠΎΡ ΠΎΡ ΠΏΠ»ΡΠ³ΠΈΠ½ΠΈ (ΠΈ ΡΡΠΎΡΠ²Π΅ΡΠ½ΠΎ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈΡΠ΅, ΠΊΠΎΠΈΡΠΎ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΡ), Π° Π² ΠΏΠ»Π°ΡΠ΅Π½Π°ΡΠ° Π²Π΅ΡΡΠΈΡ ΡΠ΅ ΡΠ° ΠΎΡΠ΅ ΠΏΠΎΠ²Π΅ΡΠ΅. ΠΠΌΠ° ΡΠΈΡΠΎΠΊΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π·Π° ΡΠ°Π±ΠΎΡΠ° ΠΊΠ°ΡΠΎ API Gateway, Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ, Π±Π°Π·ΠΈΡΠ°Π½Π° Π½Π° CRD ΡΠ΅ΡΡΡΡΠΈ, ΠΊΠ°ΠΊΡΠΎ ΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΠΈ ΡΡΠ»ΡΠ³ΠΈ Π½Π° Kubernetes.
Π‘ ΠΏΠΎΠ²ΠΈΡΠ΅Π½ΠΈ ΠΈΠ·ΠΈΡΠΊΠ²Π°Π½ΠΈΡ Π·Π° Π±Π°Π»Π°Π½ΡΠΈΡΠ°Π½Π΅ ΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΈ Π·Π° ΠΎΡΠΎΡΠΈΠ·Π°ΡΠΈΡ, ΠΏΠΎΠ³Π»Π΅Π΄Π½Π΅ΡΠ΅ Traefik ΠΈ HAProxy. Π’ΠΎΠ²Π° ΡΠ° ΠΏΡΠΎΠ΅ΠΊΡΠΈ Ρ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄, Π΄ΠΎΠΊΠ°Π·Π°Π»ΠΈ ΡΠ΅ ΠΏΡΠ΅Π· Π³ΠΎΠ΄ΠΈΠ½ΠΈΡΠ΅, ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΠ°Π±ΠΈΠ»Π½ΠΈ ΠΈ Π°ΠΊΡΠΈΠ²Π½ΠΎ ΡΠ°Π·Π²ΠΈΠ²Π°ΡΠΈ ΡΠ΅. Contour Π΅ Π½Π° ΠΏΠ°Π·Π°ΡΠ° ΠΎΡ Π½ΡΠΊΠΎΠ»ΠΊΠΎ Π³ΠΎΠ΄ΠΈΠ½ΠΈ, Π½ΠΎ Π²ΡΠ΅ ΠΎΡΠ΅ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΡΠ²ΡΡΠ΄Π΅ ΠΌΠ»Π°Π΄ ΠΈ ΠΈΠΌΠ° ΡΠ°ΠΌΠΎ ΠΎΡΠ½ΠΎΠ²Π½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ, Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ ΠΊΡΠΌ Envoy. ΠΠΊΠΎ ΠΈΠΌΠ° ΠΈΠ·ΠΈΡΠΊΠ²Π°Π½ΠΈΡ Π·Π° Π½Π°Π»ΠΈΡΠΈΠ΅ΡΠΎ / Π²Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ΡΠΎ Π½Π° WAF ΠΏΡΠ΅Π΄ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ, ΡΡΡΠ±Π²Π° Π΄Π° ΠΎΠ±ΡΡΠ½Π΅ΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΡΡΠΈΡ Ingress ΠΎΡ Kubernetes ΠΈΠ»ΠΈ HAProxy.
Π Π½Π°ΠΉ-Π±ΠΎΠ³Π°ΡΠΈΡΠ΅ ΠΏΠΎ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ Π½Π° ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ° ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΡΠ΅, ΠΈΠ·Π³ΡΠ°Π΄Π΅Π½ΠΈ Π²ΡΡΡ Ρ Envoy, ΠΎΡΠΎΠ±Π΅Π½ΠΎ Istio. ΠΠ·Π³Π»Π΅ΠΆΠ΄Π°, ΡΠ΅ Π΅ Π²ΡΠ΅ΠΎΠ±Ρ Π²Π°ΡΠ½ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΠ΅ΡΠΎ βΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΡΠ°Π²ΠΈ Π²ΡΠΈΡΠΊΠΎβ, ΠΊΠΎΠ΅ΡΠΎ ΠΎΠ±Π°ΡΠ΅ ΠΎΠ·Π½Π°ΡΠ°Π²Π° ΠΈ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΠΏΠΎ-Π²ΠΈΡΠΎΠΊ Π²Ρ ΠΎΠ΄Π΅Π½ ΠΏΡΠ°Π³ Π·Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π½Π΅/ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅/Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠ°Π½Π΅ Π² ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Ρ Π΄ΡΡΠ³ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡ.
ΠΠ·Π±ΡΠ°Ρ ΠΌΠ΅ ΠΈ Π²ΡΠ΅ ΠΎΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Ingress ΠΎΡ Kubernetes ΠΊΠ°ΡΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ΅Π½ ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅Ρ, ΠΊΠΎΠΉΡΠΎ ΠΏΠΎΠΊΡΠΈΠ²Π° 80-90% ΠΎΡ Π½ΡΠΆΠ΄ΠΈΡΠ΅. Π’ΠΎΠΉ Π΅ Π΄ΠΎΡΡΠ° Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½, Π»Π΅ΡΠ΅Π½ Π·Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π½Π΅ ΠΈ ΡΠ°Π·ΡΠΈΡΡΠ²Π°Π½Π΅. ΠΠ°ΡΠΎ ΡΡΠ»ΠΎ, ΠΏΡΠΈ Π»ΠΈΠΏΡΠ° Π½Π° ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΠΈ ΠΈΠ·ΠΈΡΠΊΠ²Π°Π½ΠΈΡ, ΡΠΎΠΉ ΡΡΡΠ±Π²Π° Π΄Π° ΠΎΡΠ³ΠΎΠ²Π°ΡΡ Π½Π° ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ ΠΊΠ»ΡΡΡΠ΅ΡΠΈ / ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΡ ΡΡΡΠΈΡΠ΅ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»Π½ΠΈ ΠΈ ΡΡΠ°Π²Π½ΠΈΡΠ΅Π»Π½ΠΎ ΠΏΡΠΎΡΡΠΈ ΠΏΡΠΎΠ΄ΡΠΊΡΠΈ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΠΏΡΠ΅ΠΏΠΎΡΡΡΠ°Ρ Traefik ΠΈ HAProxy.
PS
ΠΡΠΎΡΠ΅ΡΠ΅ΡΠ΅ ΡΡΡΠΎ Π² Π½Π°ΡΠΈΡ Π±Π»ΠΎΠ³:
- βΠΠ°Π·Π°Π΄ ΠΊΡΠΌ ΠΌΠΈΠΊΡΠΎΡΡΠ»ΡΠ³ΠΈΡΠ΅ Ρ Istioβ:
ΡΠ°ΡΡ 1 (Π²ΡΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡΠ΅ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ) ,ΡΠ°ΡΡ 2 (ΠΌΠ°ΡΡΡΡΡΠΈΠ·ΠΈΡΠ°Π½Π΅, ΠΊΠΎΠ½ΡΡΠΎΠ» Π½Π° ΡΡΠ°ΡΠΈΠΊΠ°) ,ΡΠ°ΡΡ 3 (ΡΠ΄ΠΎΡΡΠΎΠ²Π΅ΡΡΠ²Π°Π½Π΅ ΠΈ ΠΎΡΠΎΡΠΈΠ·Π°ΡΠΈΡ) ; - Β«
Π‘ΡΠ²Π΅ΡΠΈ ΠΈ ΡΡΠΈΠΊΠΎΠ²Π΅ Π½Π° Kubernetes: ΠΏΠ΅ΡΡΠΎΠ½Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ ΡΡΡΠ°Π½ΠΈΡΠΈ Π·Π° Π³ΡΠ΅ΡΠΊΠΈ Π² NGINX Ingress Β»; - Β«
Π‘ΡΠ²Π΅ΡΠΈ ΠΈ ΡΡΠΈΠΊΠΎΠ²Π΅ Π½Π° Kubernetes: Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΡΠ°ΠΉΡΠΎΠ²Π΅ Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈ ".
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: www.habr.com