Southbridge Π² ЧСлябинск ΠΈ Битрикс Π² Kubernetes

Π’ ЧСлябинск сС ΠΏΡ€ΠΎΠ²Π΅ΠΆΠ΄Π°Ρ‚ срСщи Π½Π° систСмнитС администратори Sysadminka, ΠΈ Π½Π° послСдната ΠΎΡ‚ тях Π½Π°ΠΏΡ€Π°Π²ΠΈΡ… Π΄ΠΎΠΊΠ»Π°Π΄ Π·Π° Π½Π°ΡˆΠ΅Ρ‚ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π·Π° Ρ€Π°Π±ΠΎΡ‚Π° с прилоТСния Π½Π° 1Π‘-Битрикс Π² Kubernetes.

Битрикс, Kubernetes, Ceph β€” ΠΎΡ‚Π»ΠΈΡ‡Π½Π° комбинация?

Π©Π΅ Ρ€Π°Π·ΠΊΠ°ΠΆΠ° ΠΊΠ°ΠΊ ΡΡŠΠ±Ρ€Π°Ρ…ΠΌΠ΅ Ρ€Π°Π±ΠΎΡ‚Π΅Ρ‰ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΎΡ‚ всичко Ρ‚ΠΎΠ²Π°.

Π₯Π°ΠΉΠ΄Π΅ Π΄Π° Π·Π°ΠΏΠΎΡ‡Π²Π°ΠΌΠ΅!

Southbridge Π² ЧСлябинск ΠΈ Битрикс Π² Kubernetes

Π‘Ρ€Π΅Ρ‰Π°Ρ‚Π° сС ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅ Π½Π° 18 Π°ΠΏΡ€ΠΈΠ» Π² ЧСлябинск. Π—Π° Π½Π°ΡˆΠΈΡ‚Π΅ срСщи ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΏΡ€ΠΎΡ‡Π΅Ρ‚Π΅Ρ‚Π΅ Π² Timepad ΠΈ Π΄Π° сС Π·Π°ΠΏΠΎΠ·Π½Π°Π΅Ρ‚Π΅ с ΡŽΡ‚ΡƒΠ±Π°.

Ако искатС Π΄Π° Π΄ΠΎΠΉΠ΄Π΅Ρ‚Π΅ ΠΏΡ€ΠΈ нас с Π΄ΠΎΠΊΠ»Π°Π΄ ΠΈΠ»ΠΈ ΠΊΠ°Ρ‚ΠΎ ΡΠ»ΡƒΡˆΠ°Ρ‚Π΅Π» β€” Π²Π΅Π»ΠΊΠ°ΠΌ, ΠΏΠΈΡˆΠ΅Ρ‚Π΅ Π½Π° vadim.isakanov@gmail.com ΠΈ Π² Π’Π΅Π»Π΅Π³Ρ€Π°ΠΌ t.me/vadimisakanov.

ΠœΠΎΡΡ‚ Π΄ΠΎΠΊΠ»Π°Π΄

Southbridge Π² ЧСлябинск ΠΈ Битрикс Π² Kubernetes

Π‘Π»Π°ΠΉΠ΄ΠΎΠ²Π΅

РСшСниС β€žΠ‘ΠΈΡ‚Ρ€ΠΈΠΊΡ Π² Kubernetes, вСрсия Southbridge 1.0β€œ

Π©Π΅ Ρ€Π°Π·ΠΊΠ°ΠΆΠ° Π·Π° Π½Π°ΡˆΠ΅Ρ‚ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ β€žΠ·Π° Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‰ΠΈ Π² Kubernetesβ€œ, ΠΊΠ°ΠΊΡ‚ΠΎ бСшС Π½Π° срСщата. Но ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°ΠΌ, Ρ‡Π΅ Π΄ΡƒΠΌΠΈΡ‚Π΅ Битрикс, Docker, Kubernetes, Ceph са Π²ΠΈ извСстни ΠΏΠΎΠ½Π΅ Π½Π° Π½ΠΈΠ²ΠΎ статии Π² Wikipedia.

Какво Π²ΡΡŠΡ‰Π½ΠΎΡΡ‚ ΠΈΠΌΠ° Π³ΠΎΡ‚ΠΎΠ²ΠΎ Π·Π° Битрикс Π² Kubernetes?

Π’ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ ΠΏΠΎΡ‡Ρ‚ΠΈ няма информация Π·Π° Ρ€Π°Π±ΠΎΡ‚Π° Π½Π° прилоТСния с Битрикс Π² Kubernetes.
НамСри само Ρ‚Π°ΠΊΠΈΠ²Π° ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΈ:

Π”ΠΎΠΊΠ»Π°Π΄ Π½Π° ΠΠ»Π΅ΠΊΡΠ°Π½Π΄ΡŠΡ€ Π‘Π΅Ρ€Π±ΡƒΠ» ΠΈ Антон Π’ΡƒΠ·Π»ΡƒΠΊΠΎΠ² ΠΎΡ‚ Qsoft:

Π’ΡŠΠ·ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄ΠΈ Π²ΠΈΠ΄Π΅ΠΎ

ΠŸΡ€Π΅ΠΏΠΎΡ€ΡŠΡ‡Π²Π°ΠΌ Π΄Π° Π³ΠΎ ΠΈΠ·ΡΠ»ΡƒΡˆΠ°Ρ‚Π΅.

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π°Π½Π΅ Π½Π° собствСно Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΎΡ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π» serkyron Π½Π° Π₯Π°Π±Ρ€Π°.
НамСрих ΠΎΡ‰Π΅ Ρ‚Π°ΠΊΠΎΠ²Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅.

Π˜ΠΈΠΈΠΈβ€¦ Π²ΡΡŠΡ‰Π½ΠΎΡΡ‚, всичко.

ΠŸΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π°Π²Π°ΠΌ, качСството Π½Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π½Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΡ‚Π° ΠΏΠΎ Π»ΠΈΠ½ΠΊΠΎΠ²Π΅Ρ‚Π΅ ΠΏΠΎ-Π³ΠΎΡ€Π΅ Π½Π΅ смС провСрявали πŸ™‚
ΠœΠ΅ΠΆΠ΄Ρƒ Π΄Ρ€ΡƒΠ³ΠΎΡ‚ΠΎ, ΠΏΡ€ΠΈ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ°Ρ‚Π° Π½Π° Π½Π°ΡˆΠ΅Ρ‚ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ разговарях с ΠΠ»Π΅ΠΊΡΠ°Π½Π΄ΡŠΡ€ Π‘Π΅Ρ€Π±ΡƒΠ», Ρ‚ΠΎΠ³Π°Π²Π° нСговият Π΄ΠΎΠΊΠ»Π°Π΄ всС ΠΎΡ‰Π΅ Π½Π΅ бСшС Π½Π°Π»ΠΈΡ‡Π΅Π½, Π·Π°Ρ‚ΠΎΠ²Π° Π² ΠΌΠΎΠΈΡ‚Π΅ слайдовС ΠΈΠΌΠ° Ρ‚ΠΎΡ‡ΠΊΠ° β€žΠ‘ΠΈΡ‚Ρ€ΠΈΠΊΡ Π½Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Kubernetesβ€œ.

Но сСга ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ Π³ΠΎΡ‚ΠΎΠ²ΠΈ Docker ΠΎΠ±Ρ€Π°Π·ΠΈ Π·Π° Ρ€Π°Π±ΠΎΡ‚Π° с Битрикс Π² Docker: https://hub.docker.com/search?q=bitrix&type=image

Π”ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΈ Π»ΠΈ са Π·Π° създаванС Π½Π° ΠΏΡŠΠ»Π½ΠΎΡ†Π΅Π½Π½ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π·Π° Битрикс Π² Kubernetes?
НС. Има ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ трябва Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ Ρ€Π΅ΡˆΠ΅Π½ΠΈ.

Π’ ΠΊΠ°ΠΊΠ²ΠΎ сС ΡΡŠΡΡ‚ΠΎΡΡ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈΡ‚Π΅ с Битрикс Π² Kubernetes?

ΠŸΡŠΡ€Π²ΠΈΡΡ‚ β€” Π³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚Π΅ ΠΎΠ±Ρ€Π°Π·ΠΈ ΠΎΡ‚ Dockerhub Π½Π΅ са подходящи Π·Π° Kubernetes.

Ако искамС Π΄Π° ΠΈΠ·Π³Ρ€Π°Π΄ΠΈΠΌ микросСрвисна Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° (Π° Π² Kubernetes ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ искамС), ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ Π² Kubernetes трябва Π΄Π° бъдС Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΎ Π½Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ ΠΈ Π΄Π° сС постигнС Ρ‚ΠΎΠ²Π°, Ρ‡Π΅ всСки ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ Π΄Π° изпълнява Π΅Π΄Π½Π° ΠΌΠ°Π»ΠΊΠ° функция (ΠΈ Π΄Π° я ΠΏΡ€Π°Π²ΠΈ Π΄ΠΎΠ±Ρ€Π΅). Π—Π°Ρ‰ΠΎ само Π΅Π΄Π½Π°? Π’ ΠΊΡ€Π°Ρ‚Ρ†Π΅ β€” ΠΊΠΎΠ»ΠΊΠΎΡ‚ΠΎ ΠΏΠΎ-просто, Ρ‚ΠΎΠ»ΠΊΠΎΠ²Π° ΠΏΠΎ-Π½Π°Π΄Π΅ΠΆΠ΄Π½ΠΎ.
Ако ΠΏΠΎ-дълго β€” ΠΏΠΎΠ³Π»Π΅Π΄Π½Π΅Ρ‚Π΅ Ρ‚Π°Π·ΠΈ статия ΠΈ Π²ΠΈΠ΄Π΅ΠΎ, моля: https://habr.com/ru/company/southbridge/blog/426637/

Docker ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚Π΅ Π² Dockerhub основно са ΠΈΠ·Π³Ρ€Π°Π΄Π΅Π½ΠΈ ΠΏΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ° β€žΠ²ΡΠΈΡ‡ΠΊΠΎ Π² Π΅Π΄Π½ΠΎβ€œ, Π·Π°Ρ‚ΠΎΠ²Π° сС Π½Π°Π»ΠΎΠΆΠΈ всС ΠΏΠ°ΠΊ Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΠΌ собствСн вСлосипСд ΠΈ Π΄ΠΎΡ€ΠΈ Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚Π΅ ΠΎΡ‚ Π½ΡƒΠ»Π°.

Вторият β€” ΠΊΠΎΠ΄ΡŠΡ‚ Π½Π° сайта сС поправя ΠΎΡ‚ административната ΠΏΠ°Π½Π΅Π».

Π‘ΡŠΠ·Π΄Π°Π΄ΠΎΡ…ΠΌΠ΅ Π½ΠΎΠ² Ρ€Π°Π·Π΄Π΅Π» Π½Π° сайта β€” ΠΊΠΎΠ΄ΡŠΡ‚ бСшС ΠΎΠ±Π½ΠΎΠ²Π΅Π½ (Π΄ΠΎΠ±Π°Π²Π΅Π½Π° бСшС дирСктория с ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° новия Ρ€Π°Π·Π΄Π΅Π»).

ΠŸΡ€ΠΎΠΌΠ΅Π½ΠΈΡ…ΠΌΠ΅ свойствата Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΠΎΡ‚ Π°Π΄ΠΌΠΈΠ½ ΠΏΠ°Π½Π΅Π»Π° β€” ΠΊΠΎΠ΄ΡŠΡ‚ сС ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ.

Kubernetes Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ с Ρ‚ΠΎΠ²Π° ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅; ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈΡ‚Π΅ трябва Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ нСизмСняСми (Stateless).

ΠŸΡ€ΠΈΡ‡ΠΈΠ½Π°Ρ‚Π°: всСки ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ (ΠΏΠΎΡ‚ΠΎΠΊ) Π² ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π° само част ΠΎΡ‚ Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ°. Ако ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅ ΠΊΠΎΠ΄Π° само Π² Π΅Π΄ΠΈΠ½ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ (ΠΏΠΎΡ‚ΠΎΠΊ), ΠΊΠΎΠ΄ΡŠΡ‚ Ρ‰Π΅ Π΅ Ρ€Π°Π·Π»ΠΈΡ‡Π΅Π½ Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈΡ‚Π΅ ΠΏΠΎΡ‚ΠΎΡ†ΠΈ, ΡΠ°ΠΉΡ‚ΡŠΡ‚ Ρ‰Π΅ Ρ€Π°Π±ΠΎΡ‚ΠΈ ΠΏΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π΅Π½ Π½Π°Ρ‡ΠΈΠ½, Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ Ρ‰Π΅ сС ΠΏΠΎΠΊΠ°Π·Π²Π°Ρ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ вСрсии Π½Π° сайта. Π’Π°ΠΊΠ° Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠΈ.

