Как Π΄Π° ΠΈΠ·Π³Ρ€Π°Π΄ΠΈΡ‚Π΅ Ρ…ΠΈΠ±Ρ€ΠΈΠ΄Π΅Π½ ΠΎΠ±Π»Π°ΠΊ с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° Kubernetes, ΠΊΠΎΠΉΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π·Π°ΠΌΠ΅Π½ΠΈ DBaaS

Казвам сС ΠŸΠ΅Ρ‚Ρ€ Π—Π°ΠΉΡ†Π΅Π², Π°Π· съм Π³Π»Π°Π²Π΅Π½ ΠΈΠ·ΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π΅Π½ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€, основатСл ΠŸΠ΅Ρ€ΠΊΠΎΠ½Π° ΠΈ искам Π΄Π° Ρ‚ΠΈ ΠΊΠ°ΠΆΠ°:

  • ΠΊΠ°ΠΊ стигнахмС ΠΎΡ‚ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ с ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄ Π΄ΠΎ Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ ΠΊΠ°Ρ‚ΠΎ услуга;
  • ΠΊΠ°ΠΊΠ²ΠΈ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈ ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‚ Π·Π° Ρ€Π°Π·ΠΏΠΎΠ»Π°Π³Π°Π½Π΅ Π½Π° Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ Π² ΠΎΠ±Π»Π°ΠΊΠ°;
  • ΠΊΠ°ΠΊ Kubernetes ΠΌΠΎΠΆΠ΅ Π΄Π° Π·Π°ΠΌΠ΅Π½ΠΈ DBaaS, Π΅Π»ΠΈΠΌΠΈΠ½ΠΈΡ€Π°ΠΉΠΊΠΈ зависимостта ΠΎΡ‚ доставчика ΠΈ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°ΠΉΠΊΠΈ простотата Π½Π° Π‘Π£Π‘Π” ΠΊΠ°Ρ‚ΠΎ услуга.

Бтатията Π΅ ΠΈΠ·Π³ΠΎΡ‚Π²Π΅Π½Π° въз основа Π½Π° Π΄ΠΎΠΊΠ»Π°Π΄ Π½Π° @Databases Meetup ΠΎΡ‚ Mail.ru Cloud Solutions & Tarantool. Ако Π½Π΅ искатС Π΄Π° Ρ‡Π΅Ρ‚Π΅Ρ‚Π΅, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π³Π»Π΅Π΄Π°Ρ‚Π΅:


Как стигнахмС ΠΎΡ‚ ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄ Π΄ΠΎ Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ ΠΊΠ°Ρ‚ΠΎ услуга Π² ΠΎΠ±Π»Π°ΠΊΠ°

Работя с ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄ ΠΎΡ‚ края Π½Π° 90-Ρ‚Π΅ Π³ΠΎΠ΄ΠΈΠ½ΠΈ. ΠŸΡ€Π΅Π΄ΠΈ двадСсСт Π³ΠΎΠ΄ΠΈΠ½ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄, ΠΊΠ°Ρ‚ΠΎ Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ, Π½Π΅ бСшС Ρ‚ΠΎΠ»ΠΊΠΎΠ²Π° лСсно. Π‘Π΅ΡˆΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° ΠΈΠ·Ρ‚Π΅Π³Π»ΠΈΡ‚Π΅ изходния ΠΊΠΎΠ΄, Π΄Π° Π³ΠΎ Π·Π°ΠΊΡŠΡ€ΠΏΠΈΡ‚Π΅, ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Ρ‚Π΅ ΠΈ Π΅Π΄Π²Π° слСд Ρ‚ΠΎΠ²Π° Π΄Π° Π³ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅.

Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° отворСният ΠΊΠΎΠ΄ ΠΏΡ€Π΅ΠΌΠΈΠ½Π° ΠΏΡ€Π΅Π· сСрия ΠΎΡ‚ опростявания:

  • Tar.gz ΠΈ INSTALL ΠΈΠ·Ρ‚ΠΎΡ‡Π½ΠΈΡ†ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ Ρ‚Ρ€ΡΠ±Π²Π°ΡˆΠ΅ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Π½ΠΈ;
  • ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ със зависимости ΠΊΠ°Ρ‚ΠΎ .deb ΠΈ .rpm, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ трябва само Π΄Π° инсталиратС Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ;
  • ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΈ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° ΠΊΠ°Ρ‚ΠΎ APT ΠΈ YUM, с ΠΊΠΎΠΈΡ‚ΠΎ инсталацията Π΅ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½Π°;
  • Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΊΠ°Ρ‚ΠΎ Docker ΠΈ Snap, ΠΊΠΎΠΈΡ‚ΠΎ Π²ΠΈ позволяват Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°Ρ‚Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ Ρ‡Ρ€Π΅Π· инсталиранС Π±Π΅Π· външни зависимости.

Π’ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ Π½Π° Ρ‚ΠΎΠ²Π° става ΠΏΠΎ-лСсно Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° софтуСр с ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄ ΠΈ ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° сС намаляват Π±Π°Ρ€ΠΈΠ΅Ρ€ΠΈΡ‚Π΅ Π·Π° Π½Π°Π²Π»ΠΈΠ·Π°Π½Π΅ Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Ρ‚Π°ΠΊΠΈΠ²Π° прилоТСния.

