ΠΡΠ° ΡΡΠ°ΡΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ Π² ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΡΡΡΡΠΎΠ΅Π½Π° Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΠΊΠ° Π½Π°Π³ΡΡΠ·ΠΊΠΈ Π² Kubernetes, ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ ΠΏΡΠΈ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ Π΄ΠΎΠ»Π³ΠΎΠΆΠΈΠ²ΡΡΠΈΡ
ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ ΠΈ ΠΏΠΎΡΠ΅ΠΌΡ ΡΡΠΎΠΈΡ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΠΊΡ Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°, Π΅ΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ HTTP/2, gRPC, RSockets, AMQP ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ Π΄ΠΎΠ»Π³ΠΎΠΆΠΈΠ²ΡΡΠΈΠ΅ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Ρ.Β
ΠΠ΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΠΏΠ΅ΡΠ΅ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΡΡΠ°ΡΠΈΠΊ Π² KubernetesΒ
Kubernetes ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π΄Π²Π΅ ΡΠ΄ΠΎΠ±Π½ΡΠ΅ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΠΈ Π΄Π»Ρ Π²ΡΠΊΠ°ΡΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ: ΡΠ΅ΡΠ²ΠΈΡΡ (Services) ΠΈ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ (Deployments).
Π Π°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡ, ΠΊΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΈ ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠΏΠΈΠΉ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ Π·Π°ΠΏΡΡΠ΅Π½ΠΎ Π² Π»ΡΠ±ΠΎΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ. ΠΠ°ΠΆΠ΄ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ°Π·Π²ΠΎΡΠ°ΡΠΈΠ²Π°Π΅ΡΡΡ ΠΊΠ°ΠΊ ΠΏΠΎΠ΄ (Pod) ΠΈ Π΅ΠΌΡ Π½Π°Π·Π½Π°ΡΠ°Π΅ΡΡΡ IP-Π°Π΄ΡΠ΅Ρ.
Π‘Π΅ΡΠ²ΠΈΡΡ ΠΏΠΎ ΡΡΠ½ΠΊΡΠΈΡΠΌ ΠΏΠΎΡ ΠΎΠΆΠΈ Π½Π° Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΡΠΈΠΊ Π½Π°Π³ΡΡΠ·ΠΊΠΈ. ΠΠ½ΠΈ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Ρ Π΄Π»Ρ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΡΠ°ΡΠΈΠΊΠ° ΠΏΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Ρ ΠΏΠΎΠ΄ΠΎΠ².
ΠΠΎΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊ ΡΡΠΎ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ.
- ΠΠ° Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ΅ Π½ΠΈΠΆΠ΅ Π²Ρ Π²ΠΈΠ΄ΠΈΡΠ΅ ΡΡΠΈ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΡΠΈΠΊ Π½Π°Π³ΡΡΠ·ΠΊΠΈ:
- ΠΠ°Π»Π°Π½ΡΠΈΡΠΎΠ²ΡΠΈΠΊ Π½Π°Π³ΡΡΠ·ΠΊΠΈ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΡΠ΅ΡΠ²ΠΈΡ (Service), Π΅ΠΌΡ ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½ IP-Π°Π΄ΡΠ΅Ρ. ΠΡΠ±ΠΎΠΉ Π²Ρ ΠΎΠ΄ΡΡΠΈΠΉ Π·Π°ΠΏΡΠΎΡ ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡ ΠΈΠ· ΠΏΠΎΠ΄ΠΎΠ²:
- Π‘ΡΠ΅Π½Π°ΡΠΈΠΉ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠ² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠ°ΠΌ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΡΠ°Π·Π²ΠΎΡΠ°ΡΠΈΠ²Π°ΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΏΠΎΠ΄:
- ΠΠ°ΠΆΠ΄ΠΎΠΌΡ ΠΏΠΎΠ΄Ρ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΡΡΡ ΡΠ²ΠΎΠΉ IP-Π°Π΄ΡΠ΅Ρ:
ΠΠΎΠ»Π΅Π·Π½ΠΎ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ ΡΠ΅ΡΠ²ΠΈΡΡ ΠΊΠ°ΠΊ Π½Π°Π±ΠΎΡ IP-Π°Π΄ΡΠ΅ΡΠΎΠ². ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° Π²Ρ ΠΎΠ±ΡΠ°ΡΠ°Π΅ΡΠ΅ΡΡ ΠΊ ΡΠ΅ΡΠ²ΠΈΡΡ, ΠΎΠ΄ΠΈΠ½ ΠΈΠ· IP-Π°Π΄ΡΠ΅ΡΠΎΠ² Π²ΡΠ±ΠΈΡΠ°Π΅ΡΡΡ ΠΈΠ· ΡΠΏΠΈΡΠΊΠ° ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ Π°Π΄ΡΠ΅Ρ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ.
ΠΡΠΎ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ.
- ΠΠΎΡΡΡΠΏΠ°Π΅Ρ Π·Π°ΠΏΡΠΎΡ curl 10.96.45.152 ΠΊ ΡΠ΅ΡΠ²ΠΈΡΡ:
- Π‘Π΅ΡΠ²ΠΈΡ Π²ΡΠ±ΠΈΡΠ°Π΅Ρ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΡΠ΅Ρ Π°Π΄ΡΠ΅ΡΠΎΠ² ΠΏΠΎΠ΄ΠΎΠ² Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠ½ΠΊΡΠ° Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ:
- Π’ΡΠ°ΡΠΈΠΊ ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΠΊ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΌΡ ΠΏΠΎΠ΄Ρ:
ΠΡΠ»ΠΈ Π²Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΡΡΠΎΠ½ΡΠ΅Π½Π΄Π° ΠΈ Π±ΡΠΊΠ΅Π½Π΄Π°, ΡΠΎ Ρ Π²Π°Ρ Π±ΡΠ΄Π΅Ρ ΠΈ ΡΠ΅ΡΠ²ΠΈΡ, ΠΈ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΠ΅ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ.
ΠΠΎΠ³Π΄Π° ΡΡΠΎΠ½ΡΠ΅Π½Π΄ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π·Π°ΠΏΡΠΎΡ ΠΊ Π±ΡΠΊΠ΅Π½Π΄Ρ, Π΅ΠΌΡ Π½Π΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π·Π½Π°ΡΡ, ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎΠ΄ΠΎΠ² ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π΅Ρ Π±ΡΠΊΠ΅Π½Π΄: ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈ ΠΎΠ΄ΠΈΠ½, ΠΈ Π΄Π΅ΡΡΡΡ, ΠΈ ΡΡΠΎ.
Π’Π°ΠΊΠΆΠ΅ ΡΡΠΎΠ½ΡΠ΅Π½Π΄ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π·Π½Π°Π΅Ρ ΠΎΠ± Π°Π΄ΡΠ΅ΡΠ°Ρ ΠΏΠΎΠ΄ΠΎΠ², ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°ΡΡΠΈΡ Π±ΡΠΊΠ΅Π½Π΄.
ΠΠΎΠ³Π΄Π° ΡΡΠΎΠ½ΡΠ΅Π½Π΄ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π·Π°ΠΏΡΠΎΡ ΠΊ Π±ΡΠΊΠ΅Π½Π΄Ρ, ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ IP-Π°Π΄ΡΠ΅Ρ ΡΠ΅ΡΠ²ΠΈΡΠ° Π±ΡΠΊΠ΅Π½Π΄Π°, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ.
ΠΠΎΡ ΠΊΠ°ΠΊ ΡΡΠΎ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ.
- ΠΠΎΠ΄ 1 Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°Π΅Ρ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π±ΡΠΊΠ΅Π½Π΄Π°. ΠΠΌΠ΅ΡΡΠΎ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π²ΡΠ±ΡΠ°ΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ ΠΏΠΎΠ΄ Π±ΡΠΊΠ΅Π½Π΄Π°, ΠΎΠ½ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π·Π°ΠΏΡΠΎΡ ΠΊ ΡΠ΅ΡΠ²ΠΈΡΡ:
- Π‘Π΅ΡΠ²ΠΈΡ Π²ΡΠ±ΠΈΡΠ°Π΅Ρ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΏΠΎΠ΄ΠΎΠ² Π±ΡΠΊΠ΅Π½Π΄Π° Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°Π΄ΡΠ΅ΡΠ° Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ:
- Π’ΡΠ°ΡΠΈΠΊ ΠΈΠ΄Π΅Ρ ΠΎΡ ΠΏΠΎΠ΄Π° 1 ΠΊ ΠΏΠΎΠ΄Ρ 5, Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠΌΡ ΡΠ΅ΡΠ²ΠΈΡΠΎΠΌ:
- ΠΠΎΠ΄ 1 Π½Π΅ Π·Π½Π°Π΅Ρ, ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠ°ΠΊΠΈΡ ΠΏΠΎΠ΄ΠΎΠ², ΠΊΠ°ΠΊ ΠΏΠΎΠ΄ 5, ΡΠΏΡΡΡΠ°Π½ΠΎ Π·Π° ΡΠ΅ΡΠ²ΠΈΡΠΎΠΌ:
ΠΠΎ ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠ΅ΡΠ²ΠΈΡ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ Π·Π°ΠΏΡΠΎΡΡ? ΠΡΠΎΠ΄Π΅ Π±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΠΊΠ° round-robin? ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ°Π·Π±ΠΈΡΠ°ΡΡΡΡ.Β
ΠΠ°Π»Π°Π½ΡΠΈΡΠΎΠ²ΠΊΠ° Π² ΡΠ΅ΡΠ²ΠΈΡΠ°Ρ Kubernetes
Π‘Π΅ΡΠ²ΠΈΡΡ Kubernetes Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ. ΠΠ»Ρ ΡΠ΅ΡΠ²ΠΈΡΠ° Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΏΡΠΎΡΠ΅ΡΡΠ°, ΠΊΠΎΡΠΎΡΠΎΠΌΡ Π²ΡΠ΄Π΅Π»Π΅Π½ IP-Π°Π΄ΡΠ΅Ρ ΠΈ ΠΏΠΎΡΡ.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ Π² ΡΡΠΎΠΌ, Π·Π°ΠΉΠ΄Ρ Π½Π° Π»ΡΠ±ΡΡ Π½ΠΎΠ΄Ρ ΠΊΠ»Π°ΡΡΠ΅ΡΠ° ΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΠ² ΠΊΠΎΠΌΠ°Π½Π΄Ρ netstat -ntlp.
ΠΡ Π΄Π°ΠΆΠ΅ Π½Π΅ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΉΡΠΈ IP-Π°Π΄ΡΠ΅Ρ, Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΡΠΉ ΡΠ΅ΡΠ²ΠΈΡΡ.
IP-Π°Π΄ΡΠ΅Ρ ΡΠ΅ΡΠ²ΠΈΡΠ° ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ Π² ΡΠ»ΠΎΠ΅ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ, Π² ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ΅, ΠΈ Π·Π°ΠΏΠΈΡΠ°Π½ Π² Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
β etcd. ΠΡΠΎΡ ΠΆΠ΅ Π°Π΄ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΅ΡΠ΅ ΠΎΠ΄Π½ΠΈΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠΌ β kube-proxy.
Kube-proxy ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΡΠΏΠΈΡΠΎΠΊ IP-Π°Π΄ΡΠ΅ΡΠΎΠ² Π΄Π»Ρ Π²ΡΠ΅Ρ
ΡΠ΅ΡΠ²ΠΈΡΠΎΠ² ΠΈ ΡΠΎΡΠΌΠΈΡΡΠ΅Ρ Π½Π°Π±ΠΎΡ ΠΏΡΠ°Π²ΠΈΠ» iptables Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π½ΠΎΠ΄Π΅ ΠΊΠ»Π°ΡΡΠ΅ΡΠ°.
ΠΡΠΈ ΠΏΡΠ°Π²ΠΈΠ»Π° Π³ΠΎΠ²ΠΎΡΡΡ: Β«ΠΡΠ»ΠΈ ΠΌΡ Π²ΠΈΠ΄ΠΈΠΌ IP-Π°Π΄ΡΠ΅Ρ ΡΠ΅ΡΠ²ΠΈΡΠ°, Π½ΡΠΆΠ½ΠΎ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ Π°Π΄ΡΠ΅Ρ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π·Π°ΠΏΡΠΎΡΠ° ΠΈ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ Π΅Π³ΠΎ Π½Π° ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΏΠΎΠ΄ΠΎΠ²Β».
IP-Π°Π΄ΡΠ΅Ρ ΡΠ΅ΡΠ²ΠΈΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΊΠ°ΠΊ ΡΠΎΡΠΊΠ° Π²Ρ ΠΎΠ΄Π° ΠΈ Π½Π΅ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ ΠΊΠ°ΠΊΠΈΠΌ-Π»ΠΈΠ±ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠΌ, ΡΠ»ΡΡΠ°ΡΡΠΈΠΌ ΡΡΠΎΡ ip-Π°Π΄ΡΠ΅Ρ ΠΈ ΠΏΠΎΡΡ.
ΠΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° ΡΡΠΎ.Β
- Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΊΠ»Π°ΡΡΠ΅Ρ ΠΈΠ· ΡΡΠ΅Ρ Π½ΠΎΠ΄. ΠΠ° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π½ΠΎΠ΄Π΅ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΡΡ ΠΏΠΎΠ΄Ρ:
- Π‘Π²ΡΠ·Π°Π½Π½ΡΠ΅ ΠΏΠΎΠ΄Ρ, ΠΎΠΊΡΠ°ΡΠ΅Π½Π½ΡΠ΅ Π±Π΅ΠΆΠ΅Π²ΡΠΌ ΡΠ²Π΅ΡΠΎΠΌ, β ΡΡΠΎ ΡΠ°ΡΡΡ ΡΠ΅ΡΠ²ΠΈΡΠ°. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠ΅ΡΠ²ΠΈΡ Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΊΠ°ΠΊ ΠΏΡΠΎΡΠ΅ΡΡ, ΠΎΠ½ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ ΡΠ΅ΡΡΠΌ ΡΠ²Π΅ΡΠΎΠΌ:
- ΠΠ΅ΡΠ²ΡΠΉ ΠΏΠΎΠ΄ Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°Π΅Ρ ΡΠ΅ΡΠ²ΠΈΡ ΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΠΏΠ°ΡΡΡ Π½Π° ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΠ²ΡΠ·Π°Π½Π½ΡΡ ΠΏΠΎΠ΄ΠΎΠ²:
- ΠΠΎ ΡΠ΅ΡΠ²ΠΈΡ Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ, ΠΏΡΠΎΡΠ΅ΡΡΠ° Π½Π΅Ρ. ΠΠ°ΠΊ ΠΆΠ΅ ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ?
- ΠΠ΅ΡΠ΅Π΄ ΡΠ΅ΠΌ ΠΊΠ°ΠΊ Π·Π°ΠΏΡΠΎΡ ΠΏΠΎΠΊΠΈΠ½Π΅Ρ Π½ΠΎΠ΄Ρ, ΠΎΠ½ ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΡ ΡΠ΅ΡΠ΅Π· ΠΏΡΠ°Π²ΠΈΠ»Π° iptables:
- ΠΡΠ°Π²ΠΈΠ»Π° iptables Π·Π½Π°ΡΡ, ΡΡΠΎ ΡΠ΅ΡΠ²ΠΈΡΠ° Π½Π΅Ρ, ΠΈ Π·Π°ΠΌΠ΅Π½ΡΡΡ Π΅Π³ΠΎ IP-Π°Π΄ΡΠ΅Ρ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· IP-Π°Π΄ΡΠ΅ΡΠΎΠ² ΠΏΠΎΠ΄ΠΎΠ², ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Ρ ΡΡΠΈΠΌ ΡΠ΅ΡΠ²ΠΈΡΠΎΠΌ:
- ΠΠ°ΠΏΡΠΎΡ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ Π΄Π΅ΠΉΡΡΠ²ΡΡΡΠΈΠΉ IP-Π°Π΄ΡΠ΅Ρ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°Π΄ΡΠ΅ΡΠ° Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΈ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΡΡ:
- Π Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠ΅ΡΠ΅Π²ΠΎΠΉ ΡΠΎΠΏΠΎΠ»ΠΎΠ³ΠΈΠΈ, Π·Π°ΠΏΡΠΎΡ Π² ΠΈΡΠΎΠ³Π΅ Π΄ΠΎΡΡΠΈΠ³Π°Π΅Ρ ΠΏΠΎΠ΄Π°:
Π£ΠΌΠ΅ΡΡ Π»ΠΈ iptables Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²Π°ΡΡ Π½Π°Π³ΡΡΠ·ΠΊΡ?
ΠΠ΅Ρ, iptables ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΠΈ ΠΈ Π½Π΅ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π»ΠΈΡΡ Π΄Π»Ρ Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΠΊΠΈ.
ΠΠ΄Π½Π°ΠΊΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π½Π°ΠΏΠΈΡΠ°ΡΡ Π½Π°Π±ΠΎΡ ΠΏΡΠ°Π²ΠΈΠ», ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΊΠ°ΠΊ
Π ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΡΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ Π² Kubernetes.
ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ ΡΡΠΈ ΠΏΠΎΠ΄Π°, kube-proxy Π½Π°ΠΏΠΈΡΠ΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π°:
- ΠΡΠ±ΡΠ°ΡΡ ΠΏΠ΅ΡΠ²ΡΠΉ ΠΏΠΎΠ΄ Ρ Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡΡΡ 33%, ΠΈΠ½Π°ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ ΠΊ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌΡ ΠΏΡΠ°Π²ΠΈΠ»Ρ.
- ΠΡΠ±ΡΠ°ΡΡ Π²ΡΠΎΡΠΎΠΉ ΠΏΠΎΠ΄ Ρ Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡΡΡ 50%, ΠΈΠ½Π°ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ ΠΊ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌΡ ΠΏΡΠ°Π²ΠΈΠ»Ρ.
- ΠΡΠ±ΡΠ°ΡΡ ΡΡΠ΅ΡΠΈΠΉ ΠΏΠΎΠ΄.
Π’Π°ΠΊΠ°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΡΠΎΠΌΡ, ΡΡΠΎ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΏΠΎΠ΄ Π²ΡΠ±ΠΈΡΠ°Π΅ΡΡΡ Ρ Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡΡΡ 33%.
Π Π½Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ Π³Π°ΡΠ°Π½ΡΠΈΠΈ, ΡΡΠΎ ΠΏΠΎΠ΄ 2 Π±ΡΠ΄Π΅Ρ Π²ΡΠ±ΡΠ°Π½ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΏΠΎΡΠ»Π΅ ΠΏΠΎΠ΄Π° 1.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: iptables ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΡΠ°ΡΠΈΡΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠΎ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΠΌ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π°Π»Π³ΠΎΡΠΈΡΠΌ Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΠΊΠΈ Π±Π°Π·ΠΈΡΡΠ΅ΡΡΡ Π½Π° ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎΠΌ Π²ΡΠ±ΠΎΡΠ΅.
Π’Π΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° Π²Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΡΠ΅, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠ΅ΡΠ²ΠΈΡΡ, Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° Π±ΠΎΠ»Π΅Π΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠ΅ ΡΡΠ΅Π½Π°ΡΠΈΠΈ ΡΠ°Π±ΠΎΡΡ.
ΠΠΎΠ»Π³ΠΎΠΆΠΈΠ²ΡΡΠΈΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Π² Kubernetes Π½Π΅ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΡΡΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ
ΠΠ°ΠΆΠ΄ΡΠΉ HTTP-Π·Π°ΠΏΡΠΎΡ ΠΎΡ ΡΡΠΎΠ½ΡΠ΅Π½Π΄Π° ΠΊ Π±ΡΠΊΠ΅Π½Π΄Ρ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΌ TCP-ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ΠΌ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΎΡΠΊΡΡΠ²Π°Π΅ΡΡΡ ΠΈ Π·Π°ΠΊΡΡΠ²Π°Π΅ΡΡΡ.
ΠΡΠ»ΠΈ ΡΡΠΎΠ½ΡΠ΅Π½Π΄ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ 100 Π·Π°ΠΏΡΠΎΡΠΎΠ² Π² ΡΠ΅ΠΊΡΠ½Π΄Ρ Π±ΡΠΊΠ΅Π½Π΄Ρ, ΡΠΎ ΠΎΡΠΊΡΡΠ²Π°Π΅ΡΡΡ ΠΈ Π·Π°ΠΊΡΡΠ²Π°Π΅ΡΡΡ 100 ΡΠ°Π·Π½ΡΡ TCP-ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ.
ΠΠΎΠΆΠ½ΠΎ ΡΠΌΠ΅Π½ΡΡΠΈΡΡ Π²ΡΠ΅ΠΌΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π·Π°ΠΏΡΠΎΡΠ° ΠΈ ΡΠ½ΠΈΠ·ΠΈΡΡ Π½Π°Π³ΡΡΠ·ΠΊΡ, Π΅ΡΠ»ΠΈ ΠΎΡΠΊΡΡΡΡ ΠΎΠ΄Π½ΠΎ TCP-ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Π΄Π»Ρ Π²ΡΠ΅Ρ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΡ HTTP-Π·Π°ΠΏΡΠΎΡΠΎΠ².
Π HTTP-ΠΏΡΠΎΡΠΎΠΊΠΎΠ» Π·Π°Π»ΠΎΠΆΠ΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ, Π½Π°Π·ΡΠ²Π°Π΅ΠΌΠ°Ρ HTTP keep-alive, ΠΈΠ»ΠΈ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΎΠ΄Π½ΠΎ TCP-ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° HTTP-Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΈ ΠΎΡΠ²Π΅ΡΠΎΠ²:
ΠΡΠ° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π½Π΅ Π²ΠΊΠ»ΡΡΠ΅Π½Π° ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ: ΠΈ ΡΠ΅ΡΠ²Π΅Ρ, ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΡΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠΎΠ²Π°Π½Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ.
Π‘Π°ΠΌΠ° ΠΏΠΎ ΡΠ΅Π±Π΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° ΠΏΡΠΎΡΡΠ° ΠΈ Π΄ΠΎΡΡΡΠΏΠ½Π° Π΄Π»Ρ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π° ΡΠ·ΡΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΡΡΠ΅Π΄.
ΠΠΎΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΠ»ΠΎΠΊ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΡ Π½Π° ΡΠ°Π·Π½ΡΡ ΡΠ·ΡΠΊΠ°Ρ :
Π§ΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ, Π΅ΡΠ»ΠΈ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ keep-alive Π² ΡΠ΅ΡΠ²ΠΈΡΠ΅ Kubernetes?
ΠΠ°Π²Π°ΠΉΡΠ΅ Π±ΡΠ΄Π΅ΠΌ ΡΡΠΈΡΠ°ΡΡ, ΡΡΠΎ ΠΈ ΡΡΠΎΠ½ΡΠ΅Π½Π΄, ΠΈ Π±ΡΠΊΠ΅Π½Π΄ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ keep-alive.
Π£ Π½Π°Ρ ΠΎΠ΄Π½Π° ΠΊΠΎΠΏΠΈΡ ΡΡΠΎΠ½ΡΠ΅Π½Π΄Π° ΠΈ ΡΡΠΈ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° Π±ΡΠΊΠ΅Π½Π΄Π°. Π€ΡΠΎΠ½ΡΠ΅Π½Π΄ Π΄Π΅Π»Π°Π΅Ρ ΠΏΠ΅ΡΠ²ΡΠΉ Π·Π°ΠΏΡΠΎΡ ΠΈ ΠΎΡΠΊΡΡΠ²Π°Π΅Ρ TCP-ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΊ Π±ΡΠΊΠ΅Π½Π΄Ρ. ΠΠ°ΠΏΡΠΎΡ Π΄ΠΎΡΡΠΈΠ³Π°Π΅Ρ ΡΠ΅ΡΠ²ΠΈΡΠ°, ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΏΠΎΠ΄ΠΎΠ² Π±ΡΠΊΠ΅Π½Π΄Π° Π²ΡΠ±ΠΈΡΠ°Π΅ΡΡΡ ΠΊΠ°ΠΊ Π°Π΄ΡΠ΅Ρ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ. ΠΠΎΠ΄ Π±ΡΠΊΠ΅Π½Π΄Π° ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΠΎΡΠ²Π΅Ρ, ΠΈ ΡΡΠΎΠ½ΡΠ΅Π½Π΄ Π΅Π³ΠΎ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ.
Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΠΎΠ±ΡΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ°ΡΠΈΠΈ, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΡΠ»Π΅ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΎΡΠ²Π΅ΡΠ° TCP-ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Π·Π°ΠΊΡΡΠ²Π°Π΅ΡΡΡ, ΡΠ΅ΠΉΡΠ°Ρ ΠΎΠ½ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ ΠΎΡΠΊΡΡΡΡΠΌ Π΄Π»Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΡ HTTP-Π·Π°ΠΏΡΠΎΡΠΎΠ².
Π§ΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ, Π΅ΡΠ»ΠΈ ΡΡΠΎΠ½ΡΠ΅Π½Π΄ ΠΎΡΠΏΡΠ°Π²ΠΈΡ Π΅ΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ Π½Π° Π±ΡΠΊΠ΅Π½Π΄?
ΠΠ»Ρ ΠΏΠ΅ΡΠ΅ΡΡΠ»ΠΊΠΈ ΡΡΠΈΡ Π·Π°ΠΏΡΠΎΡΠΎΠ² Π±ΡΠ΄Π΅Ρ Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°Π½ΠΎ ΠΎΡΠΊΡΡΡΠΎΠ΅ TCP-ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅, Π²ΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ ΠΏΠΎΠΏΠ°Π΄ΡΡ Π½Π° ΡΠΎΡ ΠΆΠ΅ ΡΠ°ΠΌΡΠΉ ΠΏΠΎΠ΄ Π±ΡΠΊΠ΅Π½Π΄Π°, ΠΊΡΠ΄Π° ΠΏΠΎΠΏΠ°Π» ΠΏΠ΅ΡΠ²ΡΠΉ Π·Π°ΠΏΡΠΎΡ.
Π Π°Π·Π²Π΅ iptables Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠ΅ΡΠ΅ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΡΠ°ΡΠΈΠΊ?
ΠΠ΅ Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅.
ΠΠΎΠ³Π΄Π° ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ TCP-ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅, ΠΎΠ½ΠΎ ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΡ ΡΠ΅ΡΠ΅Π· ΠΏΡΠ°Π²ΠΈΠ»Π° iptables, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈ Π²ΡΠ±ΠΈΡΠ°ΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ ΠΏΠΎΠ΄ Π±ΡΠΊΠ΅Π½Π΄Π°, ΠΊΡΠ΄Π° ΠΏΠΎΠΏΠ°Π΄Π΅Ρ ΡΡΠ°ΡΠΈΠΊ.
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π²ΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π·Π°ΠΏΡΠΎΡΡ ΠΈΠ΄ΡΡ ΠΏΠΎ ΡΠΆΠ΅ ΠΎΡΠΊΡΡΡΠΎΠΌΡ TCP-ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ, ΠΏΡΠ°Π²ΠΈΠ»Π° iptables Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ Π²ΡΠ·ΡΠ²Π°ΡΡΡΡ.
ΠΠΎΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊ ΡΡΠΎ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ.
- ΠΠ΅ΡΠ²ΡΠΉ ΠΏΠΎΠ΄ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ Π·Π°ΠΏΡΠΎΡ ΠΊ ΡΠ΅ΡΠ²ΠΈΡΡ:
- ΠΡ ΡΠΆΠ΅ Π·Π½Π°Π΅ΡΠ΅ ΡΡΠΎ Π±ΡΠ΄Π΅Ρ Π΄Π°Π»ΡΡΠ΅. Π‘Π΅ΡΠ²ΠΈΡΠ° Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ, Π½ΠΎ Π΅ΡΡΡ ΠΏΡΠ°Π²ΠΈΠ»Π° iptables, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°ΡΡ Π·Π°ΠΏΡΠΎΡ:
- ΠΠ΄ΠΈΠ½ ΠΈΠ· ΠΏΠΎΠ΄ΠΎΠ² Π±ΡΠΊΠ΅Π½Π΄Π° Π±ΡΠ΄Π΅Ρ Π²ΡΠ±ΡΠ°Π½ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°Π΄ΡΠ΅ΡΠ° Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ:
- ΠΠ°ΠΏΡΠΎΡ Π΄ΠΎΡΡΠΈΠ³Π°Π΅Ρ ΠΏΠΎΠ΄Π°. Π ΡΡΠΎΡ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎΠ΅ TCP-ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ Π΄Π²ΡΠΌΡ ΠΏΠΎΠ΄Π°ΠΌΠΈ Π±ΡΠ΄Π΅Ρ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ:
- ΠΡΠ±ΠΎΠΉ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π·Π°ΠΏΡΠΎΡ ΠΎΡ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Π° Π±ΡΠ΄Π΅Ρ ΠΈΠ΄ΡΠΈ ΠΏΠΎ ΡΠΆΠ΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠΌΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ:
Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π²Ρ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ Π±ΡΡΡΡΡΠΉ ΠΎΡΠΊΠ»ΠΈΠΊ ΠΈ Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΡΡ ΠΏΡΠΎΠΏΡΡΠΊΠ½ΡΡ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡ, Π½ΠΎ ΠΏΠΎΡΠ΅ΡΡΠ»ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π±ΡΠΊΠ΅Π½Π΄Π°.
ΠΠ°ΠΆΠ΅ Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ Π² Π±ΡΠΊΠ΅Π½Π΄Π΅ Π΄Π²Π° ΠΏΠΎΠ΄Π°, ΠΏΡΠΈ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎΠΌ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΈ ΡΡΠ°ΡΠΈΠΊ Π²ΡΠ΅ Π²ΡΠ΅ΠΌΡ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠΏΠ°Π΄Π°ΡΡ Π½Π° ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½ΠΈΡ .
ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ ΡΡΠΎ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ?
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Kubernetes Π½Π΅ Π·Π½Π°Π΅Ρ, ΠΊΠ°ΠΊ Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠΎΡΡΠΎΡΠ½Π½ΡΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ, ΡΡΠ° Π·Π°Π΄Π°ΡΠ° Π²ΠΎΠ·Π»Π°Π³Π°Π΅ΡΡΡ Π½Π° Π²Π°Ρ.
Π‘Π΅ΡΠ²ΠΈΡΡ β ΡΡΠΎ Π½Π°Π±ΠΎΡ IP-Π°Π΄ΡΠ΅ΡΠΎΠ² ΠΈ ΠΏΠΎΡΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°Π·ΡΠ²Π°ΡΡ ΠΊΠΎΠ½Π΅ΡΠ½ΡΠΌΠΈ ΡΠΎΡΠΊΠ°ΠΌΠΈ.
ΠΠ°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΏΠΈΡΠΎΠΊ ΠΊΠΎΠ½Π΅ΡΠ½ΡΡ ΡΠΎΡΠ΅ΠΊ ΠΈΠ· ΡΠ΅ΡΠ²ΠΈΡΠ° ΠΈ ΡΠ΅ΡΠΈΡΡ, ΠΊΠ°ΠΊ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ Π·Π°ΠΏΡΠΎΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Π½ΠΈΠΌΠΈ. ΠΠΎΠΆΠ½ΠΎ ΠΎΡΠΊΡΡΡΡ ΠΏΠΎ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎΠΌΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Ρ ΠΊΠ°ΠΆΠ΄ΡΠΌ ΠΏΠΎΠ΄ΠΎΠΌ ΠΈ Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²Π°ΡΡ Π·Π°ΠΏΡΠΎΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΠΈΠΌΠΈ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡΠΌΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ round-robin.
ΠΠ»ΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ Π±ΠΎΠ»Π΅Π΅
ΠΠΎΠ΄ Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΠΊΡ, Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ ΡΠ°ΠΊΠΎΠΉ Π»ΠΎΠ³ΠΈΠΊΠ΅:
- ΠΠΎΠ»ΡΡΠΈΡΡ ΡΠΏΠΈΡΠΎΠΊ ΠΊΠΎΠ½Π΅ΡΠ½ΡΡ ΡΠΎΡΠ΅ΠΊ ΠΈΠ· ΡΠ΅ΡΠ²ΠΈΡΠ°.
- ΠΠ»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΉ ΡΠΎΡΠΊΠΈ ΠΎΡΠΊΡΡΡΡ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅.
- ΠΠΎΠ³Π΄Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Π·Π°ΠΏΡΠΎΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ΄Π½ΠΎ ΠΈΠ· ΠΎΡΠΊΡΡΡΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ.
- Π Π΅Π³ΡΠ»ΡΡΠ½ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡ ΡΠΏΠΈΡΠΎΠΊ ΠΊΠΎΠ½Π΅ΡΠ½ΡΡ ΡΠΎΡΠ΅ΠΊ, ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π½ΠΎΠ²ΡΠ΅ ΠΈΠ»ΠΈ Π·Π°ΠΊΡΡΠ²Π°ΡΡ ΡΡΠ°ΡΡΠ΅ ΠΏΠΎΡΡΠΎΡΠ½Π½ΡΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Π² ΡΠ»ΡΡΠ°Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠΏΠΈΡΠΊΠ°.
ΠΠΎΡ ΠΊΠ°ΠΊ ΡΡΠΎ Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ.
- ΠΠΌΠ΅ΡΡΠΎ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΠ΅ΡΠ²ΡΠΉ ΠΏΠΎΠ΄ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ» Π·Π°ΠΏΡΠΎΡ Π² ΡΠ΅ΡΠ²ΠΈΡ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²Π°ΡΡ Π·Π°ΠΏΡΠΎΡΡ Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°:
- ΠΡΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΏΡΠ°ΡΠΈΠ²Π°Π΅Ρ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΠΎΠ΄Ρ ΡΠ²Π»ΡΡΡΡΡ ΡΠ°ΡΡΡΡ ΡΠ΅ΡΠ²ΠΈΡΠ°:
- ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΡΠΏΠΈΡΠΎΠΊ, ΡΠΎΡ ΡΠ°Π½ΠΈΡΠ΅ Π΅Π³ΠΎ Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π΄Π»Ρ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Ρ ΠΏΠΎΠ΄Π°ΠΌΠΈ:
- ΠΡ ΡΠ°ΠΌΠΈ ΠΎΡΠ²Π΅ΡΠ°Π΅ΡΠ΅ Π·Π° Π°Π»Π³ΠΎΡΠΈΡΠΌ Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΠΊΠΈ Π½Π°Π³ΡΡΠ·ΠΊΠΈ:
Π’Π΅ΠΏΠ΅ΡΡ ΠΏΠΎΡΠ²ΠΈΠ»ΡΡ Π²ΠΎΠΏΡΠΎΡ: ΠΎΡΠ½ΠΎΡΠΈΡΡΡ Π»ΠΈ ΡΡΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΡΠΎΠ»ΡΠΊΠΎ ΠΊ HTTP keep-alive?
ΠΠ°Π»Π°Π½ΡΠΈΡΠΎΠ²ΠΊΠ° Π½Π°Π³ΡΡΠ·ΠΊΠΈ Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°
HTTP β Π½Π΅ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΏΡΠΎΡΠΎΠΊΠΎΠ», ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΎΡΡΠΎΡΠ½Π½ΡΠ΅ TCP-ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ.
ΠΡΠ»ΠΈ Π²Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ , ΡΠΎ TCP-ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Π½Π΅ ΠΎΡΠΊΡΡΠ²Π°Π΅ΡΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π²ΡΠ»ΠΎΠ»Π½ΠΈΡΡ Π·Π°ΠΏΡΠΎΡ ΠΈΠ»ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ ΠΈΠ· ΠΠ.Β
ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ ΠΎΡΠΊΡΡΠ²Π°Π΅ΡΡΡ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎΠ΅ TCP-ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ .
ΠΡΠ»ΠΈ Π²Π°ΡΠ° Π±Π°Π·Π° Π΄Π°Π½Π½ΡΡ ΡΠ°Π·Π²Π΅ΡΠ½ΡΡΠ° Π² Kubernetes ΠΈ Π΄ΠΎΡΡΡΠΏ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ Π² Π²ΠΈΠ΄Π΅ cΠ΅ΡΠ²ΠΈΡΠ°, ΡΠΎ Π²Ρ ΡΡΠΎΠ»ΠΊΠ½Π΅ΡΠ΅ΡΡ Ρ ΡΠ΅ΠΌΠΈ ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ, ΡΡΠΎ ΠΎΠΏΠΈΡΠ°Π½Ρ Π² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅.
ΠΠ΄Π½Π° ΡΠ΅ΠΏΠ»ΠΈΠΊΠ° Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ Π±ΡΠ΄Π΅Ρ Π½Π°Π³ΡΡΠΆΠ΅Π½Π° Π±ΠΎΠ»ΡΡΠ΅, ΡΠ΅ΠΌ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅. Kube-proxy ΠΈ Kubernetes Π½Π΅ ΠΏΠΎΠΌΠΎΠ³ΡΡ Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ. ΠΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΠΎΠ·Π°Π±ΠΎΡΠΈΡΡΡΡ ΠΎ Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΠΊΠ΅ Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΊ Π²Π°ΡΠ΅ΠΉ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ .
Π Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ Π΄Π»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊ ΠΠ, Ρ Π²Π°Ρ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ.
ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡΠΈΠΌΠ΅Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΠΊΠ»Π°ΡΡΠ΅ΡΡ ΠΠ MySQL ΠΈΠ· Node.js:
var mysql = require('mysql');
var poolCluster = mysql.createPoolCluster();
var endpoints = /* retrieve endpoints from the Service */
for (var [index, endpoint] of endpoints) {
Β poolCluster.add(`mysql-replica-${index}`, endpoint);
}
// Make queries to the clustered MySQL database
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΌΠ°ΡΡΠ° Π΄ΡΡΠ³ΠΈΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΡ ΠΏΠΎΡΡΠΎΡΠ½Π½ΡΠ΅ TCP-ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ:
- WebSockets and secured WebSockets
- HTTP/2
- gRPC
- RSockets
- AMQP
ΠΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΡΠΆΠ΅ Π·Π½Π°ΠΊΠΎΠΌΡ Ρ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎΠΌ ΡΡΠΈΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠ².
ΠΠΎ Π΅ΡΠ»ΠΈ ΡΡΠΈ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Ρ ΡΠ°ΠΊ ΠΏΠΎΠΏΡΠ»ΡΡΠ½Ρ, ΠΏΠΎΡΠ΅ΠΌΡ Π½Π΅Ρ ΡΡΠ°Π½Π΄Π°ΡΡΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΠΊΠΈ? ΠΠΎΡΠ΅ΠΌΡ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π»ΠΎΠ³ΠΈΠΊΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°? Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π»ΠΈ Π½Π°ΡΠΈΠ²Π½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Kubernetes?
Kube-proxy ΠΈ iptables ΡΠΎΠ·Π΄Π°Π½Ρ, ΡΡΠΎΠ±Ρ Π·Π°ΠΊΡΡΡΡ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΈ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΠΈ Π² Kubernetes. ΠΡΠΎ ΡΠ΄Π΅Π»Π°Π½ΠΎ Π΄Π»Ρ ΡΠ΄ΠΎΠ±ΡΡΠ²Π°.
ΠΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ Π²Π΅Π±-ΡΠ΅ΡΠ²ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ REST API, Π²Π°ΠΌ ΠΏΠΎΠ²Π΅Π·Π»ΠΎ β Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΠΎΡΡΠΎΡΠ½Π½ΡΠ΅ TCP-ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π»ΡΠ±ΠΎΠΉ ΡΠ΅ΡΠ²ΠΈΡ Kubernetes.
ΠΠΎ ΠΊΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ Π²Ρ Π½Π°ΡΠ½Π΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΎΡΡΠΎΡΠ½Π½ΡΠ΅ TCP-ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ, ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΡΠ°Π·Π±ΠΈΡΠ°ΡΡΡΡ, ΠΊΠ°ΠΊ ΡΠ°Π²Π½ΠΎΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π½Π°Π³ΡΡΠ·ΠΊΡ Π½Π° Π±ΡΠΊΠ΅Π½Π΄Ρ. Kubernetes Π½Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π³ΠΎΡΠΎΠ²ΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ Π½Π° ΡΡΠΎΡ ΡΠ»ΡΡΠ°ΠΉ.
ΠΠ΄Π½Π°ΠΊΠΎ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ ΠΆΠ΅, ΡΡΡΠ΅ΡΡΠ²ΡΡΡ Π²Π°ΡΠΈΠ°Π½ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠΌΠΎΡΡ.
ΠΠ°Π»Π°Π½ΡΠΈΡΠΎΠ²ΠΊΠ° Π΄ΠΎΠ»Π³ΠΎΠΆΠΈΠ²ΡΡΠΈΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ Π² Kubernetes
Π Kubernetes ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΠ΅ΡΡΡΠ΅ ΡΠΈΠΏΠ° ΡΠ΅ΡΠ²ΠΈΡΠΎΠ²:
- ClusterIP
- NodePort
- LoadBalancer
- Headless
ΠΠ΅ΡΠ²ΡΠ΅ ΡΡΠΈ ΡΠ΅ΡΠ²ΠΈΡΠ° ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π° Π±Π°Π·Π΅ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ IP-Π°Π΄ΡΠ΅ΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ kube-proxy Π΄Π»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΠΏΡΠ°Π²ΠΈΠ» iptables. ΠΠΎ ΡΡΠ½Π΄Π°ΠΌΠ΅Π½ΡΠ°Π»ΡΠ½Π°Ρ ΠΎΡΠ½ΠΎΠ²Π° Π²ΡΠ΅Ρ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ² β ΡΡΠΎ ΡΠ΅ΡΠ²ΠΈΡ ΡΠΈΠΏΠ° headless.
Π‘ ΡΠ΅ΡΠ²ΠΈΡΠΎΠΌ headless Π½Π΅ ΡΠ²ΡΠ·Π°Π½ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ IP-Π°Π΄ΡΠ΅Ρ ΠΈ ΠΎΠ½ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠΏΠΈΡΠΊΠ° IP-Π°Π΄ΡΠ΅ΡΠΎΠ² ΠΈ ΠΏΠΎΡΡΠΎΠ² ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Ρ Π½ΠΈΠΌ ΠΏΠΎΠ΄ΠΎΠ² (ΠΊΠΎΠ½Π΅ΡΠ½ΡΠ΅ ΡΠΎΡΠΊΠΈ).
ΠΡΠ΅ ΡΠ΅ΡΠ²ΠΈΡΡ Π±Π°Π·ΠΈΡΡΡΡΡΡ Π½Π° ΡΠ΅ΡΠ²ΠΈΡΠ΅ headless.
Π‘Π΅ΡΠ²ΠΈΡ ClusterIP β ΡΡΠΎ headless ΡΠ΅ΡΠ²ΠΈΡ Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌΠΈ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΡΠΌΠΈ:Β
- Π‘Π»ΠΎΠΉ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π½Π°Π·Π½Π°ΡΠ°Π΅Ρ Π΅ΠΌΡ IP-Π°Π΄ΡΠ΅Ρ.
- Kube-proxy ΡΠΎΡΠΌΠΈΡΡΠ΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π° iptables.
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°ΡΡ kube-proxy ΠΈ Π½Π°ΠΏΡΡΠΌΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΏΠΈΡΠΎΠΊ ΠΊΠΎΠ½Π΅ΡΠ½ΡΡ ΡΠΎΡΠ΅ΠΊ, ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΡ ΠΈΠ· ΡΠ΅ΡΠ²ΠΈΡΠ° headless Π΄Π»Ρ Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΠΊΠΈ Π½Π°Π³ΡΡΠ·ΠΊΠΈ Π² Π²Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ.
ΠΠΎ ΠΊΠ°ΠΊ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ Π»ΠΎΠ³ΠΈΠΊΡ ΠΊΠΎ Π²ΡΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌ, ΡΠ°Π·Π²Π΅ΡΠ½ΡΡΡΠΌ Π² ΠΊΠ»Π°ΡΡΠ΅ΡΠ΅?
ΠΡΠ»ΠΈ Π²Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠΆΠ΅ ΡΠ°Π·Π²Π΅ΡΠ½ΡΡΠΎ, ΡΠΎ ΡΠ°ΠΊΠ°Ρ Π·Π°Π΄Π°ΡΠ° ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡΡΡ Π½Π΅Π²ΡΠΏΠΎΠ»Π½ΠΈΠΌΠΎΠΉ. ΠΠ΄Π½Π°ΠΊΠΎ Π΅ΡΡΡ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ.
Service Mesh Π²Π°ΠΌ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ
ΠΡ, Π½Π°Π²Π΅ΡΠ½ΠΎΠ΅, ΡΠΆΠ΅ Π·Π°ΠΌΠ΅ΡΠΈΠ»ΠΈ, ΡΡΠΎ ΡΡΡΠ°ΡΠ΅Π³ΠΈΡ Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΠΊΠΈ Π½Π°Π³ΡΡΠ·ΠΊΠΈ Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° Π²ΠΏΠΎΠ»Π½Π΅ ΡΡΠ°Π½Π΄Π°ΡΡΠ½Π°.
ΠΠΎΠ³Π΄Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΡΠ°ΡΡΡΠ΅Ρ, ΠΎΠ½ΠΎ:
- ΠΠΎΠ»ΡΡΠ°Π΅Ρ ΡΠΏΠΈΡΠΎΠΊ IP-Π°Π΄ΡΠ΅ΡΠΎΠ² ΠΈΠ· ΡΠ΅ΡΠ²ΠΈΡΠ°.
- ΠΡΠΊΡΡΠ²Π°Π΅Ρ ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΏΡΠ» ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ.
- ΠΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΈ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅Ρ ΠΏΡΠ», Π΄ΠΎΠ±Π°Π²Π»ΡΡ ΠΈΠ»ΠΈ ΡΠ±ΠΈΡΠ°Ρ ΠΊΠΎΠ½Π΅ΡΠ½ΡΠ΅ ΡΠΎΡΠΊΠΈ.
ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ ΠΎΡΠ΅Ρ ΡΠ΄Π΅Π»Π°ΡΡ Π·Π°ΠΏΡΠΎΡ, ΠΎΠ½ΠΎ:
- ΠΡΠ±ΠΈΡΠ°Π΅Ρ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΊΠ°ΠΊΡΡ-Π»ΠΈΠ±ΠΎ Π»ΠΎΠ³ΠΈΠΊΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, round-robin).
- ΠΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π·Π°ΠΏΡΠΎΡ.
ΠΡΠΈ ΡΠ°Π³ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΈ Π΄Π»Ρ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ WebSockets, ΠΈ Π΄Π»Ρ gRPC, ΠΈ Π΄Π»Ρ AMQP.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠ΄Π΅Π»ΠΈΡΡ ΡΡΡ Π»ΠΎΠ³ΠΈΠΊΡ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π΅ Π² Π²Π°ΡΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ .
ΠΠ΄Π½Π°ΠΊΠΎ Π²ΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ΅ΡΠ²ΠΈΡΠ½ΡΠ΅ ΡΠ΅ΡΠΊΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Istio ΠΈΠ»ΠΈ Linkerd.
Service Mesh Π΄ΠΎΠΏΠΎΠ»Π½ΡΠ΅Ρ Π²Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ:
- ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΈΡΠ΅Ρ IP-Π°Π΄ΡΠ΅ΡΠ° ΡΠ΅ΡΠ²ΠΈΡΠΎΠ².
- ΠΡΠΎΠ²Π΅ΡΡΠ΅Ρ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ WebSockets ΠΈ gRPC.
- ΠΠ°Π»Π°Π½ΡΠΈΡΡΠ΅Ρ Π·Π°ΠΏΡΠΎΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ ΠΏΡΠΎΡΠΎΠΊΠΎΠ».
Service Mesh ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΡΡΠ°ΡΠΈΠΊΠΎΠΌ Π²Π½ΡΡΡΠΈ ΠΊΠ»Π°ΡΡΠ΅ΡΠ°, Π½ΠΎ ΠΎΠ½ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠ΅ΡΡΡΡΠΎΠ΅ΠΌΠΎΠΊ. ΠΡΡΠ³ΠΈΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΡ β ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠΎΡΠΎΠ½Π½ΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Netflix Ribbon, ΠΈΠ»ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ΅ΠΌΡΡ ΠΏΡΠΎΠΊΡΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Envoy.
Π§ΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ, Π΅ΡΠ»ΠΈ ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°ΡΡ Π²ΠΎΠΏΡΠΎΡΡ Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΠΊΠΈ?
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΠΊΡ Π½Π°Π³ΡΡΠ·ΠΊΠΈ ΠΈ ΠΏΡΠΈ ΡΡΠΎΠΌ Π½Π΅ Π·Π°ΠΌΠ΅ΡΠΈΡΡ Π½ΠΈΠΊΠ°ΠΊΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π² ΡΠ°Π±ΠΎΡΡ.
ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π±ΠΎΠ»ΡΡΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ², ΡΠ΅ΠΌ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ², ΡΡΠΎ Π½Π΅ ΡΠ°ΠΊΠ°Ρ Π±ΠΎΠ»ΡΡΠ°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°.
ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Π΅ΡΡΡ ΠΏΡΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊΠΎΠ½Π½Π΅ΠΊΡΡΡΡΡ ΠΊ Π΄Π²ΡΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ°ΠΌ. ΠΠ°ΠΆΠ΅ Π΅ΡΠ»ΠΈ Π½Π΅Ρ Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΠΊΠΈ, ΠΎΠ±Π° ΡΠ΅ΡΠ²Π΅ΡΠ° Π±ΡΠ΄ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ:
Π‘ΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ Π½Π΅ΡΠ°Π²Π½ΠΎΠΌΠ΅ΡΠ½ΠΎ: Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΠ΅ΡΡΡΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΠ»ΠΈΡΡ ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡ ΠΈ ΡΠΎΠΌΡ ΠΆΠ΅ ΡΠ΅ΡΠ²Π΅ΡΡ, Π½ΠΎ Π΅ΡΡΡ Ρ ΠΎΡΠΎΡΠΈΠΉ ΡΠ°Π½Ρ, ΡΡΠΎ ΠΎΠ±Π° ΡΠ΅ΡΠ²Π΅ΡΠ° Π±ΡΠ΄ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Ρ.
Π§ΡΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΡΠΈΡΠ½ΠΎ, ΡΠ°ΠΊ ΡΡΠΎ ΠΏΡΠΎΡΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΡΠΉ ΡΡΠ΅Π½Π°ΡΠΈΠΉ.
ΠΡΠ»ΠΈ Ρ Π²Π°Ρ ΠΌΠ΅Π½ΡΡΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ² ΠΈ Π±ΠΎΠ»ΡΡΠ΅ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ², Π²Π°ΡΠΈ ΡΠ΅ΡΡΡΡΡ ΠΌΠΎΠ³ΡΡ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ, ΠΈ ΠΏΠΎΡΠ²ΠΈΡΡΡ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠ·ΠΊΠΎΠ΅ ΠΌΠ΅ΡΡΠΎ.
ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Π΅ΡΡΡ Π΄Π²Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΈ ΠΏΡΡΡ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ². Π Π»ΡΡΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ Π±ΡΠ΄Π΅Ρ Π΄Π²Π° ΠΏΠΎΡΡΠΎΡΠ½Π½ΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΠΊ Π΄Π²ΡΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ°ΠΌ ΠΈΠ· ΠΏΡΡΠΈ.
ΠΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΠ΅ΡΠ²Π΅ΡΡ Π±ΡΠ΄ΡΡ ΠΏΡΠΎΡΡΠ°ΠΈΠ²Π°ΡΡ:
ΠΡΠ»ΠΈ ΡΡΠΈ Π΄Π²Π° ΡΠ΅ΡΠ²Π΅ΡΠ° Π½Π΅ ΠΌΠΎΠ³ΡΡ ΡΠΏΡΠ°Π²ΠΈΡΡΡΡ Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΎΠΉ Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ², Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΡΠ½ΠΎΠ΅ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π΅ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π‘Π΅ΡΠ²ΠΈΡΡ Kubernetes ΡΠΎΠ·Π΄Π°Π½Ρ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π² Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
ΠΠ΄Π½Π°ΠΊΠΎ, ΠΊΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ Π²Ρ Π½Π°ΡΠΈΠ½Π°Π΅ΡΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π°ΠΌΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΠΏΠΎΡΡΠΎΡΠ½Π½ΡΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ TCP, ΡΠ°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ , gRPC ΠΈΠ»ΠΈ WebSockets, ΡΠ΅ΡΠ²ΠΈΡΡ ΡΠΆΠ΅ Π½Π΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡ. Kubernetes Π½Π΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΎΠ² Π΄Π»Ρ Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΠΊΠΈ ΠΏΠΎΡΡΠΎΡΠ½Π½ΡΡ TCP-ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ.
ΠΡΠΎ Π·Π½Π°ΡΠΈΡ, Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΠΈΡΠ°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ ΡΡΠ΅ΡΠΎΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΠΊΠΈ Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°.
ΠΠ΅ΡΠ΅Π²ΠΎΠ΄ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²Π»Π΅Π½ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ
Π§ΡΠΎ Π΅ΡΠ΅ ΠΏΠΎΡΠΈΡΠ°ΡΡ ΠΏΠΎ ΡΠ΅ΠΌΠ΅:
Π’ΡΠΈ ΡΡΠΎΠ²Π½Ρ Π°Π²ΡΠΎΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π² Kubernetes ΠΈ ΠΊΠ°ΠΊ ΠΈΡ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ .ΒKubernetes Π² Π΄ΡΡ Π΅ ΠΏΠΈΡΠ°ΡΡΡΠ²Π° Ρ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠΌ ΠΏΠΎ Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΡ .ΠΠ°Ρ ΠΊΠ°Π½Π°Π» Π² Π’Π΅Π»Π΅Π³ΡΠ°ΠΌΠ΅ ΠΎ ΡΠΈΡΡΠΎΠ²ΠΎΠΉ ΡΡΠ°Π½ΡΡΠΎΡΠΌΠ°ΡΠΈΠΈ .
ΠΡΡΠΎΡΠ½ΠΈΠΊ: habr.com