Π’Ρ€Π΅Ρ‚Π°Ρ‚Π° β€” трябва Π΄Π° Ρ€Π΅ΡˆΠΈΠΌ Π²ΡŠΠΏΡ€ΠΎΡΠ° с дСплоя.

Ако ΠΈΠΌΠ°ΠΌΠ΅ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚ ΠΈ Π΅Π΄ΠΈΠ½ β€žΠΊΠ»Π°ΡΠΈΡ‡Π΅ΡΠΊΠΈβ€œ ΡΡŠΡ€Π²ΡŠΡ€, всичко Π΅ съвсСм просто: Ρ€Π°Π·Π³Ρ€ΡŠΡ‰Π°ΠΌΠ΅ Π½ΠΎΠ²Π°Ρ‚Π° ΠΊΠΎΠ΄ΠΎΠ²Π° Π±Π°Π·Π°, ΠΏΡ€Π°Π²ΠΈΠΌ миграция Π½Π° Π‘Π”, ΠΏΡ€Π΅Π²ΠΊΠ»ΡŽΡ‡Π²Π°ΠΌΠ΅ Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° Π½Π° Π½ΠΎΠ²Π°Ρ‚Π° вСрсия Π½Π° ΠΊΠΎΠ΄Π°. ΠŸΡ€Π΅Π²ΠΊΠ»ΡŽΡ‡Π²Π°Π½Π΅Ρ‚ΠΎ става ΠΌΠΈΠ³Π½ΠΎΠ²Π΅Π½ΠΎ.
Ако ΠΈΠΌΠ°ΠΌΠ΅ сайт Π² Kubernetes, Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ Π½Π° микросСрвизи, с ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ с ΠΊΠΎΠ΄ β€” ΠΎΡ…. Врябва Π΄Π° ΡΡŠΠ±Π΅Ρ€Π΅ΠΌ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈΡ‚Π΅ с Π½ΠΎΠ²Π°Ρ‚Π° вСрсия Π½Π° ΠΊΠΎΠ΄Π°, Π΄Π° Π³ΠΈ Π²Π½Π΅Π΄Ρ€ΠΈΠΌ вмСсто старитС, ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ Π΄Π° ΠΈΠ·Π²ΡŠΡ€ΡˆΠΈΠΌ миграцията Π½Π° Π‘Π” ΠΈ ΠΈΠ΄Π΅Π°Π»Π½ΠΎ Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΠΌ Ρ‚ΠΎΠ²Π° Π½Π΅Π·Π°Π±Π΅Π»Π΅ΠΆΠΈΠΌΠΎ Π·Π° посСтитСлитС. Π—Π° щастиС, Kubernetes Π½ΠΈ ΠΏΠΎΠΌΠ°Π³Π° Π² Ρ‚ΠΎΠ²Π°, ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°ΠΉΠΊΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Π²ΠΈΠ΄ΠΎΠ²Π΅ Π΄Π΅ΠΏΠ»ΠΎΠΉ.

Π§Π΅Ρ‚Π²ΡŠΡ€Ρ‚Π°Ρ‚Π° β€” трябва Π΄Π° Ρ€Π΅ΡˆΠΈΠΌ Π²ΡŠΠΏΡ€ΠΎΡΠ° с Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° статиката.

Ако Π²Π°ΡˆΠΈΡΡ‚ сайт Ρ‚Π΅ΠΆΠΈ β€žΠ΅Π΄Π²Π°β€œ 10 Π³ΠΈΠ³Π°Π±Π°ΠΉΡ‚Π° ΠΈ Π³ΠΎ Ρ€Π°Π·Π³Ρ€ΡŠΡ‰Π°Ρ‚Π΅ напълно Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ, Ρ‰Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ с Ρ‚Π΅Π³Π»ΠΎ 10 Π³ΠΈΠ³Π°Π±Π°ΠΉΡ‚Π°, ΠΊΠΎΠΈΡ‚ΠΎ Ρ‰Π΅ сС дСплоят Π²Π΅Ρ‡Π½ΠΎ.
Врябва Π΄Π° ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°ΠΌΠ΅ Π½Π°ΠΉ-β€žΡ‚Π΅ΠΆΠΊΠΈΡ‚Π΅β€œ части Π½Π° сайта извън ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈΡ‚Π΅ ΠΈ възниква Π²ΡŠΠΏΡ€ΠΎΡΡŠΡ‚ ΠΊΠ°ΠΊ Π΄Π° Π³ΠΎ Π½Π°ΠΏΡ€Π°Π²ΠΈΠΌ ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ.

Какво липсва Π² Π½Π°ΡˆΠ΅Ρ‚ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅.

ЦСлият ΠΊΠΎΠ΄ Π½Π° Битрикс Π½Π΅ Π΅ разрязан Π½Π° ΠΌΠΈΠΊΡ€ΠΎΡ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ/микросСрвизни ΠΌΠΎΠ΄Π΅Π»ΠΈ (Ρ‚Π°ΠΊΠ°, Ρ‡Π΅ рСгистрацията Π΄Π° Π΅ ΠΎΡ‚Π΄Π΅Π»Π½ΠΎ, ΠΌΠΎΠ΄ΡƒΠ»ΡŠΡ‚ Π·Π° ΠΎΠ½Π»Π°ΠΉΠ½ ΠΌΠ°Π³Π°Π·ΠΈΠ½ Π΄Π° Π΅ ΠΎΡ‚Π΄Π΅Π»Π½ΠΎ ΠΈ Ρ‚.Π½.). Цялата ΠΊΠΎΠ΄ΠΎΠ²Π° Π±Π°Π·Π° я ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°ΠΌΠ΅ във всСки ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ изцяло.

Π‘Π°Π·Π°Ρ‚Π° Π² Kubernetes ΡΡŠΡ‰ΠΎ Π½Π΅ сС ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π° (Π²ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‡Π΅ съм Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π» Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ с Π±Π°Π·Π° Π² Kubernetes Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π°Ρ‰ΠΈΡ‚Π΅ срСди, Π½ΠΎ Π½Π΅ ΠΈ Π·Π° продукция).