Π’ ΡΡŠΡ‰ΠΎΡ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅, Π·Π° Ρ€Π°Π·Π»ΠΈΠΊΠ° ΠΎΡ‚ ситуацията ΠΏΡ€Π΅Π΄ΠΈ 20 Π³ΠΎΠ΄ΠΈΠ½ΠΈ, ΠΊΠΎΠ³Π°Ρ‚ΠΎ всСки бСшС СкспСрт ΠΏΠΎ асСмблиранС, сСга ΠΏΠΎΠ²Π΅Ρ‡Π΅Ρ‚ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈ Π½Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Ρ‚ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈΡ‚Π΅ ΠΎΡ‚ тях инструмСнти ΠΎΡ‚ ΠΈΠ·Ρ‚ΠΎΡ‡Π½ΠΈΠΊΠ°.

Π’ΡΡŠΡ‰Π½ΠΎΡΡ‚ Ρ‚ΠΎΠ²Π° Π½Π΅ Π΅ лошо, Π·Π°Ρ‰ΠΎΡ‚ΠΎ:

  1. МоТСм Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΠΏΠΎ-слоТСн, Π½ΠΎ ΠΏΠΎ-лСсСн Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ софтуСр. НапримСр, Π΅Π΄ΠΈΠ½ Π±Ρ€Π°ΡƒΠ·ΡŠΡ€ Π΅ ΡƒΠ΄ΠΎΠ±Π΅Π½ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅, Π½ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π²Π° ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈ с ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄ ΠΈ Π΅ Π½Π΅ΡƒΠ΄ΠΎΠ±Π½ΠΎ Π΄Π° сС създава ΠΎΡ‚ Π½ΡƒΠ»Π°Ρ‚Π°.
  2. ΠŸΠΎΠ²Π΅Ρ‡Π΅ Ρ…ΠΎΡ€Π° ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° станат Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈ Π½Π° софтуСр с ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄ ΠΈ Π΄Ρ€ΡƒΠ³ софтуСр, ΠΏΠΎΠ²Π΅Ρ‡Π΅ софтуСр сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΎΡ‚ бизнСса ΠΈ Π½ΡƒΠΆΠ΄Π°Ρ‚Π° ΠΎΡ‚ Π½Π΅Π³ΠΎ Π΅ ΠΏΠΎ-голяма.

ΠΠ΅Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΠΊΡŠΡ‚ Π΅, Ρ‡Π΅ слСдващата ΡΡ‚ΡŠΠΏΠΊΠ° Π² опростяванСто Π΅ ΡΠ²ΡŠΡ€Π·Π°Π½Π° с ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΎΠ±Π»Π°Ρ‡Π½ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, Π° Ρ‚ΠΎΠ²Π° Π²ΠΎΠ΄ΠΈ Π΄ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ vendor lock-in, тоСст ΠΎΠ±Π²ΡŠΡ€Π·Π²Π°Π½Π΅ с Π΅Π΄ΠΈΠ½ доставчик. НиС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ прости Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΈ доставчицитС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈ с ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄, Π½ΠΎ Π²ΡΡŠΡ‰Π½ΠΎΡΡ‚ Ρ‚Π΅ са ΠΏΡ€ΠΈΠΊΠΎΠ²Π°Π½ΠΈ към Π΅Π΄ΠΈΠ½ ΠΎΡ‚ Π³ΠΎΠ»Π΅ΠΌΠΈΡ‚Π΅ ΠΎΠ±Π»Π°Ρ†ΠΈ. Π’ΠΎΠ²Π° ΠΎΠ·Π½Π°Ρ‡Π°Π²Π°, Ρ‡Π΅ Π½Π°ΠΉ-лСсният ΠΈ Π±ΡŠΡ€Π· Π½Π°Ρ‡ΠΈΠ½ Π·Π° внСдряванС Π½Π° ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄ (ΠΈ софтуСр, ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌ с Π½Π΅Π³ΠΎ) Π΅ Π² ΠΎΠ±Π»Π°Ρ†ΠΈΡ‚Π΅, ΠΊΠ°Ρ‚ΠΎ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΏΠ°Ρ‚Π΅Π½Ρ‚ΠΎΠ²Π°Π½ API.

ΠšΠΎΠ³Π°Ρ‚ΠΎ става Π²ΡŠΠΏΡ€ΠΎΡ Π·Π° Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ Π² ΠΎΠ±Π»Π°ΠΊΠ°, ΠΈΠΌΠ° Π΄Π²Π° ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π°:

  1. Π‘Π³Π»ΠΎΠ±Π΅Ρ‚Π΅ инфраструктурата Π½Π° Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ, ΠΊΠ°ΠΊΡ‚ΠΎ Π² ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ Ρ†Π΅Π½Ρ‚ΡŠΡ€ Π·Π° Π΄Π°Π½Π½ΠΈ. ВоСст, Π²Π·Π΅ΠΌΠ΅Ρ‚Π΅ стандартни Π³Ρ€Π°Π΄ΠΈΠ²Π½ΠΈ Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ΠΈ: изчислСния, ΡΡŠΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ ΠΈ Ρ‚.Π½., инсталирайтС Linux ΠΈ Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ Π²ΡŠΡ€Ρ…Ρƒ тях ΠΈ Π³ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°ΠΉΡ‚Π΅.
  2. Π˜Π·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡ‚Π΅ Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ ΠΊΠ°Ρ‚ΠΎ услуга, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ Π΄ΠΎΡΡ‚Π°Π²Ρ‡ΠΈΠΊΡŠΡ‚ ΠΏΡ€Π΅Π΄Π»Π°Π³Π° Π³ΠΎΡ‚ΠΎΠ²Π° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ Π² ΠΎΠ±Π»Π°ΠΊΠ°.

