ΠΡΠΈΠ²Π΅ΡΡΡΠ²ΡΠ΅ΠΌ Π²Π°Ρ, Π₯Π°Π±Ρ!
Π ΡΠ²ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ ΠΌΡ ΠΏΠ΅ΡΠ²ΡΠΌΠΈ Π²ΡΠ²Π΅Π»ΠΈ Π½Π° ΡΠΎΡΡΠΈΠΉΡΠΊΠΈΠΉ ΡΡΠ½ΠΎΠΊ ΡΠ΅ΠΌΡ
ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅
Kubernetes ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π½Π°Π³ΡΡΠ·ΠΊΠ°ΠΌΠΈ, Π½Π΅ ΡΠΎΡ ΡΠ°Π½ΡΡΡΠΈΠΌΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅. ΠΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΡΠ°ΠΊΠΈΠ΅ ΡΠ°Π±ΠΎΡΠΈΠ΅ Π½Π°Π³ΡΡΠ·ΠΊΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Ρ Π² ΡΠΎΡΠΌΠ΅ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠ½ΠΎΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ, ΠΎΠ½ΠΈ Π»Π΅Π³ΠΊΠΎΠ²Π΅ΡΠ½Ρ, Ρ ΠΎΡΠΎΡΠΎ ΠΏΠΎΠ΄Π΄Π°ΡΡΡΡ Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΡΠ½ΠΎΠΌΡ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΏΠΎΠ΄ΡΠΈΠ½ΡΡΡΡΡ ΠΏΡΠΈΠ½ΡΠΈΠΏΠ°ΠΌ 12-ΡΠ°ΠΊΡΠΎΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ Π²ΡΠΊΠ»ΡΡΠ°ΡΠ΅Π»ΡΠΌΠΈ (circuit breaker) ΠΈ ΠΌΠ°ΡΡΡΡΠΊΠ°ΠΌΠΈ-Π»ΠΎΠΌΠ°ΡΠΊΠ°ΠΌΠΈ (chaos monkeys).
Kafka, ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½ΡΠΉ Ρ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ, Π² ΡΡΡΠ½ΠΎΡΡΠΈ, Π²ΡΡΡΡΠΏΠ°Π΅Ρ Π² ΡΠΎΠ»ΠΈ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ . Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Π²Π°ΠΌ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΠΈΠΌΠ΅ΡΡ Π΄Π΅Π»ΠΎ Ρ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ, Π° ΠΎΠ½ΠΎ Π³ΠΎΡΠ°Π·Π΄ΠΎ ΡΡΠΆΠ΅Π»ΠΎΠ²Π΅ΡΠ½Π΅Π΅ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠ°. Kubernetes ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π½Π°Π³ΡΡΠ·ΠΊΠΈ Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ, Π½ΠΎ, ΠΊΠ°ΠΊ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΠ΅Π»ΡΠΈ Π₯Π°ΠΉΡΠ°ΡΡΡ Π² Π΄Π²ΡΡ ΡΠ²ΠΎΠΈΡ ΡΠ²ΠΈΡΠ°Ρ , Ρ Π½ΠΈΠΌΠΈ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΎΡΡΠΎΡΠΎΠΆΠ½ΠΎ:
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠΌ ΠΊΠ°ΠΆΠ΅ΡΡΡ, ΡΡΠΎ, Π΅ΡΠ»ΠΈ Π½Π°ΠΊΠ°ΡΠΈΡΡ Kubernetes Π½Π° Π½Π°Π³ΡΡΠ·ΠΊΡ Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ, ΠΎΠ½ ΠΏΡΠ΅Π²ΡΠ°ΡΠ°Π΅ΡΡΡ Π² ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΡΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ , ΡΠΏΠΎΡΠΎΠ±Π½ΡΡ ΡΠΎΠΏΠ΅ΡΠ½ΠΈΡΠ°ΡΡ Ρ RDS. ΠΡΠΎ Π½Π΅ ΡΠ°ΠΊ. ΠΠΎΠΆΠ΅Ρ Π±ΡΡΡ, Π΅ΡΠ»ΠΈ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΠΎΡΡΡΠ΄ΠΈΡΡΡΡ, ΠΏΡΠΈΠΊΡΡΡΠΈΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΈ ΠΏΡΠΈΠ²Π»Π΅ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ SRE-ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠΎΠ², ΡΠΎ ΡΠ΄Π°ΡΡΡΡ ΠΎΠ±ΡΡΡΡΠΎΠΈΡΡ RDS ΠΏΠΎΠ²Π΅ΡΡ Kubernetes.
ΠΡΠ΅Π³Π΄Π° Π²ΡΠ΅ΠΌ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡ ΠΏΡΠΎΡΠ²Π»ΡΡΡ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΎΡΡΠΎΡΠΎΠΆΠ½ΠΎΡΡΡ, Π·Π°ΠΏΡΡΠΊΠ°Ρ Π½Π°Π³ΡΡΠ·ΠΊΠΈ Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π½Π° Kubernetes. ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΈΠ· ΡΠ΅Ρ , ΠΊΡΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΠ΅ΡΡΡ, Β«ΡΠΌΠΎΠ³Ρ Π»ΠΈ Ρ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ Π½Π° Kubernetes Π½Π°Π³ΡΡΠ·ΠΊΠΈ Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΡΒ» Π½Π΅ ΠΎΠ±Π»Π°Π΄Π°ΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΡΠΌ ΠΎΠΏΡΡΠΎΠΌ Π² ΡΠ°Π±ΠΎΡΠ΅ Ρ Kubernetes, Π° Π·Π°ΡΠ°ΡΡΡΡ β ΠΈ Ρ ΡΠΎΠΉ Π½Π°Π³ΡΡΠ·ΠΊΠΎΠΉ, ΠΎ ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠΏΡΠ°ΡΠΈΠ²Π°ΡΡ.
ΠΡΠ°ΠΊ, ΡΠ»Π΅Π΄ΡΠ΅Ρ Π»ΠΈ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ Kafka Π½Π° Kubernetes? ΠΡΡΡΠ΅ΡΠ½ΡΠΉ Π²ΠΎΠΏΡΠΎΡ: Π° Π±ΡΠ΄Π΅Ρ Π»ΠΈ Kafka Π»ΡΡΡΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π±Π΅Π· Kubernetes? ΠΠΎΡ ΠΏΠΎΡΠ΅ΠΌΡ Ρ Ρ ΠΎΡΡ ΠΏΠΎΠ΄ΡΠ΅ΡΠΊΠ½ΡΡΡ Π² ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅, ΠΊΠ°ΠΊ Kafka ΠΈ Kubernetes Π΄ΠΎΠΏΠΎΠ»Π½ΡΡΡ Π΄ΡΡΠ³ Π΄ΡΡΠ³Π°, ΠΈ ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΠΎΠ΄Π²ΠΎΠ΄Π½ΡΠ΅ ΠΊΠ°ΠΌΠ½ΠΈ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠΏΠ°ΡΡΡΡΡ ΠΏΡΠΈ ΠΈΡ ΡΠΎΡΠ΅ΡΠ°Π½ΠΈΠΈ.
ΠΡΠ΅ΠΌΡ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ
ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΎ Π±Π°Π·ΠΎΠ²ΠΎΠΉ Π²Π΅ΡΠΈ β ΡΡΠ΅Π΄Π΅ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠ°ΠΊ ΡΠ°ΠΊΠΎΠ²ΠΎΠΉ
ΠΡΠΎΡΠ΅ΡΡ
ΠΡΠΎΠΊΠ΅ΡΡ Kafka ΡΠ΄ΠΎΠ±Π½Ρ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ CPU. TLS ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π½Π΅ΡΡΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ·Π΄Π΅ΡΠΆΠΊΠΈ. ΠΡΠΈ ΡΡΠΎΠΌ, ΠΊΠ»ΠΈΠ΅Π½ΡΡ Kafka ΠΌΠΎΠ³ΡΡ ΡΠΈΠ»ΡΠ½Π΅Π΅ Π½Π°Π³ΡΡΠΆΠ°ΡΡ CPU, Π΅ΡΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅, Π½ΠΎ ΡΡΠΎ Π½Π΅ Π²Π»ΠΈΡΠ΅Ρ Π½Π° Π±ΡΠΎΠΊΠ΅ΡΠΎΠ².
ΠΠ°ΠΌΡΡΡ
ΠΡΠΎΠΊΠ΅ΡΡ Kafka ΠΎΡΠΆΠΈΡΠ°ΡΡ ΠΏΠ°ΠΌΡΡΡ. Π Π°Π·ΠΌΠ΅Ρ ΠΊΡΡΠΈ JVM ΠΎΠ±ΡΡΠ½ΠΎ ΠΌΠΎΠ΄Π½ΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΡΡ 4β5 ΠΠ±, Π½ΠΎ Π²Π°ΠΌ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Kafka ΠΎΡΠ΅Π½Ρ Π°ΠΊΡΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΡΡΠ°Π½ΠΈΡΠ½ΡΠΉ ΠΊΡΡ. Π Kubernetes ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π·Π°Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΏΡΠ΅Π΄Π΅Π»Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° Π½Π° ΡΠ΅ΡΡΡΡΡ ΠΈ Π·Π°ΠΏΡΠΎΡΡ.
Π₯ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Π΄Π°Π½Π½ΡΡ
Π₯ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Π΄Π°Π½Π½ΡΡ
Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°Ρ
ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠ΅ΠΌΠ΅ΡΠ½ΡΠΌ β Π΄Π°Π½Π½ΡΠ΅ ΡΠ΅ΡΡΡΡΡΡ ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΠΊΠ΅. ΠΠ»Ρ Π΄Π°Π½Π½ΡΡ
Kafka ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΠΌ emptyDir
, ΠΈ ΡΡΡΠ΅ΠΊΡ Π±ΡΠ΄Π΅Ρ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠΌ: Π΄Π°Π½Π½ΡΠ΅ Π²Π°ΡΠ΅Π³ΠΎ Π±ΡΠΎΠΊΠ΅ΡΠ° Π±ΡΠ΄ΡΡ ΡΡΠ΅ΡΡΠ½Ρ ΠΏΠΎΡΠ»Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ. ΠΠ°ΡΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ ΠΌΠΎΠ³ΡΡ ΡΠΎΡ
ΡΠ°Π½ΠΈΡΡΡΡ Π½Π° Π΄ΡΡΠ³ΠΈΡ
Π±ΡΠΎΠΊΠ΅ΡΠ°Ρ
Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ΅ΠΏΠ»ΠΈΠΊ. ΠΠΎΡΡΠΎΠΌΡ, ΠΏΠΎΡΠ»Π΅ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΠΊΠ° ΠΎΡΠΊΠ°Π·Π°Π²ΡΠΈΠΉ Π±ΡΠΎΠΊΠ΅Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠ΅ΡΠ²ΡΠΌ Π΄Π΅Π»ΠΎΠΌ ΡΠ΅ΠΏΠ»ΠΈΡΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅, Π° Π½Π° ΡΡΠΎΡ ΠΏΡΠΎΡΠ΅ΡΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°ΡΡΡΡ Π½Π΅ΠΌΠ°Π»ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ.
ΠΠΎΡ ΠΏΠΎΡΠ΅ΠΌΡ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄ΠΎΠ»Π³ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ΅ Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Π΄Π°Π½Π½ΡΡ
. ΠΡΡΡΡ ΡΡΠΎ Π±ΡΠ΄Π΅Ρ Π½Π΅Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ΅ Π΄ΠΎΠ»Π³ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ΅ Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Ρ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ XFS ΠΈΠ»ΠΈ, ΡΠΎΡΠ½Π΅Π΅, ext4. ΠΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ NFS. Π― ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅Π΄ΠΈΠ». NFS Π²Π΅ΡΡΠΈΠΉ v3 ΠΈΠ»ΠΈ v4 ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π΅ Π±ΡΠ΄Π΅Ρ. ΠΠΎΡΠΎΡΠ΅ Π³ΠΎΠ²ΠΎΡΡ, Π±ΡΠΎΠΊΠ΅Ρ Kafka Π·Π°Π²Π΅ΡΡΠΈΡΡΡ, Π΅ΡΠ»ΠΈ Π½Π΅ ΡΠΌΠΎΠΆΠ΅Ρ ΡΠ΄Π°Π»ΠΈΡΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ Ρ Π΄Π°Π½Π½ΡΠΌΠΈ ΠΈΠ·-Π·Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ Β«Π³Π»ΡΠΏΡΠΌΠΈ ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΡΠΌΠΈΒ», Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎΠΉ Π² NFS. ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π΄ΠΎ ΡΠΈΡ
ΠΏΠΎΡ Π½Π΅ ΡΠ±Π΅Π΄ΠΈΠ», ΠΎΡΠ΅Π½Ρ Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½ΠΎ
Π‘Π΅ΡΡ
ΠΠ°ΠΊ ΠΈ Π² ΡΠ»ΡΡΠ°Π΅ Ρ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎΠΌ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌ, ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Kafka ΠΎΡΠ΅Π½Ρ ΡΠΈΠ»ΡΠ½ΠΎ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π·Π°Π΄Π΅ΡΠΆΠΊΠΈ Π² ΡΠ΅ΡΠΈ Π±ΡΠ»ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΌΠΈ, Π° ΡΠΈΡΠΈΠ½Π° ΠΏΠΎΠ»ΠΎΡΡ β ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΉ. ΠΠ΅ ΠΏΡΡΠ°ΠΉΡΠ΅ΡΡ ΡΠ°Π·ΠΌΠ΅ΡΡΠΈΡΡ Π²ΡΠ΅ Π±ΡΠΎΠΊΠ΅ΡΡ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΠΈ ΡΠΎΠΌ ΠΆΠ΅ ΡΠ·Π»Π΅, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΡΠΌΠ΅Π½ΡΡΠΈΡΡΡ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΡ. ΠΡΠ»ΠΈ ΠΎΡΠΊΠ°ΠΆΠ΅Ρ ΡΠ·Π΅Π» Kubernetes, ΡΠΎ ΠΎΡΠΊΠ°ΠΆΠ΅Ρ ΠΈ Π²Π΅ΡΡ ΠΊΠ»Π°ΡΡΠ΅Ρ Kafka. Π’Π°ΠΊΠΆΠ΅ Π½Π΅ ΡΠ°ΡΡΡΠ΅Π΄ΠΎΡΠΎΡΠΈΠ²Π°ΠΉΡΠ΅ ΠΊΠ»Π°ΡΡΠ΅Ρ Kafka ΠΏΠΎ ΡΠ΅Π»ΡΠΌ Π΄Π°ΡΠ°ΡΠ΅Π½ΡΡΠ°ΠΌ. Π’ΠΎ ΠΆΠ΅ ΠΊΠ°ΡΠ°Π΅ΡΡΡ ΠΊΠ»Π°ΡΡΠ΅ΡΠ° Kubernetes. Π₯ΠΎΡΠΎΡΠΈΠΉ ΠΊΠΎΠΌΠΏΡΠΎΠΌΠΈΡΡ Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ β Π²ΡΠ±ΡΠ°ΡΡ ΡΠ°Π·Π½ΡΠ΅ Π·ΠΎΠ½Ρ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΠΈ.
ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ
ΠΠ±ΡΡΠ½ΡΠ΅ ΠΌΠ°Π½ΠΈΡΠ΅ΡΡΡ
ΠΠ° ΡΠ°ΠΉΡΠ΅ Kubernetes Π΅ΡΡΡ
- ΠΠΎΠ΄: ΠΏΠΎΠ΄ β ΡΡΠΎ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½Π°Ρ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π΅ΠΌΠ°Ρ Π΅Π΄ΠΈΠ½ΠΈΡΠ° Π² Kubernetes. Π ΠΏΠΎΠ΄Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡΡΡ Π²Π°ΡΠ° ΡΠ°Π±ΠΎΡΠ°Ρ Π½Π°Π³ΡΡΠ·ΠΊΠ°, Π° ΡΠ°ΠΌ ΠΏΠΎΠ΄ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΠΏΡΠΎΡΠ΅ΡΡΡ Ρ Π²Π°Ρ Π² ΠΊΠ»Π°ΡΡΠ΅ΡΠ΅. Π ΠΏΠΎΠ΄Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ². ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠ΅ΡΠ²Π΅Ρ ZooKeeper Π² Π°Π½ΡΠ°ΠΌΠ±Π»Π΅ ΠΈ ΠΊΠ°ΠΆΠ΄ΡΠΉ Π±ΡΠΎΠΊΠ΅Ρ Π² ΠΊΠ»Π°ΡΡΠ΅ΡΠ΅ Kafka Π±ΡΠ΄ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΌ ΠΏΠΎΠ΄Π΅.
- StatefulSet: StatefulSet β ΡΡΠΎ ΠΎΠ±ΡΠ΅ΠΊΡ Kubernetes, ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠΉ ΡΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΌΠΈ ΡΠ°Π±ΠΎΡΠΈΠΌΠΈ Π½Π°Π³ΡΡΠ·ΠΊΠ°ΠΌΠΈ, ΡΠΎΡ ΡΠ°Π½ΡΡΡΠΈΠΌΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΡΠΌΠΈ, Π° ΡΠ°ΠΊΠΈΠ΅ Π½Π°Π³ΡΡΠ·ΠΊΠΈ ΡΡΠ΅Π±ΡΡΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠΈΠΈ. StatefulSet ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ Π³Π°ΡΠ°Π½ΡΠΈΠΈ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΏΠΎΡΡΠ΄ΠΎΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ΄ΠΎΠ² ΠΈ ΠΈΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΠΎΡΡΠΈ.
- Headless-ΡΠ΅ΡΠ²ΠΈΡΡ: Π‘Π΅ΡΠ²ΠΈΡΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΎΡΠΊΡΠ΅ΠΏΠ»ΡΡΡ ΠΏΠΎΠ΄Ρ ΠΎΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ² ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ. Kubernetes Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΠΊΡ Π½Π°Π³ΡΡΠ·ΠΊΠΈ. ΠΠ΄Π½Π°ΠΊΠΎ, ΠΏΡΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΡ Ρ ΡΠ°Π±ΠΎΡΠΈΠΌΠΈ Π½Π°Π³ΡΡΠ·ΠΊΠ°ΠΌΠΈ, ΡΠΎΡ ΡΠ°Π½ΡΡΡΠΈΠΌΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅, ΠΊΠ°ΠΊ Π² ΡΠ»ΡΡΠ°Π΅ Ρ ZooKeeper ΠΈ Kafka, ΠΊΠ»ΠΈΠ΅Π½ΡΠ°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°ΡΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΌ ΠΈΠ½ΡΡΠ°Π½ΡΠΎΠΌ. ΠΠΌΠ΅Π½Π½ΠΎ Π·Π΄Π΅ΡΡ Π²Π°ΠΌ ΠΈ ΠΏΡΠΈΠ³ΠΎΠ΄ΡΡΡΡ headless-ΡΠ΅ΡΠ²ΠΈΡΡ: Π² ΡΠ°ΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ Π±ΡΠ΄Π΅Ρ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΈΠΌΡ, Π½ΠΎ Π½Π°ΠΏΡΡΠΌΡΡ ΠΊ ΠΏΠΎΠ΄Ρ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ Π½Π΅ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ.
- Π’ΠΎΠΌ Π΄Π»Ρ Π΄ΠΎΠ»Π³ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ: ΡΠ°ΠΊΠΈΠ΅ ΡΠΎΠΌΠ° Π½ΡΠΆΠ½Ρ Π΄Π»Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π½Π΅Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π±Π»ΠΎΡΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠ»Π³ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ°, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡ Π²ΡΡΠ΅.
ΠΠ°
Helm-Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ
Helm β ΡΡΠΎ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² Π΄Π»Ρ a Kubernetes, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠ°Π²Π½ΠΈΡΡ Ρ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠ°ΠΌΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² Π΄Π»Ρ ΠΠ‘, ΡΠ°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ yum, apt, Homebrew ΠΈΠ»ΠΈ Chocolatey. Π‘ Π΅Π³ΠΎ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ΄ΠΎΠ±Π½ΠΎ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ Π·Π°ΡΠ°Π½Π΅Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΡ, ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠ΅ Π² Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ°Ρ
Helm. Π₯ΠΎΡΠΎΡΠΎ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ°Π½Π½Π°Ρ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ° Helm ΠΎΠ±Π»Π΅Π³ΡΠ°Π΅Ρ ΡΠ»ΠΎΠΆΠ½ΡΡ Π·Π°Π΄Π°ΡΡ: ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΡΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Kafka Π½Π° Kubernetes. ΠΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌ Kafka: ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½Π°Ρ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ
ΠΠΏΠ΅ΡΠ°ΡΠΎΡΡ
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Helm ΡΠ²ΠΎΠΉΡΡΠ²Π΅Π½Π½Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ, Π½Π΅ΠΌΠ°Π»ΡΡ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΡΡΡ ΠΏΡΠΈΠΎΠ±ΡΠ΅ΡΠ°Π΅Ρ Π΅ΡΠ΅ ΠΎΠ΄Π½ΠΎ ΡΡΠ΅Π΄ΡΡΠ²ΠΎ: ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ Kubernetes. ΠΠΏΠ΅ΡΠ°ΡΠΎΡ Π½Π΅ ΠΏΡΠΎΡΡΠΎ ΡΠΏΠ°ΠΊΠΎΠ²ΡΠ²Π°Π΅Ρ ΡΠΎΡΡ Π΄Π»Ρ Kubernetes, Π½ΠΎ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²Π°ΠΌ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°ΡΡ ΡΠ°ΠΊΠΎΠΉ ΡΠΎΡΡ, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΈΠΌ.
Π ΡΠΏΠΈΡΠΊΠ΅
ΠΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ
ΠΡΠ΅Π½Ρ Π²Π°ΠΆΠ½ΠΎ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ, ΡΠ½Π°Π±ΠΆΠ°Ρ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠΉ Ρ Π²Π°Ρ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ Kafka ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½ΡΠΌΠΈ ΡΠΎΡΠΊΠ°ΠΌΠΈ. Π’Π°ΠΊΠΈΠ΅ ΡΠ΅ΡΡΡ ΠΏΠΎΠΌΠΎΠ³ΡΡ Π²Π°ΠΌ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΡΡ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΡΠ·ΠΊΠΈΠ΅ ΠΌΠ΅ΡΡΠ°, ΠΏΠΎΠΊΠ° Π½Π΅ Π½Π°ΡΠ°Π»ΠΈΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ. Π ΡΡΠ°ΡΡΡΡ, Π² Kafka ΡΠΆΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ Π΄Π²Π° ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ° Π΄Π»Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ: kafka-producer-perf-test.sh
ΠΈ kafka-consumer-perf-test.sh
. ΠΠΊΡΠΈΠ²Π½ΠΎ ΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ΡΡ ΠΈΠΌΠΈ. ΠΠ»Ρ ΡΠΏΡΠ°Π²ΠΊΠΈ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ²Π΅ΡΡΡΡΡΡ Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°ΠΌΠΈ, ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠΌΠΈ Π²
ΠΠΏΠ΅ΡΠ°ΡΠΈΠΈ
ΠΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³
ΠΡΠΎΠ·ΡΠ°ΡΠ½ΠΎΡΡΡ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΎΡΠ΅Π½Ρ Π²Π°ΠΆΠ½Π° β ΠΈΠ½Π°ΡΠ΅ Π²Ρ Π½Π΅ ΠΏΠΎΠΉΠΌΠ΅ΡΠ΅, ΡΡΠΎ Π² Π½Π΅ΠΉ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ. Π‘Π΅Π³ΠΎΠ΄Π½Ρ ΠΈΠΌΠ΅Π΅ΡΡΡ ΡΠΎΠ»ΠΈΠ΄Π½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡΠΈΠΉ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΌΠ΅ΡΡΠΈΠΊ Π² ΡΡΠΈΠ»Π΅ cloud native. ΠΠ²Π° ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ° Π΄Π»Ρ ΡΡΠΎΠΉ ΡΠ΅Π»ΠΈ β Prometheus ΠΈ Grafana. Prometheus ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ±ΠΈΡΠ°ΡΡ ΠΌΠ΅ΡΡΠΈΠΊΠΈ ΡΠΎ Π²ΡΠ΅Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² Java (Kafka, Zookeeper, Kafka Connect) ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΠΊΡΠΏΠΎΡΡΠ΅ΡΠ° JMX β ΡΠ°ΠΌΡΠΌ ΠΏΡΠΎΡΡΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ. ΠΡΠ»ΠΈ ΠΏΡΠΈΡΠΎΠ²ΠΎΠΊΡΠΏΠΈΡΡ ΠΌΠ΅ΡΡΠΈΠΊΠΈ cAdvisor, ΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»Π½Π΅Π΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ, ΠΊΠ°ΠΊ Π² Kubernetes ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠ΅ΡΡΡΡΡ.
Π£ Strimzi Π΅ΡΡΡ ΠΎΡΠ΅Π½Ρ ΡΠ΄ΠΎΠ±Π½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ Π΄Π°ΡΠ±ΠΎΡΠ΄Π° Grafana Π΄Π»Ρ Kafka. ΠΠ½ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅Ρ ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΠΌΠ΅ΡΡΠΈΠΊΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎ Π½Π΅Π΄ΠΎΡΠ΅ΠΏΠ»ΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΠ΅ΠΊΡΠΎΡΠ°Ρ ΠΈΠ»ΠΈ ΠΎ ΡΠ΅Ρ , ΡΡΠΎ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ ΠΎΡΡΠ»Π°ΠΉΠ½. Π’Π°ΠΌ Π²ΡΠ΅ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠ½ΡΡΠ½ΠΎ. ΠΡΠΈ ΠΌΠ΅ΡΡΠΈΠΊΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΡΡΡΡΡ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡΠΌΠΈ ΠΎΠ± ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΠ΅ΡΡΡΡΠΎΠ² ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΠ°ΠΌΠΈ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎΡΡΠΈ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π²Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΠ΅ Π±Π°Π·ΠΎΠ²ΡΠΉ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ ΠΊΠ»Π°ΡΡΠ΅ΡΠ° Kafka Π·Π° ΠΏΡΠΎΡΡΠΎ ΡΠ°ΠΊ!
ΠΡΡΠΎΡΠ½ΠΈΠΊ:
ΠΡΠ΅ ΡΡΠΎ Π½Π΅ΠΏΠ»ΠΎΡ
ΠΎ Π±ΡΠ»ΠΎ Π±Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΡ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ΠΎΠΌ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ² (ΠΌΠ΅ΡΡΠΈΠΊΠΈ ΠΏΠΎ ΠΊΠΎΠ½ΡΡΡΠΌΠ΅ΡΠ°ΠΌ ΠΈ ΠΏΡΠΎΠ΄ΡΡΡΠ΅ΡΠ°ΠΌ), Π° ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ΠΎΠΌ Π·Π°ΠΏΠ°Π·Π΄ΡΠ²Π°Π½ΠΈΡ (Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π΅ΡΡΡ
ΠΠΎΠ³ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
ΠΠΎΠ³ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ β Π΅ΡΠ΅ ΠΎΠ΄Π½Π° Π²Π°ΠΆΠ½Π΅ΠΉΡΠ°Ρ Π·Π°Π΄Π°ΡΠ°. Π£Π±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Π²ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ Π² Π²Π°ΡΠ΅ΠΉ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ Kafka Π»ΠΎΠ³ΠΈΡΡΡΡΡΡ Π² stdout
ΠΈ stderr
, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ·Π°Π±ΠΎΡΡΡΠ΅ΡΡ ΠΎ ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ Π²Π°Ρ ΠΊΠ»Π°ΡΡΠ΅Ρ Kubernetes Π°Π³ΡΠ΅Π³ΠΈΡΠΎΠ²Π°Π» Π²ΡΠ΅ Π»ΠΎΠ³ΠΈ Π² ΡΠ΅Π½ΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΆΡΡΠ½Π°Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π²
ΠΡΠΎΠ²Π΅ΡΠΊΠ° ΡΠ°Π±ΠΎΡΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ
Kubernetes ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π·ΠΎΠ½Π΄Ρ Β«ΠΆΠΈΠ²ΠΎΡΡΠΈΒ» (liveness) ΠΈ Π³ΠΎΡΠΎΠ²Π½ΠΎΡΡΠΈ (readiness) ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ, Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ Π»ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π²Π°ΡΠΈ ΠΏΠΎΠ΄Ρ. ΠΡΠ»ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΠΆΠΈΠ²ΠΎΡΡΡ Π½Π΅ ΡΠ΄Π°Π΅ΡΡΡ, Kubernetes ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡ ΡΡΠΎΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ, Π° Π·Π°ΡΠ΅ΠΌ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΡΠΈΡ Π΅Π³ΠΎ, Π΅ΡΠ»ΠΈ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠ° ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΠΊΠ° ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ. ΠΡΠ»ΠΈ Π½Π΅ ΡΠ΄Π°Π΅ΡΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° Π³ΠΎΡΠΎΠ²Π½ΠΎΡΡΡ, ΡΠΎ Kubernetes ΠΈΠ·ΠΎΠ»ΠΈΡΡΠ΅Ρ ΡΡΠΎΡ ΠΏΠΎΠ΄ ΠΎΡ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΡ Π·Π°ΠΏΡΠΎΡΠΎΠ². Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π² ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ ΡΠ»ΡΡΠ°ΡΡ Π±ΠΎΠ»ΡΡΠ΅ Π²ΠΎΠΎΠ±ΡΠ΅ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π²ΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΡΡΠ²Π° Π²ΡΡΡΠ½ΡΡ, Π° ΡΡΠΎ Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΏΠ»ΡΡ.
ΠΡΠΊΠ°ΡΡΠ²Π°Π½ΠΈΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ
StatefulSet ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ: ΠΏΡΠΈ Π²ΡΠ±ΠΎΡΠ΅ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΈ RollingUpdate ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΏΠΎΠ΄ Kafka Π±ΡΠ΄Π΅Ρ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡΡΡ ΠΏΠΎ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ²Π΅ΡΡΠΈ Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΏΡΠΎΡΡΠΎΠ΅Π² ΠΊ Π½ΡΠ»Ρ.
ΠΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
ΠΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠ΅ΡΠ° Kafka β Π½Π΅ΠΏΡΠΎΡΡΠ°Ρ Π·Π°Π΄Π°ΡΠ°. ΠΠ΄Π½Π°ΠΊΠΎ, Π² Kubernetes ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΠΎ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠΎΠ΄Ρ Π΄ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΡΠ΅ΠΏΠ»ΠΈΠΊ, Π° ΡΡΠΎ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠ²Π½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΡΠΎΠ»ΡΠΊΠΎ Π±ΡΠΎΠΊΠ΅ΡΠΎΠ² Kafka, ΡΠΊΠΎΠ»ΡΠΊΠΎ Π·Π°Ρ ΠΎΡΠΈΡΠ΅. Π‘Π°ΠΌΠΎΠ΅ ΡΠ»ΠΎΠΆΠ½ΠΎΠ΅ Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ β ΠΏΠ΅ΡΠ΅ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΠΎΡΠΎΠ² ΠΏΠΎΡΠ»Π΅ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²Π²Π΅ΡΡ ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅Π΄ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π²Π½ΠΈΠ·. ΠΠΏΡΡΡ ΠΆΠ΅, Ρ ΡΡΠΎΠΉ Π·Π°Π΄Π°ΡΠ΅ΠΉ Π²Π°ΠΌ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Kubernetes.
ΠΠ΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
ΠΠ°Π΄Π°ΡΠΈ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π²Π°ΡΠ΅Π³ΠΎ ΠΊΠ»Π°ΡΡΠ΅ΡΠ° Kafka, Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠΎΠΏΠΈΠΊΠΎΠ² ΠΈ ΠΏΠ΅ΡΠ΅ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΠΎΡΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΈΠΌΠ΅ΡΡΠΈΡ ΡΡ ΡΠ΅Π»Π»-ΡΠΊΡΠΈΠΏΡΠΎΠ², ΠΎΡΠΊΡΡΠ²Π°Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ Π² Π²Π°ΡΠΈΡ ΠΏΠΎΠ΄Π°Ρ . ΠΠ΄Π½Π°ΠΊΠΎ, ΡΠ°ΠΊΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½Π΅ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΠΊΡΠ°ΡΠΈΠ²ΠΎΠ΅. Strimzi ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΎΠΏΠΈΠΊΠ°ΠΌΠΈ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°. ΠΠ΄Π΅ΡΡ Π΅ΡΡΡ ΡΡΠΎ Π΄ΠΎΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ.
Π Π΅Π·Π΅ΡΠ²Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅
Π’Π΅ΠΏΠ΅ΡΡ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΡ Kafka Ρ Π½Π°Ρ Π±ΡΠ΄Π΅Ρ Π·Π°Π²ΠΈΡΠ΅ΡΡ ΠΈ ΠΎΡ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΠΈ Kubernetes. ΠΡΠ»ΠΈ Ρ Π²Π°Ρ ΡΠΏΠ°Π΄Π΅Ρ ΠΊΠ»Π°ΡΡΠ΅Ρ Kubernetes, ΡΠΎ Π² Ρ
ΡΠ΄ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠΏΠ°Π΄Π΅Ρ ΠΈ ΠΊΠ»Π°ΡΡΠ΅Ρ Kafka. ΠΠΎ Π·Π°ΠΊΠΎΠ½Ρ ΠΡΡΡΠΈ ΡΡΠΎ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ, ΠΈ Π²Ρ ΠΏΠΎΡΠ΅ΡΡΠ΅ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅. Π§ΡΠΎΠ±Ρ ΡΠ½ΠΈΠ·ΠΈΡΡ ΡΠΈΡΠΊ ΡΠ°ΠΊΠΎΠ³ΠΎ ΡΠΎΠ΄Π°, Ρ
ΠΎΡΠΎΡΠΎ ΠΏΡΠΎΡΠ°Π±ΠΎΡΠ°ΠΉΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ ΡΠ΅Π·Π΅ΡΠ²Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ MirrorMaker, Π΄ΡΡΠ³ΠΎΠΉ Π²Π°ΡΠΈΠ°Π½Ρ β Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ S3, ΠΊΠ°ΠΊ ΠΎΠΏΠΈΡΠ°Π½ΠΎ Π² ΡΡΠΎΠΌ
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
ΠΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΠΌΠΈ ΠΈΠ»ΠΈ ΡΡΠ΅Π΄Π½ΠΈΠΌΠΈ ΠΊΠ»Π°ΡΡΠ΅ΡΠ°ΠΌΠΈ Kafka ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎ ΡΠ΅Π»Π΅ΡΠΎΠΎΠ±ΡΠ°Π·Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Kubernetes, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ Π³ΠΈΠ±ΠΊΠΎΡΡΡ ΠΈ ΡΠΏΡΠΎΡΠ°Π΅Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°ΠΌΠΈ. ΠΡΠ»ΠΈ ΠΏΠ΅ΡΠ΅Π΄ Π²Π°ΠΌΠΈ ΡΡΠΎΡΡ ΠΎΡΠ΅Π½Ρ ΡΠ΅ΡΡΠ΅Π·Π½ΡΠ΅ Π½Π΅ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ, ΠΊΠ°ΡΠ°ΡΡΠΈΠ΅ΡΡ Π·Π°Π΄Π΅ΡΠΆΠΊΠΈ ΠΈ/ΠΈΠ»ΠΈ ΠΏΡΠΎΠΏΡΡΠΊΠ½ΠΎΠΉ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ, ΡΠΎ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π»ΡΡΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅ΡΡ ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡΠ΄Ρ Π΄ΡΡΠ³ΠΎΠΉ Π²Π°ΡΠΈΠ°Π½Ρ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: habr.com