АдминистраторитС Π½Π° сайта всС ΠΏΠ°ΠΊ Ρ‰Π΅ Π·Π°Π±Π΅Π»Π΅ΠΆΠ°Ρ‚, Ρ‡Π΅ ΡΠ°ΠΉΡ‚ΡŠΡ‚ Ρ€Π°Π±ΠΎΡ‚ΠΈ Π² Kubernetes. Ѐункцията β€žΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° ΡΠΈΡΡ‚Π΅ΠΌΠ°Ρ‚Π°β€œ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚ΠΈ ΠΊΠΎΡ€Π΅ΠΊΡ‚Π½ΠΎ, Π·Π° Π΄Π° Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€Π°Ρ‚Π΅ ΠΊΠΎΠ΄Π° Π½Π° сайта ΠΎΡ‚ Π°Π΄ΠΌΠΈΠ½ ΠΏΠ°Π½Π΅Π»Π°, ΠΏΡŠΡ€Π²ΠΎ трябва Π΄Π° натиснСтС Π±ΡƒΡ‚ΠΎΠ½Π° β€žΠΈΡΠΊΠ°ΠΌ Π΄Π° Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€Π°ΠΌ ΠΊΠΎΠ΄Π°β€œ.

Π‘ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈΡ‚Π΅ Ρ€Π΅ΡˆΠΈΡ…ΠΌΠ΅, с нСобходимостта ΠΎΡ‚ Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° микросСрвизноста сС Ρ€Π°Π·Π±Ρ€Π°Ρ…ΠΌΠ΅, Ρ†Π΅Π»Ρ‚Π° Π΅ ясна β€” Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ Ρ€Π°Π±ΠΎΡ‚Π΅Ρ‰Π° систСма Π·Π° Ρ€Π°Π±ΠΎΡ‚Π° с прилоТСния Π½Π° Битрикс Π² Kubernetes, Π·Π°ΠΏΠ°Π·Π²Π°ΠΉΠΊΠΈ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈΡ‚Π΅ Π½Π° Битрикс ΠΈ прСдимствата Π½Π° Kubernetes. Π—Π°ΠΏΠΎΡ‡Π²Π°ΠΌΠ΅ рСализацията.

АрхитСктура

Много β€žΡ€Π°Π±ΠΎΡ‚Π΅Ρ‰ΠΈβ€œ ΠΏΠΎΠ΄ΠΎΠ²Π΅ с ΡƒΠ΅Π±ΡΡŠΡ€Π²ΡŠΡ€ (worker’и).
Π•Π΄ΠΈΠ½ ΠΏΠΎΠ΄ с cron Π·Π°Π΄Π°Ρ‡ΠΈ (Π·Π°Π΄ΡŠΠ»ΠΆΠΈΡ‚Π΅Π»Π½ΠΎ само Π΅Π΄ΠΈΠ½).
Π•Π΄ΠΈΠ½ upgrade ΠΏΠΎΠ΄ Π·Π° Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΊΠΎΠ΄Π° Π½Π° сайта ΠΎΡ‚ Π°Π΄ΠΌΠΈΠ½ ΠΏΠ°Π½Π΅Π»Π° (ΡΡŠΡ‰ΠΎ Π·Π°Π΄ΡŠΠ»ΠΆΠΈΡ‚Π΅Π»Π½ΠΎ само Π΅Π΄ΠΈΠ½).

Southbridge Π² ЧСлябинск ΠΈ Битрикс Π² Kubernetes

Π Π°Π·Ρ€Π΅ΡˆΠ°Π²Π°ΠΌΠ΅ Π²ΡŠΠΏΡ€ΠΎΡΠΈ:

  • КъдС Π΄Π° ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°ΠΌΠ΅ сСсиитС?
  • КъдС Π΄Π° ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°ΠΌΠ΅ кСша?
  • КъдС Π΄Π° ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°ΠΌΠ΅ статиката, Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°ΠΌΠ΅ Π³ΠΈΠ³Π°Π±Π°ΠΉΡ‚ΠΈ статична информация Π² ΠΊΡƒΠΏΡ‡ΠΈΠ½Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ?
  • Как Ρ‰Π΅ Ρ€Π°Π±ΠΎΡ‚ΠΈ Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ?

Docker ΠΎΠ±Ρ€Π°Π·

Π—Π°ΠΏΠΎΡ‡Π²Π°ΠΌΠ΅ със ΡΡŠΠ·Π΄Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Docker ΠΎΠ±Ρ€Π°Π·.

Π˜Π΄Π΅Π°Π»Π½ΠΈΡΡ‚ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Π΅ Π΄Π° ΠΈΠΌΠ°ΠΌΠ΅ Π΅Π΄ΠΈΠ½ унивСрсалСн ΠΎΠ±Ρ€Π°Π·, Π½Π° Π±Π°Π·Π°Ρ‚Π° Π½Π° ΠΊΠΎΠΉΡ‚ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°ΠΌΠ΅ ΠΈ worker ΠΏΠΎΠ΄ΠΎΠ²Π΅, ΠΈ ΠΏΠΎΠ΄ΠΎΠ²Π΅ с cron Π·Π°Π΄Π°Ρ‡ΠΈ, ΠΈ upgrade ΠΏΠΎΠ΄ΠΎΠ²Π΅.

Π‘ΡŠΠ·Π΄Π°Π΄ΠΎΡ…ΠΌΠ΅ Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊΡŠΠ² ΠΎΠ±Ρ€Π°Π·..

Π’ Π½Π΅Π³ΠΎ Π΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ nginx, apache/php-fpm (ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΈΠ·Π±Π΅Ρ€Π΅Ρ‚Π΅ ΠΏΡ€ΠΈ ΡΡŠΠ·Π΄Π°Π²Π°Π½Π΅Ρ‚ΠΎ), msmtp Π·Π° ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°Π½Π΅ Π½Π° ΠΈΠΌΠ΅ΠΉΠ»ΠΈ ΠΈ cron.