DBaaS Π΅ Π±ΡŠΡ€Π·ΠΎ Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‰ сС ΠΏΠ°Π·Π°Ρ€ Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°, Π·Π°Ρ‰ΠΎΡ‚ΠΎ позволява Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ Π΄Π° работят Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ с Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€Π° Ρ€ΡƒΡ‚ΠΈΠ½Π½Π°Ρ‚Π° Ρ€Π°Π±ΠΎΡ‚Π°. Π”ΠΎΡΡ‚Π°Π²Ρ‡ΠΈΠΊΡŠΡ‚ сС Π°Π½Π³Π°ΠΆΠΈΡ€Π° Π΄Π° осигури висока наличност ΠΈ лСсно ΠΌΠ°Ρ‰Π°Π±ΠΈΡ€Π°Π½Π΅, ΠΊΠΎΡ€Π΅ΠΊΡ†ΠΈΠΈ Π½Π° Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ, Π°Ρ€Ρ…ΠΈΠ²ΠΈΡ€Π°Π½Π΅ ΠΈ настройка Π½Π° производитСлността.

Π”Π²Π° Ρ‚ΠΈΠΏΠ° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ ΠΊΠ°Ρ‚ΠΎ услуга, Π±Π°Π·ΠΈΡ€Π°Π½Π° Π½Π° ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄ ΠΈ Π°Π»Ρ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π° ΠΏΠΎΠ΄ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π½Π° Kubernetes

Има Π΄Π²Π° Ρ‚ΠΈΠΏΠ° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ ΠΊΠ°Ρ‚ΠΎ услуга Π·Π° ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ΠΈ Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ:

  1. Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π΅Π½ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ с ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄, ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈΡ€Π°Π½ Π² Π±Π΅ΠΊΠ΅Π½Π΄ Π·Π° администриранС Π·Π° лСсно внСдряванС ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅.
  2. Π Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΎ Ρ‚ΡŠΡ€Π³ΠΎΠ²ΡΠΊΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ с Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Π΄ΠΎΠ±Π°Π²ΠΊΠΈ, ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎ с ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄.

И Π΄Π²Π΅Ρ‚Π΅ ΠΎΠΏΡ†ΠΈΠΈ намаляват Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π·Π° миграция ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΎΠ±Π»Π°Ρ†ΠΈ ΠΈ намаляват прСносимостта Π½Π° Π΄Π°Π½Π½ΠΈ ΠΈ прилоТСния. НапримСр, Π²ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ„Π°ΠΊΡ‚Π°, Ρ‡Π΅ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈΡ‚Π΅ Ρ‚ΠΈΠΏΠΎΠ²Π΅ ΠΎΠ±Π»Π°Ρ†ΠΈ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Ρ‚ ΠΏΠΎ ΡΡŠΡ‰Π΅ΡΡ‚Π²ΠΎ Π΅Π΄ΠΈΠ½ ΠΈ ΡΡŠΡ‰ стандарт MySQL, ΠΈΠΌΠ° Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΈ Ρ€Π°Π·Π»ΠΈΠΊΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ тях: Π² Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π°, производитСлността, Π°Ρ€Ρ…ΠΈΠ²ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ ΠΈ Ρ‚.Π½. ΠœΠΈΠ³Ρ€ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ ΠΎΡ‚ Π΅Π΄ΠΈΠ½ ΠΎΠ±Π»Π°ΠΊ към Π΄Ρ€ΡƒΠ³ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС прСдизвикатСлство, особСно Π·Π° слоТни прилоТСния.

И Ρ‚ΡƒΠΊ възниква Π²ΡŠΠΏΡ€ΠΎΡΡŠΡ‚ – възмоТно Π»ΠΈ Π΅ Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ удобството Π½Π° Database ΠΊΠ°Ρ‚ΠΎ услуга, Π½ΠΎ ΠΊΠ°Ρ‚ΠΎ просто Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ с ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄?

Π›ΠΎΡˆΠ°Ρ‚Π° Π½ΠΎΠ²ΠΈΠ½Π° Π΅, Ρ‡Π΅ Π·Π° съТалСниС всС ΠΎΡ‰Π΅ няма Ρ‚Π°ΠΊΠΈΠ²Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π½Π° ΠΏΠ°Π·Π°Ρ€Π°. Π”ΠΎΠ±Ρ€Π°Ρ‚Π° Π½ΠΎΠ²ΠΈΠ½Π° Π΅, Ρ‡Π΅ ΠΈΠΌΠ° Kubernetes, ΠΊΠΎΠΉΡ‚ΠΎ Π²ΠΈ позволява Π΄Π° внСдряватС Ρ‚Π°ΠΊΠΈΠ²Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ.

Kubernetes Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π° систСма Π·Π° ΠΎΠ±Π»Π°ΠΊΠ° ΠΈΠ»ΠΈ Ρ†Π΅Π½Ρ‚ΡŠΡ€Π° Π·Π° Π΄Π°Π½Π½ΠΈ, която Π²ΠΈ позволява Π΄Π° Ρ€Π°Π·ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅ ΠΈ управляватС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² мноТСство ΡΡŠΡ€Π²ΡŠΡ€ΠΈ Π² ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€, Π° Π½Π΅ Π½Π° Π΅Π΄ΠΈΠ½ хост.

Π‘Π΅Π³Π° Kubernetes Π΅ Π»ΠΈΠ΄Π΅Ρ€ Π² катСгорията Π½Π° Ρ‚Π°ΠΊΡŠΠ² софтуСр. ИмашС ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π° ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ, Π½ΠΎ Ρ‚ΠΎΠ²Π° стана стандарт. Много ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ ΠΏΡ€Π΅Π΄ΠΈ сС фокусираха Π²ΡŠΡ€Ρ…Ρƒ Π°Π»Ρ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, сСга сС фокусират Π²ΡŠΡ€Ρ…Ρƒ Π°Π΄Π°ΠΏΡ‚ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° своитС ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈ Π·Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° Kubernetes.

Π’ допълнСниС, Kubernetes Π΅ унивСрсално Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΠ΅Ρ‚ΠΎ сС ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° Π² частни, ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΈ ΠΈ Ρ…ΠΈΠ±Ρ€ΠΈΠ΄Π½ΠΈ ΠΎΠ±Π»Π°Ρ†ΠΈ Π½Π° ΠΌΠ½ΠΎΠ³ΠΎ доставчици, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€: AWS, Google Cloud, Microsoft Azure, ΠžΠ±Π»Π°Ρ‡Π½ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π½Π° Mail.ru.

Как Kubernetes Ρ€Π°Π±ΠΎΡ‚ΠΈ с Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ

Kubernetes ΠΏΡŠΡ€Π²ΠΎΠ½Π°Ρ‡Π°Π»Π½ΠΎ Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€Π°Π½ Π·Π° прилоТСния Π±Π΅Π· ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅, ΠΊΠΎΠΈΡ‚ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π°Ρ‚ Π΄Π°Π½Π½ΠΈ, Π½ΠΎ Π½Π΅ ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°Ρ‚ Π½ΠΈΡ‰ΠΎ, ΠΊΠ°Ρ‚ΠΎ микроуслуги ΠΈΠ»ΠΈ ΡƒΠ΅Π± прилоТСния. Π‘Π°Π·ΠΈΡ‚Π΅ Π΄Π°Π½Π½ΠΈ са Π² другия ΠΊΡ€Π°ΠΉ Π½Π° ΡΠΏΠ΅ΠΊΡ‚ΡŠΡ€Π°, Ρ‚.Π΅. Ρ‚Π΅ са прилоТСния със ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅. А Kubernetes ΠΏΡŠΡ€Π²ΠΎΠ½Π°Ρ‡Π°Π»Π½ΠΎ Π½Π΅ Π΅ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ Π·Π° Ρ‚Π°ΠΊΠΈΠ²Π° прилоТСния.

Има ΠΎΠ±Π°Ρ‡Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ наскоро сС появиха Π² Kubernetes, ΠΊΠΎΠΈΡ‚ΠΎ позволяват ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈ прилоТСния със ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅:

  1. ΠšΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΡΡ‚Π° StatefulSet Π΅ цяла ΠΏΠΎΡ€Π΅Π΄ΠΈΡ†Π° ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²ΠΈ Π·Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° ΡΡŠΠ±ΠΈΡ‚ΠΈΡ Π·Π° спиранС Π½Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π½Π° pods ΠΈ ΠΏΡ€ΠΈΠ»Π°Π³Π°Π½Π΅ Π½Π° Graceful Shutdown (прСдсказуСмо ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π²Π°Π½Π΅ Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ).
  2. ΠŸΠΎΡΡ‚ΠΎΡΠ½Π½ΠΈΡ‚Π΅ Ρ‚ΠΎΠΌΠΎΠ²Π΅ са Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° Π½Π° Π΄Π°Π½Π½ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ са ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ с ΠΏΠΎΠ΄ΠΎΠ²Π΅, ΠΎΠ±Π΅ΠΊΡ‚ΠΈ Π·Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° Kubernetes.
  3. Operator Framework – тоСст способността Π·Π° създаванС Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈ Π·Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈ прилоТСния със ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅, Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈ Π² ΠΌΠ½ΠΎΠ³ΠΎ възли.

Π’Π΅Ρ‡Π΅ Π² ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΈΡ‚Π΅ ΠΎΠ±Π»Π°Ρ†ΠΈ ΠΈΠΌΠ° Π³ΠΎΠ»Π΅ΠΌΠΈ Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ ΠΊΠ°Ρ‚ΠΎ услуга, Ρ‡ΠΈΠΉΡ‚ΠΎ Π±Π΅ΠΊΠ΅Π½Π΄ Π΅ Kubernetes, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€: CockroachCloud, InfluxDB, PlanetScale. ВоСст Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ Π½Π° Kubernetes Π΅ Π½Π΅ само Π½Π΅Ρ‰ΠΎ, ΠΊΠΎΠ΅Ρ‚ΠΎ Π΅ Ρ‚Π΅ΠΎΡ€Π΅Ρ‚ΠΈΡ‡Π½ΠΎ възмоТно, Π½ΠΎ ΠΈ Π½Π΅Ρ‰ΠΎ, ΠΊΠΎΠ΅Ρ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚ΠΈ Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°.