ΠŸΡ€ΠΈ ΡΡŠΠ·Π΄Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΎΠ±Ρ€Π°Π·Π°, Π² дирСктория /app сС ΠΊΠΎΠΏΠΈΡ€Π° цялата ΠΊΠΎΠ΄ΠΎΠ²Π° Π±Π°Π·Π° Π½Π° сайта (с ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π½Π° Ρ‚Π΅Π·ΠΈ части, ΠΊΠΎΠΈΡ‚ΠΎ Ρ‰Π΅ изнСсСм Π² ΠΎΡ‚Π΄Π΅Π»Π½ΠΎ сподСлСно Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅).

ΠœΠΈΠΊΡ€ΠΎΡΠ΅Ρ€Π²ΠΈΠ·Π½ΠΎΡΡ‚, услуги

worker ΠΏΠΎΠ΄ΠΎΠ²Π΅:

  • ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ с nginx + ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ apache/php-fpm + msmtp
  • НС успяхмС Π΄Π° изнСсСм msmtp Π² ΠΎΡ‚Π΄Π΅Π»Π΅Π½ микросСрвис, Битрикс Π·Π°ΠΏΠΎΡ‡Π²Π° Π΄Π° сС Π²ΡŠΠ·ΠΌΡƒΡ‰Π°Π²Π°, Ρ‡Π΅ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ Π΄Π° ΠΈΠ·ΠΏΡ€Π°Ρ‰Π° ΠΈΠΌΠ΅ΠΉΠ»ΠΈ.
  • Π’ΡŠΠ² всСки ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ Π΅ Π½Π°Π»ΠΈΡ‡Π½Π° цялата ΠΊΠΎΠ΄ΠΎΠ²Π° Π±Π°Π·Π°.
  • Π—Π°Π±Ρ€Π°Π½Π° Π·Π° промяна Π½Π° ΠΊΠΎΠ΄Π° Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈΡ‚Π΅.

cron ΠΏΠΎΠ΄:

  • ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ с apache, php, cron
  • Π²ΠΊΠ»ΡŽΡ‡Π²Π° цялата ΠΊΠΎΠ΄ΠΎΠ²Π° Π±Π°Π·Π°
  • Π·Π°Π±Ρ€Π°Π½Π° Π·Π° промяна Π½Π° ΠΊΠΎΠ΄Π° Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈΡ‚Π΅

upgrade ΠΏΠΎΠ΄:

  • ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ с nginx + ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ apache/php-fpm + msmtp
  • няма Π·Π°Π±Ρ€Π°Π½Π° Π·Π° промяна Π½Π° ΠΊΠΎΠ΄Π° Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈΡ‚Π΅

Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Π½Π° сСсиитС

Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Π½Π° кСша Π½Π° Битрикс

ΠžΡ‰Π΅ Π΅ Π²Π°ΠΆΠ½ΠΎ: ΠΏΠ°Ρ€ΠΎΠ»ΠΈΡ‚Π΅ Π·Π° ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅ Π΄ΠΎ всичко, ΠΎΡ‚ Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ Π΄ΠΎ ΠΈΠΌΠ΅ΠΉΠ»ΠΈΡ‚Π΅, ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°ΠΌΠ΅ Π² kubernetes secrets. ΠŸΠΎΠ»ΡƒΡ‡Π°Π²Π°ΠΌΠ΅ бонус, ΠΏΠ°Ρ€ΠΎΠ»ΠΈΡ‚Π΅ са Π²ΠΈΠ΄ΠΈΠΌΠΈ само Π·Π° ΠΎΠ½Π΅Π·ΠΈ, Π½Π° ΠΊΠΎΠΈΡ‚ΠΎ Π΄Π°Π²Π°ΠΌΠ΅ Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ сСкрСтитС, Π° Π½Π΅ Π·Π° всички, ΠΊΠΎΠΈΡ‚ΠΎ ΠΈΠΌΠ°Ρ‚ Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ ΠΊΠΎΠ΄ΠΎΠ²Π°Ρ‚Π° Π±Π°Π·Π° Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

Π₯Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Π·Π° статиката

ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ всичко: ceph, nfs (Π½ΠΎ nfs Π½Π΅ сС ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΡ‡Π²Π° Π·Π° продукция), ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΎ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ ΠΎΡ‚ β€žΠΎΠ±Π»Π°Ρ‡Π½ΠΈβ€œ доставчици ΠΈ Π΄Ρ€.

Π₯Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅Ρ‚ΠΎ трябва Π΄Π° бъдС ΡΠ²ΡŠΡ€Π·Π°Π½ΠΎ Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈΡ‚Π΅ Π² дирСкторията /upload/ Π½Π° сайта ΠΈ Π² Π΄Ρ€ΡƒΠ³ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ със статиката.

Π‘Π°Π·Π° Π΄Π°Π½Π½ΠΈ.

Π—Π° улСснСниС ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΡ‡Π²Π°ΠΌΠ΅ Π΄Π° изнСсСтС Π±Π°Π·Π°Ρ‚Π° извън Kubernetes. Π‘Π°Π·Π°Ρ‚Π° Π² Kubernetes β€” ΠΎΡ‚Π΄Π΅Π»Π½Π° слоТна Π·Π°Π΄Π°Ρ‡Π°, Ρ‰Π΅ Π½Π°ΠΏΡ€Π°Π²ΠΈ схСмата Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΏΠΎ-слоТна.

Π₯Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Π½Π° сСсиитС

ИзползвамС memcached πŸ™‚

Π’ΠΎΠΉ Π΄ΠΎΠ±Ρ€Π΅ сС справя с ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° сСсии, кластСризира сС, ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° сС "Π½Π°Ρ‚ΠΈΠ²Π½ΠΎ" ΠΊΠ°Ρ‚ΠΎ session.save_path Π² php. Π’Π°Π·ΠΈ систСма ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎ Π΅ Π΄ΠΎΠΊΠ°Π·Π°Π»Π° своята СфСктивност Π² класичСската ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π½Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°, ΠΊΠΎΠ³Π°Ρ‚ΠΎ ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Ρ…ΠΌΠ΅ ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€ΠΈ с голям Π±Ρ€ΠΎΠΉ ΡƒΠ΅Π± ΡΡŠΡ€Π²ΡŠΡ€ΠΈ. Π—Π° Π΄Π΅ΠΏΠ»ΠΎΠΉΠ²Π°Π½Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ helm.

$ helm install stable/memcached --name session