Percona ΠΈΠΌΠ° Π΄Π²Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ с ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄ Π·Π° Kubernetes:

  1. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Kubernetes Π·Π° ΡΡŠΡ€Π²ΡŠΡ€ Percona Π·Π° MongoDB.
  2. Kubernetes Operator for XtraDB CLUSTER Π΅ услуга, която Π΅ ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠ° с MySQL ΠΈ осигурява висока наличност ΠΈ послСдоватСлност. ΠœΠΎΠΆΠ΅Ρ‚Π΅ ΡΡŠΡ‰ΠΎ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ Π΅Π΄ΠΈΠ½ΠΈΡ‡Π΅Π½ възСл, Π°ΠΊΠΎ Π½Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ° висока наличност, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π·Π° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈ.

ΠŸΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈΡ‚Π΅ Π½Π° Kubernetes ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈ Π½Π° Π΄Π²Π΅ Π³Ρ€ΡƒΠΏΠΈ. Някои Ρ…ΠΎΡ€Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΈΡ‚Π΅ Kubernetes Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ - Ρ‚ΠΎΠ²Π° са ΠΏΡ€Π΅Π΄ΠΈΠΌΠ½ΠΎ Π½Π°ΠΏΡ€Π΅Π΄Π½Π°Π»ΠΈ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ Ρ€Π°Π·Π±ΠΈΡ€Π°Ρ‚ Π΄ΠΎΠ±Ρ€Π΅ ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚ΠΈ тСхнологията. Π”Ρ€ΡƒΠ³ΠΈ Π³ΠΎ ΠΈΠ·ΠΏΡŠΠ»Π½ΡΠ²Π°Ρ‚ Π½Π° Π±Π΅ΠΊΠ΅Π½Π΄Π° - Ρ‚Π°ΠΊΠΈΠ²Π° ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ сС интСрСсуват ΠΎΡ‚ Π½Π΅Ρ‰ΠΎ ΠΊΠ°Ρ‚ΠΎ Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ ΠΊΠ°Ρ‚ΠΎ услуга, Ρ‚Π΅ Π½Π΅ искат Π΄Π° сС ровят Π² Π½ΡŽΠ°Π½ΡΠΈΡ‚Π΅ Π½Π° Kubernetes. Π—Π° Π²Ρ‚ΠΎΡ€Π°Ρ‚Π° Π³Ρ€ΡƒΠΏΠ° ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ ΠΈΠΌΠ°ΠΌΠ΅ Π΄Ρ€ΡƒΠ³ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ с ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄ - Percona DBaaS CLI Tool. Π’ΠΎΠ²Π° Π΅ СкспСримСнтално Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π·Π° Ρ‚Π΅Π·ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ искат Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ DBaaS с ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄, Π±Π°Π·ΠΈΡ€Π°Π½ Π½Π° Kubernetes, Π±Π΅Π· Π·Π°Π΄ΡŠΠ»Π±ΠΎΡ‡Π΅Π½ΠΎ Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ Π½Π° тСхнологията.

Как Π΄Π° стартиратС DBaaS Π½Π° Percona Π½Π° Google Kubernetes Engine

Google Kubernetes Engine спорСд ΠΌΠ΅Π½ Π΅ Π΅Π΄Π½Π° ΠΎΡ‚ Π½Π°ΠΉ-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π½ΠΈΡ‚Π΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π° тСхнологията Kubernetes. ΠŸΡ€Π΅Π΄Π»Π°Π³Π° сС Π² ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π΅Π³ΠΈΠΎΠ½ΠΈ ΠΏΠΎ свСта ΠΈ ΠΈΠΌΠ° прост ΠΈ ΡƒΠ΄ΠΎΠ±Π΅Π½ инструмСнт Π·Π° ΠΊΠΎΠΌΠ°Π½Π΄Π΅Π½ Ρ€Π΅Π΄ (SDK), ΠΊΠΎΠΉΡ‚ΠΎ Π²ΠΈ позволява Π΄Π° ΡΡŠΠ·Π΄Π°Π²Π°Ρ‚Π΅ скриптовС, вмСсто Π΄Π° управляватС Ρ€ΡŠΡ‡Π½ΠΎ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°.

Π—Π° Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ Π½Π°ΡˆΠΈΡΡ‚ DBaaS, ΠΈΠΌΠ°ΠΌΠ΅ Π½ΡƒΠΆΠ΄Π° ΠΎΡ‚ слСднитС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈ:

  1. Kubectl.
  2. Google Cloud SDK.
  3. Percona DBaaS CLI.

Π˜Π½ΡΡ‚Π°Π»ΠΈΡ€Π°ΠΉΡ‚Π΅ kubectl

Π˜Π½ΡΡ‚Π°Π»ΠΈΡ€Π°ΠΌΠ΅ ΠΏΠ°ΠΊΠ΅Ρ‚Π° Π·Π° Π²Π°ΡˆΠ°Ρ‚Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π° систСма, Ρ‰Π΅ Ρ€Π°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π½Π° Ubuntu. ΠŸΠΎΠ²Π΅Ρ‡Π΅ информация Ρ‚ΡƒΠΊ.