php.ini β€” Ρ‚ΡƒΠΊ Π² ΠΎΠ±Ρ€Π°Π·Π° са Π·Π°Π΄Π°Π΄Π΅Π½ΠΈ настройкитС Π·Π° ΡΡŠΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π½Π° сСсии Π² memcached

Π˜Π·ΠΏΠΎΠ»Π·Π²Π°Ρ…ΠΌΠ΅ Environment Variables Π·Π° ΠΏΡ€Π΅Π΄Π°Π²Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ Π·Π° хостовСтС с memcached https://kubernetes.io/docs/tasks/inject-data-application/define-environment-variable-container/.
Π’ΠΎΠ²Π° позволява Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Π΅Π΄ΠΈΠ½ ΠΈ ΡΡŠΡ‰ΠΈ ΠΊΠΎΠ΄ Π² срСдитС dev, stage, test, prod (ΠΈΠΌΠ΅Π½Π°Ρ‚Π° Π½Π° хостовСтС Π² memcached Ρ‰Π΅ сС Ρ€Π°Π·Π»ΠΈΡ‡Π°Π²Π°Ρ‚, Π΅Ρ‚ΠΎ Π·Π°Ρ‰ΠΎ Π·Π° всяка срСда трябва Π΄Π° ΠΏΡ€Π΅Π΄Π°Π²Π°ΠΌΠ΅ ΡƒΠ½ΠΈΠΊΠ°Π»Π½ΠΎ ΠΈΠΌΠ΅ Π½Π° хостовСтС Π·Π° сСсии).
КСш Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Bitrix

НуТдаСм сС ΠΎΡ‚ устойчиво Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅, Π² ΠΊΠΎΠ΅Ρ‚ΠΎ всички ΠΏΠΎΠ΄ΠΎΠ²Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° ΠΏΠΈΡˆΠ°Ρ‚ ΠΈ Π΄Π° Ρ‡Π΅Ρ‚Π°Ρ‚.

Π‘ΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ memcached.
Π’ΠΎΠ²Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ сС ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΡ‡Π²Π° ΠΎΡ‚ самия Bitrix.

$ helm install stable/memcached --name cache

bitrix/.settings_extra.php β€” Ρ‚ΡƒΠΊ Π² Bitrix сС Π·Π°Π΄Π°Π²Π° къдС сС ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π° кСша

Π‘ΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Environment Variables.

ΠšΡ€ΠΎΠ½ Π·Π°Π΄Π°Ρ‡ΠΈ

Има Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈ Π·Π° изпълнСниС Π½Π° ΠΊΡ€ΠΎΠ½ Π·Π°Π΄Π°Ρ‡ΠΈ Π² Kubernetes.

  • ΠΎΡ‚Π΄Π΅Π»Π΅Π½ deployment с ΠΏΠΎΠ΄ Π·Π° изпълнСниС Π½Π° ΠΊΡ€ΠΎΠ½ Π·Π°Π΄Π°Ρ‡ΠΈ
  • cronjob Π·Π° изпълнСниС Π½Π° ΠΊΡ€ΠΎΠ½ Π·Π°Π΄Π°Ρ‡ΠΈ (Π°ΠΊΠΎ Π΅ ΡƒΠ΅Π± ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ β€” с wget https://$host$cronjobname, ΠΈΠ»ΠΈ kubectl exec Π² Π΅Π΄ΠΈΠ½ ΠΎΡ‚ worker ΠΏΠΎΠ΄ΠΎΠ²Π΅Ρ‚Π΅ ΠΈ Ρ‚.Π½.)
  • ΠΈ Ρ‚.Π½.

МоТС Π΄Π° сС спори Π·Π° Π½Π°ΠΉ-добрия Π²Π°Ρ€ΠΈΠ°Π½Ρ‚, Π½ΠΎ Π² Ρ‚ΠΎΠ·ΠΈ случай ΠΈΠ·Π±Ρ€Π°Ρ…ΠΌΠ΅ "ΠΎΡ‚Π΄Π΅Π»Π΅Π½ deployment с ΠΏΠΎΠ΄ΠΎΠ²Π΅ Π·Π° ΠΊΡ€ΠΎΠ½ Π·Π°Π΄Π°Ρ‡ΠΈ"

Как Π΅ Π½Π°ΠΏΡ€Π°Π²Π΅Π½ΠΎ:

  • ΠΊΡ€ΠΎΠ½ Π·Π°Π΄Π°Ρ‡ΠΈΡ‚Π΅ добавямС Ρ‡Ρ€Π΅Π· ConfigMap ΠΈΠ»ΠΈ Ρ‡Ρ€Π΅Π· Ρ„Π°ΠΉΠ»Π° config/addcron
  • Π² Π΅Π΄ΠΈΠ½ СкзСмпляр стартирамС ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€, ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π΅Π½ Π½Π° worker ΠΏΠΎΠ΄Π° + Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π²Π°ΠΌΠ΅ изпълнСниС Π½Π° ΠΊΡ€ΠΎΠ½ Π·Π°Π΄Π°Ρ‡ΠΈ Π² Π½Π΅Π³ΠΎ
  • ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° сС ΡΡŠΡ‰Π°Ρ‚Π° ΠΊΠΎΠ΄ΠΎΠ²Π° Π±Π°Π·Π°, Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€Π΅Π½ΠΈΠ΅ Π½Π° унификацията сборката Π½Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° Π΅ проста

Какво Π΄ΠΎΠ±Ρ€ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°ΠΌΠ΅:

  • ΠΈΠΌΠ°ΠΌΠ΅ Ρ€Π°Π±ΠΎΡ‚Π΅Ρ‰ΠΈ ΠΊΡ€ΠΎΠ½ Π·Π°Π΄Π°Ρ‡ΠΈ Π² срСда, ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½Π° Π½Π° срСдата Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ (docker)
  • ΠΊΡ€ΠΎΠ½ Π·Π°Π΄Π°Ρ‡ΠΈΡ‚Π΅ Π½Π΅ Π΅ Π½ΡƒΠΆΠ½ΠΎ Π΄Π° "прСписвамС" Π·Π° Kubernetes, Ρ‚Π΅ работят Π² ΡΡŠΡ‰ΠΈΡ Π²ΠΈΠ΄ ΠΈ Π² ΡΡŠΡ‰Π°Ρ‚Π° ΠΊΠΎΠ΄ΠΎΠ²Π° Π±Π°Π·Π°, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΏΡ€Π΅Π΄ΠΈ
  • ΠΊΡ€ΠΎΠ½ Π·Π°Π΄Π°Ρ‡ΠΈΡ‚Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° добавят всички Ρ‡Π»Π΅Π½ΠΎΠ²Π΅ Π½Π° Π΅ΠΊΠΈΠΏΠ° с ΠΏΡ€Π°Π²Π° Π·Π° commit Π² производствСната ΠΊΠ»ΠΎΠ½ΠΊΠ°, Π° Π½Π΅ само администри

ΠœΠΎΠ΄ΡƒΠ» Southbridge K8SDeploy ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΊΠΎΠ΄Π° ΠΎΡ‚ администраторския ΠΏΠ°Π½Π΅Π»

ВидяхтС Π»ΠΈ, Ρ‡Π΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌ Π·Π° ΡŠΠΏΠ³Ρ€Π΅ΠΉΠ΄ Π½Π° ΠΏΠΎΠ΄Π°?
А ΠΊΠ°ΠΊ Π΄Π° насочим Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° към Π½Π΅Π³ΠΎ?
Π£Ρ€Π°, написахмС ΠΌΠΎΠ΄ΡƒΠ» Π·Π° Ρ‚ΠΎΠ²Π° Π½Π° php πŸ™‚ Π’ΠΎΠ²Π° Π΅ малък класичСски ΠΌΠΎΠ΄ΡƒΠ» Π·Π° Bitrix. ВсС ΠΎΡ‰Π΅ Π½Π΅ Π΅ Π² ΠΎΡ‚ΠΊΡ€ΠΈΡ‚ Π΄ΠΎΡΡ‚ΡŠΠΏ, Π½ΠΎ ΠΏΠ»Π°Π½ΠΈΡ€Π°ΠΌΠ΅ Π΄Π° Π³ΠΎ ΠΎΡ‚Π²ΠΎΡ€ΠΈΠΌ.
ΠœΠΎΠ΄ΡƒΠ»ΡŠΡ‚ сС инсталира ΠΊΠ°Ρ‚ΠΎ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ ΠΌΠΎΠ΄ΡƒΠ» Π² Bitrix:

Southbridge Π² ЧСлябинск ΠΈ Битрикс Π² Kubernetes

И ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΠΏΠΎ слСдния Π½Π°Ρ‡ΠΈΠ½:

Southbridge Π² ЧСлябинск ΠΈ Битрикс Π² Kubernetes

Π’ΠΎΠ²Π° позволява Π·Π°Π΄Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° cookie, която ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€Π° администратора Π½Π° сайта ΠΈ позволява Π½Π° Kubernetes Π΄Π° прСнасочва Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° към upgrade pod.

ΠšΠΎΠ³Π°Ρ‚ΠΎ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅ са Π·Π°Π²ΡŠΡ€ΡˆΠ΅Π½ΠΈ, трябва Π΄Π° натиснСтС git push, ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅ Π² ΠΊΠΎΠ΄Π° Ρ‰Π΅ Π±ΡŠΠ΄Π°Ρ‚ ΠΈΠ·ΠΏΡ€Π°Ρ‚Π΅Π½ΠΈ Π² git, слСд ΠΊΠΎΠ΅Ρ‚ΠΎ систСмата Ρ‰Π΅ ΠΈΠ·Π³Ρ€Π°Π΄ΠΈ ΠΎΠ±Ρ€Π°Π· с Π½ΠΎΠ²Π°Ρ‚Π° вСрсия Π½Π° ΠΊΠΎΠ΄Π° ΠΈ Ρ‰Π΅ Π³ΠΎ "Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»ΠΈ" Π² ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π°, замСняйки старитС ΠΏΠΎΠ΄ΠΎΠ²Π΅.

Π”Π°, ΠΌΠ°Π»ΠΊΠΎ слоТно, Π½ΠΎ ΠΏΠΎ Ρ‚ΠΎΠ·ΠΈ Π½Π°Ρ‡ΠΈΠ½ Π·Π°ΠΏΠ°Π·Π²Π°ΠΌΠ΅ микросСрвисната Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° ΠΈ Π½Π΅ ΠΎΡ‚Π½Π΅ΠΌΠ°ΠΌΠ΅ ΠΎΡ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈΡ‚Π΅ Π½Π° Битрикс Π»ΡŽΠ±ΠΈΠΌΠ°Ρ‚Π° Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π΄Π° ΠΊΠΎΡ€ΠΈΠ³ΠΈΡ€Π°Ρ‚ ΠΊΠΎΠ΄Π° ΠΎΡ‚ Π°Π΄ΠΌΠΈΠ½ ΠΏΠ°Π½Π΅Π»Π°. Π’ ΠΊΡ€Π°ΠΉΠ½Π° смСтка, Ρ‚ΠΎΠ²Π° Π΅ опция, Π·Π°Π΄Π°Ρ‡Π°Ρ‚Π° Π·Π° корСкция Π½Π° ΠΊΠΎΠ΄Π° ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС Ρ€Π΅ΡˆΠ΅Π½Π° ΠΈ ΠΏΠΎ Π΄Ρ€ΡƒΠ³ Π½Π°Ρ‡ΠΈΠ½.

Helm Ρ‡Π°Ρ€Ρ‚

Π—Π° ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ Π½Π° прилоТСния Π² Kubernetes ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ пакСтния ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡŠΡ€ Helm.
Π—Π° Π½Π°ΡˆΠ΅Ρ‚ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Битрикс Π² Kubernetes, Π‘Π΅Ρ€Π³Π΅ΠΉ Π‘ΠΎΠ½Π΄Π°Ρ€Π΅Π², Π½Π°ΡˆΠΈΡΡ‚ Π²ΠΎΠ΄Π΅Ρ‰ систСмСн администратор, написа спСциалСн Helm Ρ‡Π°Ρ€Ρ‚.

Π’ΠΎΠΉ изпълнява ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅Ρ‚ΠΎ Π½Π° worker, upgrade, cron ΠΏΠΎΠ΄ΠΎΠ²Π΅, настройва ingress-ΠΈ, услуги, ΠΏΡ€Π΅Π΄Π°Π²Π° ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ ΠΎΡ‚ Kubernetes secrets Π² ΠΏΠΎΠ΄ΠΎΠ²Π΅Ρ‚Π΅.

Кода ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°ΠΌΠ΅ Π² Gitlab ΠΈ ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° стартирамС ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅Ρ‚ΠΎ Π½Π° Helm ΠΎΡ‚ Gitlab.

Π’ ΠΊΡ€Π°Ρ‚Ρ†Π΅, ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° Ρ‚Π°ΠΊΠ°

$ helm upgrade --install project .helm --set image=registrygitlab.local/k8s/bitrix -f .helm/values.yaml --wait --timeout 300 --debug --tiller-namespace=production

Helm ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° позволява "бСзшСвСн" ΠΎΡ‚ΠΊΠ°Ρ‚, Π°ΠΊΠΎ случайно ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° Π΄Π΅ΠΏΠ»ΠΎΠΉΠΌΠ΅Π½Ρ‚Π° Π½Π΅Ρ‰ΠΎ Π½Π΅ Π΅ Π½Π°Ρ€Π΅Π΄. ΠŸΡ€ΠΈΡΡ‚Π½ΠΎ Π΅, ΠΊΠΎΠ³Π°Ρ‚ΠΎ Π½Π΅ Π²ΠΈΠ΅ паникьосано "поправятС ΠΊΠΎΠ΄Π° ΠΏΠΎ ftp, Π·Π°Ρ‰ΠΎΡ‚ΠΎ production Π΅ ΠΏΠ°Π΄Π½Π°Π»", Π° Kubernetes Π³ΠΎ ΠΏΡ€Π°Π²ΠΈ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ Π±Π΅Π· Π΄Π°ΡƒΠ½Ρ‚Π°ΠΉΠΌ.

Π”Π΅ΠΏΠ»ΠΎΠΉ

Π”Π°, Π½ΠΈΠ΅ смС Ρ„Π΅Π½ΠΎΠ²Π΅ Π½Π° Gitlab & Gitlab CI, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Π³ΠΎ πŸ™‚
ΠŸΡ€ΠΈ commit Π² Gitlab Π² рСпозитория Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Gitlab стартира ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½, ΠΊΠΎΠΉΡ‚ΠΎ изпълнява Ρ€Π°Π·Π³Ρ€ΡŠΡ‰Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π½ΠΎΠ²Π°Ρ‚Π° вСрсия Π½Π° срСдата.

Π‘Ρ‚ΡŠΠΏΠΊΠΈ:

  • build (ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°ΠΌΠ΅ Π½ΠΎΠ² Docker ΠΎΠ±Ρ€Π°Π·)
  • test (тСствамС)
  • clean up (ΠΏΡ€Π΅ΠΌΠ°Ρ…Π²Π°ΠΌΠ΅ тСстовата срСда)
  • push (ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°ΠΌΠ΅ Π³ΠΎ Π² Docker registry)
  • deploy (Ρ€Π°Π·Π³Ρ€ΡŠΡ‰Π°ΠΌΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ Π² Kubernetes Ρ‡Ρ€Π΅Π· Helm).

Southbridge Π² ЧСлябинск ΠΈ Битрикс Π² Kubernetes

Π£Ρ€Π°, Π³ΠΎΡ‚ΠΎΠ²ΠΎ, внСдрявамС!
Или Π·Π°Π΄Π°Π²Π°ΠΌΠ΅ Π²ΡŠΠΏΡ€ΠΎΡΠΈ, Π°ΠΊΠΎ ΠΈΠΌΠ°.

И Ρ‚Π°ΠΊΠ°, ΠΊΠ°ΠΊΠ²ΠΎ Π½Π°ΠΏΡ€Π°Π²ΠΈΡ…ΠΌΠ΅

ΠžΡ‚ тСхничСска Π³Π»Π΅Π΄Π½Π° Ρ‚ΠΎΡ‡ΠΊΠ°:

  • Π΄ΠΎΠΊΠ΅Ρ€ΠΈΠ·ΠΈΡ€Π°Ρ…ΠΌΠ΅ Битрикс;
  • β€žΡ€Π°Π·Ρ€ΡΠ·Π°Ρ…ΠΌΠ΅β€œ Битрикс Π½Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ, всСки ΠΎΡ‚ ΠΊΠΎΠΈΡ‚ΠΎ изпълнява ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ;
  • постигнахмС stateless ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈΡ‚Π΅;
  • Ρ€Π΅ΡˆΠΈΡ…ΠΌΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с обновяванСто Π½Π° Битрикс Π² Kubernetes;
  • всички Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π° Битрикс ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠΈΡ…Π° Π΄Π° работят (ΠΏΠΎΡ‡Ρ‚ΠΈ всичкитС);
  • Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΈΡ…ΠΌΠ΅ Π΄Π΅ΠΏΠ»ΠΎΠΉ Π² Kubernetes ΠΈ ΠΎΡ‚ΠΊΠ°Ρ‚ ΠΌΠ΅ΠΆΠ΄Ρƒ вСрсиитС.

ΠžΡ‚ бизнСс Π³Π»Π΅Π΄Π½Π° Ρ‚ΠΎΡ‡ΠΊΠ°:

  • отказоустойчивост;
  • инструмСнти Π½Π° Kubernetes (лСсна интСграция с Gitlab CI, бСзшСвСн Π΄Π΅ΠΏΠ»ΠΎΠΉ, ΠΈ Ρ‚.Π½.);
  • ΠΏΠ°Ρ€ΠΎΠ»ΠΈ Π² сСкрСтитС (Π²ΠΈΠ΄ΠΈΠΌΠΈ само Π·Π° Ρ‚Π΅Π·ΠΈ, Π½Π° ΠΊΠΎΠΈΡ‚ΠΎ Π΅ прСдоставСн Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ ΠΏΠ°Ρ€ΠΎΠ»ΠΈΡ‚Π΅);
  • Π£Π΄ΠΎΠ±Π½ΠΎ Π΅ Π΄Π° сС ΡΡŠΠ·Π΄Π°Π²Π°Ρ‚ Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ срСди (Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°, тСстовС ΠΈ Π΄Ρ€.) Π²ΡŠΡ‚Ρ€Π΅ Π² Π΅Π΄Π½Π° инфраструктура.

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

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