sudo apt-get update && sudo apt-get install -y apt-transport-https gnupg2
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee -a /etc/apt/sources.list.d/kubernetes.list
sudo apt-get update
sudo apt-get install -y kubectl

Π˜Π½ΡΡ‚Π°Π»ΠΈΡ€Π°Π½Π΅ Π½Π° Google Cloud SDK

Π˜Π½ΡΡ‚Π°Π»ΠΈΡ€Π°ΠΌΠ΅ софтуСрния ΠΏΠ°ΠΊΠ΅Ρ‚ ΠΏΠΎ ΡΡŠΡ‰ΠΈΡ Π½Π°Ρ‡ΠΈΠ½. ΠŸΠΎΠ²Π΅Ρ‡Π΅ информация Ρ‚ΡƒΠΊ.

# Add the Cloud SDK distribution URI as a package source
echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg] 
http://packages.cloud.google.com/apt cloud-sdk main" | sudo tee -a /etc/apt/sources.list.d/google-cloud-sdk.list

# Import the Google Cloud Platform public key
curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key --keyring /usr/share/keyrings/cloud.google.gpg add -

# Update the package list and install the Cloud SDK
sudo apt-get update && sudo apt-get install google-cloud-sdk

Π˜Π½ΡΡ‚Π°Π»ΠΈΡ€Π°Π½Π΅ Π½Π° Percona DBaaS CLI

Π˜Π½ΡΡ‚Π°Π»ΠΈΡ€Π°ΠΉΡ‚Π΅ ΠΎΡ‚ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°Ρ‚Π° Π½Π° Percona. Percona DBaaS CLI Tool всС ΠΎΡ‰Π΅ Π΅ СкспСримСнталСн ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ сС Π½Π°ΠΌΠΈΡ€Π° Π² СкспСримСнталното Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅, ΠΊΠΎΠ΅Ρ‚ΠΎ трябва Π΄Π° бъдС Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Π½ΠΎ ΠΎΡ‚Π΄Π΅Π»Π½ΠΎ, Π΄ΠΎΡ€ΠΈ Π°ΠΊΠΎ Π²Π΅Ρ‡Π΅ ΠΈΠΌΠ°Ρ‚Π΅ инсталирани Percona Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°.

ΠžΡ‰Π΅ Ρ‚ΡƒΠΊ.

ΠΠ»Π³ΠΎΡ€ΠΈΡ‚ΡŠΠΌ Π·Π° инсталиранС:

  1. НастройтС Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°Ρ‚Π° Π½Π° Percona с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° инструмСнта Π·Π° освобоТдаванС Π½Π° percona. ΠŸΡŠΡ€Π²ΠΎ трябва Π΄Π° ΠΈΠ·Ρ‚Π΅Π³Π»ΠΈΡ‚Π΅ ΠΈ инсталиратС официалния ΠΏΠ°ΠΊΠ΅Ρ‚ Π·Π° ΠΈΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° percona ΠΎΡ‚ Percona:
    wget https://repo.percona.com/apt/percona-release_latest.generic_all.deb
    sudo dpkg -i percona-release_latest.generic_all.deb
  2. АктивирайтС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Π·Π° Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Π½Π° СкспСримСнтални инструмСнти, ΠΊΠ°ΠΊΡ‚ΠΎ слСдва:
    sudo percona-release enable tools experimental
    
  3. Π˜Π½ΡΡ‚Π°Π»ΠΈΡ€Π°ΠΉΡ‚Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚Π° percona-dbaas-cli:
    sudo apt-get update
    sudo apt-get install percona-dbaas-cli

Настройка Π½Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈΡ‚Π΅

ΠŸΠΎΠ²Π΅Ρ‡Π΅ Π·Π° настройкитС Ρ‚ΡƒΠΊ.

ΠŸΡŠΡ€Π²ΠΎ трябва Π΄Π° Π²Π»Π΅Π·Π΅Ρ‚Π΅ Π² Π°ΠΊΠ°ΡƒΠ½Ρ‚Π° си Π² Google. ОсвСн Ρ‚ΠΎΠ²Π° Google Cloud позволява Π½Π° Π΅Π΄ΠΈΠ½ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π» Π΄Π° ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ нСзависими ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ трябва Π΄Π° посочитС Ρ€Π°Π±ΠΎΡ‚Π΅Ρ‰ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, ΠΊΠ°Ρ‚ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ ΠΊΠΎΠ΄Π° Π·Π° Ρ‚ΠΎΠ·ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚:

gcloud auth login
gcloud config set project hidden-brace-236921

Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° създавамС ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€. Π—Π° дСмонстрацията ΡΡŠΠ·Π΄Π°Π΄ΠΎΡ… ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€ Π½Π° Kubernetes само ΠΎΡ‚ Ρ‚Ρ€ΠΈ възСла - Ρ‚ΠΎΠ²Π° Π΅ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌΡŠΡ‚, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ Π·Π° висока наличност:

gcloud container clusters create --zone us-central1-a your-cluster-name --cluster-version 1.15 --num-nodes=3

Π‘Π»Π΅Π΄Π½Π°Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° kubectl Π΄Π°Π²Π° ΠΆΠ΅Π»Π°Π½ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ Π½Π° тСкущия Π½ΠΈ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»:

kubectl create clusterrolebinding cluster-admin-binding-$USER 
--clusterrole=cluster-admin --user=$(gcloud config get-value core/account)

Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° създавамС пространство ΠΎΡ‚ ΠΈΠΌΠ΅Π½Π° ΠΈ Π³ΠΎ ΠΏΡ€Π°Π²ΠΈΠΌ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ. ΠŸΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚Π²ΠΎΡ‚ΠΎ ΠΎΡ‚ ΠΈΠΌΠ΅Π½Π° Π΅, Π³Ρ€ΡƒΠ±ΠΎ ΠΊΠ°Π·Π°Π½ΠΎ, ΡΡŠΡ‰ΠΎ ΠΊΠ°Ρ‚ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΈΠ»ΠΈ срСда, Π½ΠΎ Π²Π΅Ρ‡Π΅ Π²ΡŠΡ‚Ρ€Π΅ Π² ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€ Π½Π° Kubernetes. Π’ΠΎΠΉ Π΅ нСзависим ΠΎΡ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ Π½Π° Google Cloud:

kubectl create namespace my-namespace
kubectl config set-context --current --namespace=my-namespace

Π‘Ρ‚Π°Ρ€Ρ‚ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π°

Π‘Π»Π΅Π΄ ΠΊΠ°Ρ‚ΠΎ ΠΏΡ€Π΅ΠΌΠΈΠ½Π΅ΠΌ ΠΏΡ€Π΅Π· Ρ‚Π΅Π·ΠΈ няколко ΡΡ‚ΡŠΠΏΠΊΠΈ, ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° стартирамС ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€ с Ρ‚Ρ€ΠΈ възСла с Ρ‚Π°Π·ΠΈ проста ΠΊΠΎΠΌΠ°Π½Π΄Π°:

# percona-dbaas mysql create-db example
Starting ......................................... [done]
Database started successfully, connection details are below:
Provider:          k8s
Engine:            pxc
Resource Name:     example
Resource Endpoint: example-proxysql.my-namespace.pxc.svc.local
Port:              3306
User:              root
Pass:              Nt9YZquajW7nfVXTTrP
Status:            ready

Как Π΄Π° сС ΡΠ²ΡŠΡ€ΠΆΠ΅Ρ‚Π΅ с ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€

По ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ Π΅ Π½Π°Π»ΠΈΡ‡Π΅Π½ само Π² Kubernetes. ВоСст, Ρ‚ΠΎΠΉ Π½Π΅ Π΅ Π΄ΠΎΡΡ‚ΡŠΠΏΠ΅Π½ ΠΎΡ‚ Ρ‚ΠΎΠ·ΠΈ ΡΡŠΡ€Π²ΡŠΡ€, ΠΎΡ‚ ΠΊΠΎΠΉΡ‚ΠΎ стС изпълнили ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° β€žΠ‘ΡŠΠ·Π΄Π°Π²Π°Π½Π΅β€œ. Π—Π° Π΄Π° Π³ΠΎ Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ Π΄ΠΎΡΡ‚ΡŠΠΏΠ΅Π½, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π·Π° тСстовС с ΠΊΠ»ΠΈΠ΅Π½Ρ‚, трябва Π΄Π° ΠΏΡ€Π΅ΠΏΡ€Π°Ρ‚ΠΈΡ‚Π΅ ΠΏΠΎΡ€Ρ‚Π° Ρ‡Ρ€Π΅Π· Port Mapping:

kubectl port-forward svc/example-proxysql 3306:3306 $

Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° ΡΠ²ΡŠΡ€Π·Π²Π°ΠΌΠ΅ вашия MySQL ΠΊΠ»ΠΈΠ΅Π½Ρ‚:

mysql -h 127.0.0.1 -P 3306 -uroot -pNt9YZquajW7nfVXTTrP

Π Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ Π·Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€ΠΈ

Π‘Π°Π·Π° Π΄Π°Π½Π½ΠΈ Π½Π° ΠΏΡƒΠ±Π»ΠΈΡ‡Π΅Π½ IP

Ако искатС ΠΏΠΎ-постоянно Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π·Π° наличност Π½Π° ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π°, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ външСн IP адрСс. Π’ Ρ‚ΠΎΠ·ΠΈ случай Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ Ρ‰Π΅ бъдС Π΄ΠΎΡΡ‚ΡŠΠΏΠ½Π° ΠΎΡ‚Π²ΡΡΠΊΡŠΠ΄Π΅. Π’ΠΎΠ²Π° Π΅ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ сигурно, Π½ΠΎ чСсто ΠΏΠΎ-ΡƒΠ΄ΠΎΠ±Π½ΠΎ. Π—Π° външСн IP ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ слСдната ΠΊΠΎΠΌΠ°Π½Π΄Π°:

# percona-dbaas mysql create-db exposed 
--options="proxysql.serviceType=LoadBalancer"
Starting ......................................... [done]
Database started successfully, connection details are below:
Provider:          k8s
Engine:            pxc
Resource Name:     exposed
Resource Endpoint: 104.154.133.197
Port:              3306
User:              root
Pass:              k0QVxTr8EVfgyCLYse
Status:            ready

To access database please run the following command:
mysql -h 104.154.133.197 -P 3306 -uroot -pk0QVxTr8EVfgyCLYse

Π˜Π·Ρ€ΠΈΡ‡Π½ΠΎ Π·Π°Π΄Π°ΠΉΡ‚Π΅ ΠΏΠ°Ρ€ΠΎΠ»Π°Ρ‚Π°

ВмСсто систСмата ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»Π½ΠΎ Π΄Π° Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π° ΠΏΠ°Ρ€ΠΎΠ»Π°, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π·Π°Π΄Π°Π΄Π΅Ρ‚Π΅ ΠΏΠ°Ρ€ΠΎΠ»Π°Ρ‚Π° ΠΈΠ·Ρ€ΠΈΡ‡Π½ΠΎ:

# percona-dbaas mysql create-db withpw --password=mypassword
Starting ......................................... [done]
Database started successfully, connection details are below:
Provider:          k8s
Engine:            pxc
Resource Name:     withpw
Resource Endpoint: withpw-proxysql.my-namespace.pxc.svc.local
Port:              3306
User:              root
Pass:              mypassword
Status:            ready

Показвам Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚Π° ΠΎΡ‚ скриптовСтС Π² Ρ‡Π΅Ρ‚ΠΈΠΌ ΠΎΡ‚ Ρ…ΠΎΡ€Π° Ρ„ΠΎΡ€ΠΌΠ°Ρ‚, Π½ΠΎ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΡŠΡ‚ JSON ΡΡŠΡ‰ΠΎ сС ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°.

Π˜Π·ΠΊΠ»ΡŽΡ‡Π²Π°Π½Π΅ Π½Π° висока наличност

Бъс слСдната ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π΄Π΅Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Ρ‚Π΅ високата наличност, Π·Π° Π΄Π° Ρ€Π°Π·ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅ Π΅Π΄ΠΈΠ½ΠΈΡ‡Π΅Π½ възСл:

# percona-dbaas mysql create-db singlenode 
--options="proxysql.enabled=false, allowUnsafeConfigurations=true,pxc.size=1"
Starting ......................................... [done]
Database started successfully, connection details are below:
Provider:          k8s
Engine:            pxc
Resource Name:     singlenode
Resource Endpoint: singlenode-pxc.my-namespace.pxc.svc.local
Port:              3306
User:              root
Pass:              22VqFD96mvRnmPMGg
Status:            ready

Π’ΠΎΠ²Π° Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π·Π° тСстванС Π½Π° Π·Π°Π΄Π°Ρ‡ΠΈ, Π·Π° Π΄Π° стартиратС MySQL възмоТно Π½Π°ΠΉ-Π±ΡŠΡ€Π·ΠΎ ΠΈ лСсно, Π΄Π° Π³ΠΎ тСстватС ΠΈ слСд Ρ‚ΠΎΠ²Π° Π΄Π° Π³ΠΎ ΠΈΠ·ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ ΠΈΠ»ΠΈ Π΄Π° Π³ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°.

Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚ΡŠΡ‚ Percona DBaaS CLI Π²ΠΈ ΠΏΠΎΠΌΠ°Π³Π° Π΄Π° постигнСтС ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ Π½Π° DBaaS Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π½Π° Kubernetes. Π’ ΡΡŠΡ‰ΠΎΡ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅ ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠ°Π²Π°ΠΌΠ΅ Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈΠΌ Π²ΡŠΡ€Ρ…Ρƒ Π½Π΅Π³ΠΎΠ²Π°Ρ‚Π° функционалност ΠΈ използваСмост.

Π’ΠΎΠ·ΠΈ Π΄ΠΎΠΊΠ»Π°Π΄ бСшС прСдставСн Π·Π° ΠΏΡŠΡ€Π²ΠΈ ΠΏΡŠΡ‚ Π½Π° @Databases Meetup ΠΎΡ‚ Mail.ru Cloud Solutions&Tarantool. Π’ΠΈΠΆ Π²ΠΈΠ΄Π΅ΠΎ Π΄Ρ€ΡƒΠ³ΠΈ изпълнСния ΠΈ сС Π°Π±ΠΎΠ½ΠΈΡ€Π°ΠΉΡ‚Π΅ Π·Π° ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΡ Π·Π° ΡΡŠΠ±ΠΈΡ‚ΠΈΡ Π² Telegram Около Kubernetes Π² Mail.ru Group.

Какво ΠΎΡ‰Π΅ Π΄Π° ΠΏΡ€ΠΎΡ‡Π΅Ρ‚Π΅Ρ‚Π΅ ΠΏΠΎ Ρ‚Π΅ΠΌΠ°Ρ‚Π°:

  1. Π‘Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ Π² ΠΌΠΎΠ΄Π΅Ρ€Π½Π° IIoT ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°.
  2. Как Π΄Π° ΠΈΠ·Π±Π΅Ρ€Π΅Ρ‚Π΅ Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ Π·Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, Π·Π° Π΄Π° Π½Π΅ сС Π½Π°Π»Π°Π³Π° Π΄Π° ΠΈΠ·Π±ΠΈΡ€Π°Ρ‚Π΅ ΠΎΡ‚Π½ΠΎΠ²ΠΎ.

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

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€